Redis常用命令

67 阅读5分钟

字符串相关

命令作用返回举例
set赋值"OK"set myKey myValue
get取值get myKey
del删除数量del myKey

列表相关

命令作用返回举例
RPUSH/LPUSH右/左存入数据列表长度rpush myList value1 [value2...]
LRANGE指定范围取值数据列表lrange myList 0 -1
LINDEX指定下标获取数据,下标为负数时表示从右边开始计算数据lindex myList 1
LPOP/RPOP从左到右/从右往左弹出一条数据数据lpop myList
LTRIM指定偏移量截取列表,保留[a,b]之间的数据OKltrim myList 1 2
LLEN获取列表元素个数数量llen myList
LREMLREM key count value删除列表中前count个值为value的元素
当count>0时,从列表左边开始删除;当count<0时,从列表右边开始删除;当count=0时,删除所有值为value的元素
数量lrem myList -1 2
LSETLSET key index value指定下标设置值OKlset myList 2 test

阻塞式列表操作

命令作用返回举例
BLPOPblpop key1[,key2...] timeout 弹出最左端元素,阻塞指定时间,单位秒数据blpop mySet 10
BRPOPbrpop key1[,key2] timeout 弹出最右端元素,阻塞指定时间,单位秒数据brpop mySet 10
RPOPLPUSHrpoplpush srcKey destKey 从srcKey中弹出最右端元素,推入destKey列表的最左端被操作的元素rpoplpush mySet1 mySet2
BRPOPLPUSHrpoplpush的阻塞形式。brpoplpush srcKey destKey timeout被操作的元素brpoplpush mySet1 mySet2 10

集合相关

最多可以存储2^32-1个字符串

命令作用返回举例
SADD添加数据集合数据条数sadd mySet value1
SMEMBERS返回集合的所有元素数据列表smembers mySet
SISMEMBER是否存在指定数据1存在,0不存在sismember mySet value1
SREM弹出数据删除成功的数据条数srem mySet value2
SCARD返回集合包含的元素数量数量scard mySet
SRANDMEMBERsrandmember key [count] 随机返回一个或多个元素
count为正,返回的随机元素不会重复
count为负,返回的随机元素会重复
数据列表srandmember mySet 3
SPOP随机移除一个元素,并返回数据spop mySet
SMOVEsmove srcKey destKey item 从src中移除,添加到dest中。1成功,0失败smove mySet1 mySet2 value1

多集合处理

命令作用返回举例
SDIFFsdiff key1 [key2 ...] 差集,返回存在于第一个集合,不存在于其他集合中的元素数据列表sdiff mySet mySet2
SDIFFSTOREsdiff destKey key1 [key2 ...] sdiff的增强版,将返回的元素存入dest中数据数量sdiffstore destSet mySet mySet2
SINTERSINTER key1 [key2 ...] 交集,返回同时存在于所有集合中的元素数据列表sinter mySet mySet2
SINTERSTOREsinterstore destKey key1 [key2...] sinter的增强版,将返回的元素存入dest中数据数量sinterstore destSet mySet mySet2
SUNIONsunion key1 [key2 ...]并集数据列表sunion mySet mySet2
SUNIONSTOREsunionstore destKey key1 [key2...]sunion的增强版,将返回的元素存入dest中数据数量sunionstore destSet mySet mySet2

散列相关

命令作用返回举例
HSET赋值赋值成功的数据条数hset myMap key1 value1
HGET取值数据hget myMap key1
HMGETHMGET myMap key1 [key2...] 取值数量列表hmget myMap key1 key2
HMSEThmset myMap key1 value1 [key2 value2...]OKhmset myMap k1 v1 k2 v2
HGETALL获取指定散列的所有键值对键值放在列表中返回hgetall myMap
HDEL删除散列中的指定键删除成功的数据条数hdel myMap
HLEN散列表中键值对的数量数量hlen myMap
HEXISTShexists myMap k1是否存在1存在,0不存在hexists myMap k1
HKEYShkeys myMap 返回键列表键列表hkeys myMap
HVALShvals myMap 返回值列表值列表hvals myMap
HINCRBYhincrby myMap k1 3指定值增加整数修改后的值hincrby myMap k1 3
HINCRBYFLOAThincrbyfloat myMap key value指定值增加浮点数修改后的值hincrbyfloat myMap k1 1.3

有序集合相关

命令作用返回举例
ZADD添加数据,根据分值进行排序,必须为浮点数。
key可以为±inf,代表正负无穷大
添加成功的数据条数zadd myZset 111 value1
ZRANGE指定分值范围,获取数据数据列表zrange myZset 0 0
ZRANGEBYSCORE指定分值值范围,获取数据数据列表zrangebyscore myZset 0 100
ZREM根据成员member删除指定数据操作成功的数据条数zrem myZset value1
ZCARDzcard myZset 返回成员数量条数zcard myZset
ZINCRBYzincrby myZset 3 value1将value1的值增加3增加后的值zincrby myZset 3 value1
ZCOUNT返回指定分值(key)之间的成员数量数量zcount myZset 1 100
ZRANK返回指定成员(member)在集合中的排名,从0开始排名zrank myZset value1
ZSCORE返回指定成员(member)的分值(key)分值keyzscore myZset value1

有序集合范围操作

命令作用返回举例
ZREVRANK与zrank排序相反,返回分值分值zrevrank myZset value1
ZREVRANGE与zrange排序方式相反,从大到小排序。指定分值范围,按序返回数据数据列表zrevrange myZset 0 1
ZREVRANGEBYSCORE与zrangebyscore排序方式相反,指定分值范围,按序返回数据zrevrangebyscore myZset 0 1
ZREMRANGEBYRANKzremrangebyrank mySet start stop 根据排名删除数据被删除的数据条数zremrangebyrank myZset 0 1
ZREMRANGEBYSCOREzremrangebyscore mySet min max 根据分值删除数据被删除的数据条数zremrangebyscore myZset 0 100
ZINTERSTOREzinterstore destKey keyCount key1 [key2 ...] 交集运算
ZUNIONSTOREzunionstore destKey keyCount key1 [key2 ...] 并集运算

自增自减命令

命令作用返回举例
INCR指定元素自增1自增后的值set age 12
incr age
DECR指定元素自减1自减后的值decr age
INCRBY指定元素增加指定的整数值增加后的值incrby age 12
DECRBY指定元素减少指定的整数值减少后的值decrby age 3
INCRBYFLOAT指定元素增加指定的浮点值操作后的值incrbyfloat age 0.3

处理子串与二进制位

命令作用返回举例
APPEND在指定key后追加值追加数据后数据长度set word hello
append word ,world
GETRANGE获取指定偏移量内的子串数据getrange word 2 5
SETRANGE指定偏移量设置为给定值,覆盖更新后的数据长度set word hello
setrange word 2 n ==>henlo
SETBIT将字符串视为二进制位串,
指定偏移位置设值,只能设为0或1
更新后的值setbit word 2 1
GETBIT将字符串视为二进制位串,指定偏移位置取值0或1getbit word 2
BITCOUNT将字符串视为二进制位串,获取其中值为1的二进制位数量数量bitcount word
BITOP对一个或多个二进制位串执行按位运算,
保存在指定位置
格式为bitop operation dest-key src-key [src-key2...]
operation取值范围为and/or/xor/not
执行结果的数据长度bitop or result name name2

发布与订阅

命令作用返回举例
SUBSCRIBEsubscribe channel [channel2...] 订阅频道
UNSUBSCRIBEunsubscribe {channel [channel2...]} 退订频道,若不指定,退订所有
PUBLISHpublish channel message 向指定频道发送消息
PSUBSCRIBEpsubscribe pattern [pattern 2...] 订阅与指定模式匹配的所有频道
PUNSUBSCRIBRpunsubscribe {pattern [pattern2 ...]} 退订与指定模式匹配的所有频道

其他命令

命令作用返回举例
SORTsort srcKey [by pattern] [limit offset count] [get pattern [get pattern ...]] [ascIdesc] [alpha] [store dest-key]
对列表、集合、有序集合进行排序,返回排序结果
PERSISTpersist key 移除指定键的过期时间
TTLttl key 查看指定键剩余时间
EXPIREexpire key seconds 设置过期时间 秒
EXPIREATexpireat key timestamp 设置过期时间 UNIX时间戳
PTTLpttl key 查看距离过期时间还有多少毫秒
PEXPIREpexpire key milliseconds设置过期时间 毫秒
PEXPIREATpexpireat key timestamp-millionseconds 设置过期时间, 毫秒级经度的UNIX时间戳