导图社区 redis cli总结
redis开发与运维数据库技术丛书,包括有序集合、键管理、集合、列表、不常用命令、计数、获取值、设置值、键的结构类型。
编辑于2022-05-31 23:44:17redis cli
查看所有键
keys *
键总数
dbsize
检查键是否存在
exist key
键过期
expire key seconds
大于等于0的整数:键剩余的过期时间。 ·-1:键没设置过期时间。 ·-2:键不存在 可以通过ttl命令观察键的剩余过期时间
删除键
del key
键的结构类型
type key
object encoding命令查询内部编码
object encoding key
设置值
set key value [ex seconds] [px milliseconds] [nx|xx]
set key value [ex seconds] [px milliseconds] [nx|xx] ex seconds:为键设置秒级过期时间 px milliseconds:为键设置毫秒级过期时间 nx:键必须不存在,才可以设置成功,用于添加 xx:与nx相反,键必须存在,才可以设置成功,用于更新 除了set选项,Redis还提供了setex和setnx两个命令
mset key value [key value ...]
获取值
get key
mget key [key ...]
计数
除了incr命令,Redis提供了decr(自减)、incrby(自增指定数 字)、decrby(自减指定数字)、incrbyfloat(自增浮点数):
incr key
不常用命令
追加值
append key value
字符串长度
strlen key
设置并返回原值
getset key value
设置指定位置的字符
setrange key offeset value
获取部分字符串
getrange key start end
哈希
设置值
hset key field value
获取值
hget key field
删除field
hdel key field [field ...]
计算field个数
hlen key
批量设置或获取field-value
hmget key field [field ...] hmset key field value [field value ...]
判断field是否存在
hexists key field
获取所有field
hkeys key
获取所有value
hvals key
获取所有的field-value
hgetall key
hscan
计算value的字符串长度
hstrlen key field
列表
列表(list)类型是用来存储多个有序的字符串
添加操作
从右边插入元素
rpush key value [value ...]
从左边插入元素
lpush key value [value ...]
向某个元素前或者后插入元素
linsert key before|after pivot value
获取指定范围内的元素列表
lrange key start end
获取列表长度
llen key
删除
从列表左侧弹出元素
lpop key
从列表右侧弹出
rpop key
删除指定元素
lrem命令会从列表中找到等于value的元素进行删除,根据count的 不同分为三种情况: ·count>0,从左到右,删除最多count个元素。 ·count<0,从右到左,删除最多count绝对值个元素。 ·count=0,删除所有。
lrem key count value
按照索引范围修剪列表
ltrim key start end
修改
lset key index newValue
阻塞操作
blpop key [key ...] timeout
brpop key [key ...] timeout
集合
集合(set)类型也是用来保存多个的字符串元素,但和列表类型 不一样的是,集合中不允许有重复元素,并且集合中的元素是无序 的,不能通过索引下标获取元素。 Redis除了支持集合内的增删改查,同时还支持多个集合 取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决 很多实际问题 ·sadd=Tagging(标签) ·spop/srandmember=Random item(生成随机数,比如抽奖) ·sadd+sinter=Social Graph(社交需求)
集合内操作
添加元素
sadd key element [element ...]
删除元素
srem key element [element ...]
计算元素个数
scard key
判断元素是否在集合中
sismember key element
随机从集合返回指定个数元素
srandmember key [count]
从集合随机弹出元素
spop key
获取所有元素
smembers key
集合间操作
求多个集合的交集
sinter key [key ...]
求多个集合的并集
suinon key [key ...]
求多个集合的差集
sdiff key [key ...]
将交集、并集、差集的结果保存
sinterstore destination key [key ...]
suionstore destination key [key ...]
sdiffstore destination key [key ...]
有序集合
集合内
添加成员
为zadd命令添加了nx、xx、ch、incr四个选项: ·nx:member必须不存在,才可以设置成功,用于添加。 ·xx:member必须存在,才可以设置成功,用于更新。 ·ch:返回此次操作后,有序集合元素和分数发生变化的个数 ·incr:对score做增加,相当于后面介绍的zincrby。
zadd key score member [score member ...]
计算成员个数
zcard key
计算某个成员的分数
zscore key member
计算成员的排名
zrank key member
zrevrank key member
删除成员
zrem key member [member ...]
增加成员的分数
zincrby key increment member
返回指定排名范围的成员
zrange key start end [withscores]
zrevrange key start end [withscores]
返回指定分数范围的成员
zrangebyscore key min max [withscores] [limit offset count]
zrevrangebyscore key max min [withscores] [limit offset count]
返回指定分数范围成员个数
zcount key min max
删除指定排名内的升序元素
zremrangebyrank key start end
集合间的操作
交集
zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
这个命令参数较多,下面分别进行说明: ·destination:交集计算结果保存到这个键。 ·numkeys:需要做交集计算键的个数。 ·key[key...]:需要做交集计算的键。 ·weights weight[weight...]:每个键的权重,在做交集计算时,每个 键中的每个member会将自己分数乘以这个权重,每个键的权重默认是1。 ·aggregate sum|min|max:计算成员交集后,分值可以按照 sum(和)、min(最小值)、max(最大值)做汇总,默认值是sum
并集
zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
键管理
键重命名
rename key newkey
随机返回一个键
randomkey
键过期
ttl命令和pttl都可以查询键的剩余过期时间,但是pttl精度更高可以达到毫秒级别
expire key seconds:键在seconds秒后过期
expireat key timestamp:键在秒级时间戳timestamp后过期
expireat命令可以设置键的秒级过期时间戳
pexpire key milliseconds:键在milliseconds毫秒后过期
pexpireat key milliseconds-timestamp键在毫秒级时间戳timestamp后过期
persist命令可以将键的过期时间清除
setex命令作为set+expire的组合,不但是原子执行,同时减少了一次网络通讯的时间
迁移键
move
dump+restore
migrate
遍历键
全量遍历键
keys pattern
渐进式遍历
scan cursor [match pattern] [count number]
hscan、sscan、zscan
数据库管理
切换数据库
select dbIndex
flushdb/flushall
dbsize
慢查询
获取慢查询日志
slowlog get [n]
获取慢查询日志列表当前的长度
slowlog len
慢查询日志重置
slowlog reset