这里只总结具体用法,至于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