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 协议》,转载必须注明作者和本文链接
推荐文章: