Redis常用命令

一、字符串

命令 说明
set key val [ex seconds | px milliseconds] [nx|xx] 设置字符串的值
ex:秒级过期时间
px:毫秒级过期时间
nx:键不存在才能设置成功,用于添加
xx:键存在才能设置成功,用于编辑
setnx key val 键不存在才能设置成功,用于添加
setex key seconds val 设置值及其过期时间
mset [key val …] 批量设置键值
get key 获取值
mget [key …] 批量获取值
incr key 自增
值非整数返回错误
值是整数返回自增结果
键不存在按0自增返回1
decr key 自减
值非整数返回错误
值是整数返回自减结果
键不存在按0自减返回-1
incrby key increment 自增指定增量
decrby key decrement 自减指定减量
incrbyfloat key increment 自增指定浮点数
append key val 给字符串尾部追加字符
strlen key 计算字符串长度
getset key val 设置新值并返回原值
setrange key offset val 设置指定位置的字符
getrange key start end 获取指定位置字符串

二、哈希

命令 说明
hset key field val 设置字段值
gset key field 获取字段值
hdel key [field …] 批量删除字段值
hlen key 计算字段个数
hmset key [field val …] 批量设置字段值
hmget key [field …] 批量获取字段值
hexists key field 判断字段是否存在
hkeys key 获取该键所有字段名称
hvals key 获取该键所有值
hgetall key 获取该键所有字段与值
hincrby key field increment 自增指定增量
hincrbyfloat key field increment 自增指定浮点数增量
hstrlen key field 计算字符串长度

三、列表

命令 说明
rpush key [val …] 从右边插入元素
lpush key [val …] 从左边插入元素
linsert key [before | after] pivot val 向某元素前或后插入元素
搜索首个pivot元素,搜索不到返回-1
在pivot元素前或后插入元素
lrange key start end 查找指定范围的元素列表,包括start和end下标的元素
lindex key index 获取列表指定索引下标的元素
llen key 获取列表的元素总数
lpop key 从列表左侧弹出元素。例:a b c => b c
rpop key 从列表右侧弹出元素。例:a b c => a b
lrem key count val 删除指定元素。搜索等于val的元素删除
count > 0 从左到右删除至多count个元素
count < 0 从右到左删除至多count个元素
count = 0 删除所有元素
ltrim key start end 按照索引范围【闭区间】修剪列表,范围外的元素删除
lset key index val 修改指定索引下标的元素
blpop [key …] timeout 从左侧阻塞式弹出
brpop [key …] timeout 从右侧阻塞式弹出
列表为空
timeout > 0 ,timeout秒后弹出空值,期间有元素插入将直接弹出
timeout = 0 ,一直阻塞等待,直至有元素插入,然后弹出
列表不为空将直接弹出
多个键时,从左到右遍历,一旦有一个键能弹出元素,立即返回
多个客户端对同一个键执行brpop时
最先执行的可以获得弹出值;其余的继续阻塞

四、集合

命令 说明
sadd key [member …] 添加成员
srem key [member …] 删除成员
scard key 计算成员个数
sismember key member 判断成员是否存在于集合中
srandmember key count 随机从集合返回指定个数成员
spop key count 随机从集合弹出指定个数成员
smembers key 获取所有成员
sinter [key …] 交集
sunion [key …] 并集
sdiff [key …] 差集
sinterstore destination [key …] 交集并保存为新集合 destination:新集合名称
sunionstore destination [key …] 并集并保存为新集合
sdiffstore destination [key …] 差集并保存为新集合

五、有序集合

命令 说明
zadd key [nx|xx] [ch] [incr] [score member …] 添加成员
nx:键不存在才能设置成功,用于添加
xx:键存在才能设置成功,用于编辑
ch:返回操作后元素和分数发生变化的个数
incr:对score做自增,增量为此次命令的score值
zcard 获取成员个数
zscore key member 获取某个成员分数
zrank key member 计算成员的score在集合中的排名,从低到高
zrevrank key member 计算成员的score在集合中的排名,从高到低
zrem key [member …] 删除成员
zincrby key increment member 增加成员分数
zrange key start end [withscores] 返回指定排名范围的成员,从低到高
withscores:同时返回成员分数
zrevrange key start end [withscores] 返回指定排名范围的成员,从高到低
zrangebyscore key min max [withscores] [limit offset count] 返回指定分数范围的成员。从低到高
withscores:同时返回成员分数
limit offset count:限制输出的起始位置和个数
min和max支持开区间、闭区间、无限小(-inf)、无限大(+inf)
zrevrangebyscore key max min [withscores] [limit offset count] 返回指定分数范围的成员。从高到低
zcount key min max 返回指定分数范围成员个数
zremrangebyrank key start end 删除指定排名内的升序元素
zremrangebyscore key min max 删除指定分数内的成员
zinterstore destination numkeys [key …] [weights weight] [aggregate sum|min|max] 交集并保存
destination:新集合名称
numkeys:需要做交集计算的键的个数
weights:每个键的权重,交集计算时,每个键的member会将分数乘以权重。权重默认1
aggregate:计算交集后,分值可按sum、min、max做汇总。默认sum
zunionstore destination numkeys [key …] [weights weight] [aggregate sum|min|max] 并集并保存。参数同上

六、Bitmaps

命令 说明
setbit key offset val 设置值,设置第offset个位的值(从0算起)
gitbit key offset 获取值
bitcount key [start end] 获取指定范围值为1的个数,不指定则获取全部
bitop operation destkey [key …] 运算多个Bitmaps的交集、并集、非、异或操作
operation = and,计算交集并将结果保存到destkey
operation = or,计算并集并将结果保存到destkey
operation = not,计算非并将结果保存到destkey
operation = xor,计算异或并将结果保存到destkey
bitopos key bit [start] [end] 计算第一个值为bit的偏移量

七、HyperLogLog

命令 说明
pfadd key [element …] 添加元素
pfcount [key …] 计算独立用户数
pfmerge destkey [sourcekey …] 合并

八、发布订阅

命令 说明
publish channel message 发布消息
subscribe [channel …] 订阅消息
unsubscribe [channel …] 取消订阅
psubscribe [pattern …] 模式订阅 支持 ? % []等模式
h?llo 订阅hello、hallo、hbllo等
h%llo 订阅hello、hallo、heello等
h[ae]llo 只订阅hallo、hello
h\?llo 订阅h?llo, 特殊字符作为普通字符用反斜杠 \
punsubscribe [pattern …] 模式取消订阅,模式同上
pubsub channels [pattern …] 查看活跃的频道
pubsub numsub [channel …] 查看频道订阅数
pubsub numpat 查看使用模式的订阅数

九、GEO

命令 说明
geoadd key [lon lat member …] 增加地理位置信息
lon:经度
lat:纬度
member:成员
geopos key [member …] 获取地理位置信息
geodist key member1 member2 [unit] 计算两个地理位置的距离
unit是单位,没有设置则默认为米
支持m(米)、km(千米)、mi(英里)、ft(英尺)
georadius key lon lat
radius [unit m|km|ft|mi]
[withcoord] [withdist] [withhash]
[count count] [asc|desc]
[store key] [storedist key]
获取指定经纬度范围内的位置集合
radius:半径,填数字
unit:单位,半径和离中心距离都用这个单位
withcoord:结果包含经纬度
withdist:结果包含离中心点位置的距离
withhash:结果包含geohash
count:返回结果的数量
asc:按离中心距离升序返回结果
desc:按离中心距离降序返回结果
store:位置信息保存指定键,不能用with选项
storedist:离中心距离保存指定键,不能用with
georadiusbymember key member
radius [unit m|km|ft|mi]
[withcoord] [withdist] [withhash]
[count count] [asc|desc]
[store key] [storedist key]
获取指定成员范围内的位置集合,参数同上
geohash key [member …] 获取geohash值
zrem key [member …] 删除地理位置信息

参考《Redis开发与运维》

本作品采用《CC 协议》,转载必须注明作者和本文链接
小城依旧
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

看了一眼setex错了, 键不存在也可以设置

3年前 评论
小城依旧 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!