Redis学习(1)


这里只总结具体用法,至于redis的输出需要自己在redis-cli中试一下。

Redis中的数据结构

有以下5个基础数据结构

  • string 字符串
  • list 链表
  • hash 哈希表
  • set 集合
  • zset 有序集合

还有几个新的数据结构,感觉不是很常用?

  • hyperloglog
  • 位图
  • 地理位置?

string 字符串

设置值

  • set key value 设置key的值为value
  • set key value NX 只有在key不存在时设置
  • set key value XX 只有在key存在时设置

获取值

  • get key 如果key不存在就获取nil
  • getset key new_value 将key设置新值new_value

一次设置/获取多个值

  • mset key value key value …
  • mget key key …
  • msetnx key value key value …

数值增加减少

如果value是数值的话,可以用下面的命令做加减法

  • incr key
  • incrby key number
  • decr key
  • decrby key number
  • incrbyfloat key number number可以是浮点

其他

  • append key value 字符串拼接value
  • strlen key 获取key的长度
  • getrange key start end 获取start到end的值
  • setrange key offset value 设置从offset以后开始的值

hash表

hash表是一系列键值对的集合。这个集合的名字是key,其中每个键值对的键叫filed,值叫value

  • hset key filed value
  • hsetnx key filed value 只有在filed不存在时候设置成功
  • hmset key filed value filed value… 设置一个hash的多个filed
  • hget key filed
  • hmget key filed filed…
  • hincrby key filed increment 数值增加
  • hincrbyfloat 增加浮点

注意这里是没有decr的,因为增加复数就相当于减少了,所以没必要

  • hstrlen key field 获取某个filed的长度
  • hdel key field field… 删除key的某些field
  • hexists key field 判断key有没某个field
  • hlen key 获取filed的个数
  • hkeys key 获取所有field
  • hvals key 获取所有field的value
  • hgetall 获取所有filed和value

list列表

这里l开头的添加指的是往列表左边添加,每个都有与之对应的r,比如lpush~rpush,lpushx对应rpushx,这里只演示l开头的。

list的key指的是list的名字

  • lpush key value value … (rpush)
  • lpushx key value value… 只有key存在才会push(rpushx)
  • lpop key 取key左边第一个元素,pop掉(rpop)
  • rpoplpush source destination 把source右边的pop掉,并push到destination的左边,只有这一个,没有rpushpop
  • llen key 长度
  • lindex key index 取key在index上的值,复数倒着取
  • lrange key start end 取key从start开始到end的值
  • lset key index value 将key在index上的值设置为value,不能超过范围
  • linsert key pivot value
  • ltrim key start stop
  • lrem key count value

阻塞式,用法同上,就是多个了timeout。意思就是如果列表是空,那么会阻塞timeout这么多秒,或者中途有了新的元素(针对多个客户端而言)。

  • blpop key key… timeout
  • brpop key key… timeout
  • brpoplpush source destination… timeout

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280029.html

(0)
上一篇 2022年8月12日
下一篇 2022年8月12日

相关推荐

发表回复

登录后才能评论