redis命令总结

本文全面介绍了Redis的各种命令,包括通用命令、字符串操作、哈希、列表、集合、有序集合、慢查询、发布订阅、位图、HyperLogLog、Geo等功能模块。每种命令都附有详细的说明,帮助读者深入理解Redis的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通用命令

del key #删除key
exist key #key是否存在
expire key second #设置key的过期时间
persist key second #key续期
ttl key #key的剩余存活时间
keys pattern #按模式匹配所有的key
type key #key的类型
dbsize #当前数据库key的总数
select db #选择数据库,redis默认有16个database
object encoding key #返回key的内部编码

字符串string

set key value #设置指定的key值
get key  #获取指定的key值
setnx key value #当key不存在时设置key,等价于set key value nx
set key value xx #当key存在时设置key的值,覆盖
setex key second value #设置key的过期时间,单位秒,等价于set key value ex second
psetex key millisecond value #设置key的过期时间,单位毫秒,等价于set key value px millisecond
incr key #value加1,若key不存在则创建key
decr key #value减1,若key不存在则创建key
incrby key increment #value+增量值,若key不存在则创建key
decrby key decrement #value-减量值,若key不存在则创建key
incrbyfloat key increment #value+浮点数增量值,若key不存在则创建key
mget key1 key2 #批量获取key对应的值
mset key1 value1 key2 value2 #批量设置key对应的值
append key value #追加字符串value到原value的末尾
strlen key #key对应的value长度
getrange key start end #获取子串
setrange key offset value #从offset开始替换字符串,替换的值为value,替换的长度为value的长度

哈希hash

hset key field value #设置key中字段为field的值为value
hsetnx key field value #当key中field字段不存在时,设置字段field
hget key field #获取key中字段field的值
hexist key field #key中字段field是否存在
hdel key field #删除key中字段field
hlen key #获取key中字段的数量
hkeys key #获取key中所有的field
hvals key #获取key中所有的value
hmget key field1 field2 #获取key中多个field
hmset key field1 value1 field1 value1 #设置key中多个field
hgetall key #获取所有的field、valueincr
hincrby key field increment #key中field的值+增量值
hincrbyfloat key field increment #key中field的值+浮点增量值
hscan key cursor #迭代key中所有的键值对

列表list

lpush key value1 value2 # 从左侧插入
rpush key value1 value2 #从右侧插入
lpop key #从左侧弹出
rpop key #从右侧弹出
linsert key before/after pivot value #在元素之前或之后插入
lrange key start end #指定索引范围的元素
lindex key index #指定索引处的元素
lrem key count value #删除count个值为value的元素
ltrim key start end #保留指定区间的元素
llen key #列表长度
lset key index value #替换指定索引处的元素
lpushx key value #将一个值插入到已存在的列表头部
rpushx key value #为已存在的列表添加值

#移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
blpop key1 [key2 ] timeout
#移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
brpop key1 [key2 ] timeout
#从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
brpoplpush source destination timeout
#移除列表的最后一个元素,并将该元素添加到另一个列表并返回
rpoplpush source destination

集合set

sadd key member1 member2 #向集合中添加一个或多个成员
srem key member1 member2 #移除集合中一个或多个成员
scard key #集合中成员数
smembers key #返回集合中所有成员
sismember key #判断member是否为集合中的成员
srandmember key [count] #随机返回集合中一个或多个成员
spop key [count] #随机移除集合中一个或多个元素,count参数在3.2+版本可用
smove sourcekey destkey member #将成员member从源集合移动到目标集合
sdiff key1 key2 #一个或多个集合的差集
sunion key1 key2 #一个或多个集合的集合并集
sinter key1 key2 #一个或多个集合的集合交集
sdiff|sinter|sunionstore destkey key1 key2 #返回指定集合的差集|交集|并集并存储在destkey中
sscan key cursor #迭代集合中的元素

有序集合zset

ZADD key score1 member1 [score2 member2] #向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD key #获取有序集合的成员数
ZCOUNT key min max #计算在有序集合中指定区间分数的成员数
ZINCRBY key increment member #有序集合中对指定成员的分数加上增量 increment
ZINTERSTORE destination numkeys key [key ...] #计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
ZLEXCOUNT key min max #在有序集合中计算指定字典区间内成员数量
ZRANGE key start stop [WITHSCORES] #通过索引区间返回有序集合指定区间内的成员
ZRANGEBYLEX key min max [LIMIT offset count] #通过字典区间返回有序集合的成员
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] #通过分数返回有序集合指定区间内的成员
ZRANK key member #返回有序集合中指定成员的索引
ZREM key member [member ...] #移除有序集合中的一个或多个成员
ZREMRANGEBYLEX key min max #移除有序集合中给定的字典区间的所有成员
ZREMRANGEBYRANK key start stop #移除有序集合中给定的排名区间的所有成员
ZREMRANGEBYSCORE key min max #移除有序集合中给定的分数区间的所有成员
ZREVRANGE key start stop [WITHSCORES] #返回有序集中指定区间内的成员,通过索引,分数从高到低
ZREVRANGEBYSCORE key max min [WITHSCORES] #返回有序集中指定分数区间内的成员,分数从高到低排序
ZREVRANK key member #返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
ZSCORE key member #返回有序集中,成员的分数值
ZUNIONSTORE destination numkeys key [key ...] #计算给定的一个或多个有序集的并集,并存储在新的 key 中
ZSCAN key cursor [MATCH pattern] [COUNT count] #迭代有序集合中的元素(包括元素成员和元素分值)

慢查询

config get slowlog-max-len #慢查询最大日志记录数,默认128
config get slowlog-slower-than #慢查询阈值,默认10000
config set slowlog-max-len #设置慢查询最大日志记录数
config set  slowlog-slower-than #设置慢查询阈值
slowlog get [n] #获取慢查询记录
slowlog len #慢查询记录数
slowlog reset #重置慢查询日志

发布订阅

publish channel message #将信息发送到指定的频道
subscribe channel1 channel2 #订阅给定的一个或多个频道的信息
unsubscribe channel1 channel2 #退订给定的频道
psubscribe [pattern...] #订阅一个或多个符合给定模式的频道
punsubscribe [pattern...] #退订所有给定模式的频道
pubsub channels [pattern...] #列出当前活跃的频道
pubsub numsub [channel...] #返回给定频道的订阅者数量
pubsub numpat #返回订阅模式的数量。

Bitmap

setbit key offset 0|1 #设置索引处bit值为0或1
getbit key offset #查询指定索引处的bit值
bitcount key [start][end] #key中bit为1的数量,start、end指的是字节范围,不是位范围
bitop operation destkey key [key ...] #对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上,operation可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种
bitops key bit [start][end] #返回字符串里面第一个被设置为 1 或者 0 的bit位,start、end指的是字节范围,不是位范围

HyperLogLog

pfadd key element [element ...] #添加元素到HyperLogLog 中。
pfcount key [key ...]   #返回HyperLogLog所有元素的估算值。
pfmerge destkey sourcekey [sourcekey ...] #将多个HyperLogLog 合并为一个HyperLogLog

Geo

geoadd key 经度1 纬度1 地点1 经度2 纬度2 地点2#将指定的地理空间位置(纬度、经度、名称)添加到指定的key中
geodist key  地点1 地点2 #返回两个给定位置之间的距离
geopos key 地点1 地点2 #从key里返回所有给定位置元素的位置(经度和纬度)
georadius key 指定经度 指定纬度 距离 距离单位 #以给定的经纬度为中心,找出某一半径内的元素

redis危险命令

keys * #查询所有key,可以使用指定模式进行匹配或者使用scan命令迭代
flushdb #删除当前database的数据
flushall #删除所有databse的数据
config #查询所有配置信息,可以在配置文件中将命令重命名为“”,使命令不可用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值