通用命令
keys [pattern] #遍历所有key
keys 命令一般不在上产环境使用
dbsize #计算key的总数
exists key #检查key是否存在
del key #删除指定 key-value
expire key seconds #key在seconds秒后过期
ttl key #查看key剩余过期时间
persist key #去掉key的过期时间
type key #返回key的类型
单线程
-
- 一次只运行一条命令
-
- 拒绝长、慢命令 keys,flushall,flushdb,show lua script,mutil/exec, operate big value(collection)
-
- 其实不是单线程
fysnc file descriptorclose file descriptor
- 其实不是单线程
string
key value
value max 512MB
场景:缓存、计数器、分布式锁
api:
-
incr key#key自增1,不存在自增后则get(key) = 1 -
decr key#key自减1,不存在自增后则get(key) = -1 -
incrby key k#key自增k,不存在自增后则get(key) = k -
decrby key k#key自减k,不存在自增后则get(key) = -k -
set key value#key不管存在,都会设置 -
setnx key value#key不存在才设置 -
set key value xx#key存在才设置 -
mget key1 key2 key3...#批量获取 -
mset key1 value1 key2 value2...#批量设置 -
getset key newvalue#set key newvalue 并返回旧的value -
append key value#将value追加到旧的value -
strlen key#返回字符串长度,注意中文
hash
api:
hget key field# 获取hset key field value# 设置hdel key field# 删除hexists key field#判断hash key是否有fieldhlen key#获取hash key field的数量hmget key field1 field2 ...#批量获取hmset key field1 value1 ...#批量设置hgetall key#返回hash key 对应的所有的field和valuehvals key#返回hash key 对应的所有field的valuehkeys key#返回hash key 对应的所有field
list
api:
rpush key value1 value2 valueN# 从右端插入值 1-N 个lpush key value1 value2 valueN# 从左端插入值 1-N 个linsert key befor|after value newvalue# 在list指定的值前|后插入newValuelpop key# 从列表左边弹出一个itemrpop key# 从列表右边弹出一个itemlrem key count value# 根据count值,从list中删除所有value相等的itemltrim key start end# 按照索引范围修剪listlrange key start end(包含end)# 获取list指定索引范围所有itemlindex key index# 获取list指定索引的itemllen key# 获取list长度lset key index newValue# 设置list指定索引值index的valueblpop key timeout# lpop阻塞版版,timeout是阻塞超时时间brpop key timeout# rpop阻塞版版,timeout是阻塞超时时间
set
特点:无序、无重复、集合间操作
api:
sadd key element# 添加srem key element# 删除scard key# 计算集合大小sismember key element=x# 判断element是否存在集合中srandmember key count# 从集合中随机挑选count个元素spop key# 从集合中随机弹出一个元素smembers key# 取出集合中所有的元素 (无序、小心使用)sdiff key key2# 差集sinter key key2# 交集union key key2# 并集sdiff|sinter|union + store key# 将结果保存在key中
zset 有序集合
api:
zadd key score element# 添加score和elementzrem key element# 删除zscore key element# 获取分数zincrby key increScore element# 增加或减少元素的分数zcard key# 统计个数zrank key element# element 排名(正序)zrange key start end [withscores]# 返回指定索引范围内的升序元素[分值]zcount key minScore maxScore# 范围统计zremrangebyrank key start end# 删除排名内的升序元素
慢查询
配置:
- slowlog-max-len = 128
- slowlog-log-slower-than = 10000 (微秒)
查询:
slowlog get[n]#获取慢查询队列slowlog len#慢查询队列长度
发布订阅
api:
publish channel message发布消息subscribe channel订阅消息unsubscribe channel订阅消息
浙公网安备 33010602011771号