姚宁的博客

redis-cli命令总结

增 主要依靠对各个数据结构的操作
删 del(key)、flushdb、flushall
改 各个数据结构特定的修改
查 keys *、各个数据结构特定的查询

redis-cli

操作 含义 说明
redis-cli info 列出redis的所有信息 包括版本号及各种配置  
redis-cli -h 101.101.101.1 -p 6379 -a password 连接远程redis  

功能操作

操作 含义 说明
select index 切换库 默认db0
quit 退出  
clean 清空当前窗口  

对key的操作

操作 含义 说明 速记
keys * 列出所有的key  
keys *v1 匹配v1结尾的key  
keys v1* 匹配v1打头的key  
keys *v1* 匹配包含v1的key  
exists(key) 是否存在key 0不存在 1存在
type(key) 显示key的类型  
del(key) 删除key  
flushdb 删除当前db所有的key  
flushall 删除所有库的key  

对string的操作

主要操作 增(set、mset) 查(get、mget) 改(append、substr)

操作 含义 说明 速记
set key value 给key赋值value 类型为String  
get key 获取key的value 只能用于value是String类型的key
mset key1 value1 key2 value2 key3 value3 批量设置key-value   批量增
mget key1 key2 key3 返回多个key的值   批量查
incr key key的value自增 仅对可以转为interger的string生效
decr key key的value自减 仅对可以转为interget的string生效
incrby key number 可以的value增加number 仅对可以转为interger的string生效
decrby key number 可以的value减少number 仅对可以转为interger的string生效
append key end 在key的value末尾拼上end  
substr key start end 返回key的value的子串 index从0开始 条件查

对list的操作

所有对list的操作前边一般都有一个小写字母l
主要操作 增(rpush、lpush) 删(lrem、lpop、rpop) 改(ltrim、lset) 查(llen、lrange、lindex)

操作 含义 说明 速记
rpush key value1 value2 value3 尾部添加元素,可以多个 r是right的意思 右边也就是尾部
lpush key value1 value2 value3 头部添加元素,可以多个 l是left的意思 左边也就是顶部, 注意value1 value2 value3 最终的顺序为 value3 value2 value1, 可以理解为依次添加
llen key 返回长度  
ltrim key index 截取到index 被操作list会被截取
lrange key start end 返回下标从start到end的值 lrange key 0 -1 为返回所有的值
lindex key index 查找下标为index的值 越界返回nil, -1表示倒数第一个, -2表示倒数第二个 依次类推
lset key index value 修改下标为index的值为value  
lrem key count v1 删除count个value为v1的元素 超过拥有个数会全部删除 2表示顺序删除2个 -2表示逆序删除2个
lpop key 左侧删除首个元素并返回  
rpop key 右侧删除首个元素并返回  
blpop key1 key2 .. keyN timeout 不是很理解,暂时想不到适用的场景  
brpop key1 key2 .. keyN timeout 同上  
rpoplpush srckey dstkey 右侧删除元素并放入新的list srckey dstkey相同时相当于将尾部元素移动到首部

对set的操作

所有对set的操作前边一般都有一个小写字母s
主要操作为 增(sadd) 删(srem、spop) 改(smove) 查(scard、smembers、srandmember) 并交差运算(sinter、sunion、sdiff)
set中元素不可重复

操作 含义 说明 速记
sadd key m1 m2 添加元素m1 m2  
srem key m1 删除set中的m1 成功返回1 不存在返回0
spop key count 随机删除set中count个元素 返回被删除元素
smove srckey dstkey m1 将srckey中的m1移动到dstkey中 成功返回1 不存在返回0
smembers key 返回所有元素  
srandmember key count 随机返回count个元素  
scard key 返回set元素数量  
sismember key m1 m1是否是key的元素 是返回1 否返回0
sinter key1 key2 …keyN 求交集  
sinterstore dstkey key1 key2 … keyN 求交集存到dstkey  
sunion key1 key2 …keyN 求并集  
sunionstore dstkey key1 key2 … keyN 求并集存到dstkey  
sdiff key1 key2 …keyN 求差集  
sdiffstore(dstkey key1 key2 … keyN) 求差集存在dstkey  

对zset的操作

所有对zset的操作一般前边都有一个小写字母z
主要操作为 增(zadd、zincrby) 删(zrem、zremrangebylex、zremrangebyrank、zremrangebyscore) 改(incrby) 查(zrange、zrangebylex、zrangebyscore、zrevrangebyscore…)
删除、查找均可以通过index及score来操作 默认顺序 也可以逆序(rev)

操作 含义 说明 速记
zadd key1 score1 m1 score2 m2 score3 m3… scoreN mN 添加分数为score1的元素m1、分数为score2的元素m2、分数为score3的元素m3 … 到key1 顺序错乱报ERR syntax error错误
zincrby key1 increment m1 m1元素score+increment m1不存在则添加 score为increment    
zcount key1 min max 返回min<=score<=max的元素数量 zcount key1 (1 (10 表示 score大于1小于10
zrange key1 start end 按照score从低到高返回下标为start到end的元素  
zrevrange key1 start end zrange相比score从高到低  
zrank key1 m1 返回m1元素的index 即排第几个
zrevrank key1 m1 zrank相比score从高到低  
zrangebyscore key1 min max 返回min<=score<=max的元素 从小到大排列  
zrevrangebyscore key1 max min 与zrangebyscore相比 从大到小排列  
zrem key1 m1 删除m1  
zremrangebylex key1 [a [b 删除a和c之间的元素 包括a和c score由小到大
zremrangebyrank key1 0 1 删除index在0和1之间的元素  
zremrangebyscore key1 min max 删除score在min和max之间的元素  

对hash的操作

所有对zset的操作一般前边都有一个小写字母h 主要操作为 增(hset、hmset) 删(hdel) 改(hset–key相同的情况下修改value) 查(hget、hmget、hexists、hlen、hkeys、hvals、hgetall)

操作 含义 说明 速记
hset key k1 v1 添加元素键为k1 value为v1 返回增加数量 若k不存在新增 k存在修改v的值
hget key k1 返回键为k1的v 不存在返回nil
hmset key k1 v1 k2 v2 …kN vN 批量插入  
hmget key k1 k2 k3 批量查找  
hdel key k1 k2 … kN 删除键为k1、k2、k3的元素  
hexists key k1 k1是否存在 存在返回1 不存在返回0
hlen key hash中的元素个数  
hkeys key hash中所有的键  
hvals key hash中所有的value  
hgetall key hash中所有的key和value 按照k1、v1、k2、v2…的顺序排列

参考资料

Redis 命令参考