一、基础命令:
启动Redis客户端:
redis-cli
身份验证(若配置了密码):
auth password
测试连接是否正常:
ping
退出 Redis 客户端连接:
exit或quit
输出指定的字符串(常用于测试客户端与服务端通信):
echo message
获取Redis服务的各类信息:
info [section]
返回当前Redis服务的Unix时间戳(秒)和微秒数:
time
Redis 性能测试工具:
redis-benchmark [options] [command]
查看指定命令组的帮助信息:
help @组名
列出Redis服务支持的所有命令(返回命令列表及格式):
command
返回Redis服务支持的命令总数:
command count
分析指定命令的参数,提取其中的键名(用于命令解析场景):
command getkeys command [arg ...]
获取指定命令的详细信息(如参数个数、权限、标识等):
command info command [command ...]
设置Redis配置参数(部分参数需重启生效,部分实时生效):
config set parameter value
获取Redis配置参数的值(支持通配符*,如 config get *maxmemory*):
config get parameter
将当前生效的配置写入配置文件(持久化配置,避免重启丢失):
config rewrite
重置Redis的统计信息(如命令执行次数、连接数等,不影响核心数据):
config resetstat
终止指定的客户端连接(通过IP:端口或客户端ID):
client kill addr:port|id client-id
列出所有当前连接的客户端信息(如地址、状态、命令数等):
client list
为当前客户端设置名称(便于识别,如 "app-user-service"):
client setname client-name
获取当前客户端的名称(未设置则返回空):
client getname
暂停所有客户端命令执行(指定时间,单位毫秒),常用于数据迁移:
client pause milliseconds
二、Key类型命令
删除一个或多个键:
del key [key ...]
检查键是否存在(返回存在的键数量):
exists key [key ...]
为键设置过期时间(秒):
expire key seconds
查看键的剩余过期时间(秒,-1永不过期,-2已过期/不存在):
ttl key
移除键的过期时间,使其永久存在:
persist key
查找符合模式的所有键(谨慎使用,可能阻塞服务):
keys pattern
将键移动到指定数据库:
move key db
随机返回当前数据库中的一个键:
randomkey
重命名键(若新键存在则覆盖):
rename key newkey
仅当新键不存在时重命名键:
renamenx key newkey
查看键对应的值类型:
type key
切换到指定数据库(默认0-15):
select 1
查看当前数据库的键数量:
dbsize
清空当前数据库的所有键:
flushdb
清空所有数据库的所有键:
flushall
三、String类型命令
设置键值对,支持可选参数(EX/PX/NX/XX):
set key value [EX seconds|PX milliseconds|NX|XX]
设置键值对并指定过期时间(秒):
setex key seconds value
仅当键不存在时设置键值对:
setnx key value
获取键的值:
get key
批量设置多个键值对:
mset key value [key value ...]
批量设置多个键值对(仅当所有键都不存在时执行):
msetnx key value [key value ...]
批量获取多个键的值:
mget key [key ...]
从指定索引开始覆盖字符串的部分内容:
setrange key offset value
获取字符串从start到end索引的子串(包含两端):
getrange key start end
对字符串的指定位设置值(0或1):
setbit key offset value
获取字符串指定位的值(0或1):
getbit key offset
获取键的旧值并设置新值(原子操作):
getset key value
对整数值原子自增1:
incr key
对整数值按步长原子自增:
incrby key increment
对浮点数值按步长原子自增:
incrbyfloat key increment
对整数值原子自减1:
decr key
对整数值按步长原子自减:
decrby key decrement
获取字符串的长度:
strlen key
向字符串末尾追加内容:
append key value
四、Hash 类型命令
为哈希表设置字段和值(字段存在则覆盖):
hset key field value
仅当哈希表中字段不存在时,设置字段和值:
hsetnx key field value
获取哈希表中指定字段的值:
hget key field
批量为哈希表设置多个字段和值:
hmset key field value [field value ...]
批量获取哈希表中多个字段的值:
hmget key field [field ...]
获取哈希表中所有字段和对应的值:
hgetall key
获取哈希表中所有字段名:
hkeys key
获取哈希表中所有字段值:
hvals key
对哈希表中指定字段的整数值按步长原子自增:
hincrby key field increment
对哈希表中指定字段的浮点数值按步长原子自增:
hincrbyfloat key field increment
删除哈希表中一个或多个字段:
hdel key field [field ...]
获取哈希表中字段的数量:
hlen key
检查哈希表中指定字段是否存在(1存在,0不存在):
hexists key field
迭代哈希表中的字段和值(用于大数据量安全遍历):
hscan key cursor [MATCH pattern] [COUNT count]
五、List 类型命令
向列表左侧(头部)添加一个或多个元素:
lpush key element [element ...]
移除并返回列表左侧(头部)的第一个元素:
lpop key
向列表右侧(尾部)添加一个或多个元素:
rpush key element [element ...]
移除并返回列表右侧(尾部)的第一个元素:
rpop key
仅当列表存在时,向其左侧添加一个或多个元素:
lpushx key element [element ...]
仅当列表存在时,向其右侧添加一个或多个元素:
rpushx key element [element ...]
返回列表中从start到stop索引范围内的元素(包含两端,索引从0开始,负数表示倒数):
lrange key start stop
阻塞式移除并返回第一个非空列表的左侧第一个元素,超时时间为timeout秒:
blpop key [key ...] timeout
阻塞式移除并返回第一个非空列表的右侧第一个元素,超时时间为timeout秒:
brpop key [key ...] timeout
阻塞式从source列表右侧弹出元素并推入destination列表左侧,超时时间为timeout秒:
brpoplpush source destination timeout
从source列表右侧弹出元素并推入destination列表左侧(非阻塞):
rpoplpush source destination
返回列表中指定索引位置的元素:
lindex key index
返回列表的长度(元素个数):
llen key
从列表中删除count个值为value的元素(count>0从左删,count<0从右删,count=0删除所有):
lrem key count value
保留列表中从start到stop索引范围内的元素,删除其他元素:
ltrim key start stop
将列表中指定索引位置的元素设置为新值:
lset key index value
在列表中pivot元素的前面(BEFORE)或后面(AFTER)插入element元素:
linsert key BEFORE|AFTER pivot element
六、Set 类型命令
向集合中添加一个或多个元素:
sadd key member [member ...]
从集合中移除一个或多个元素:
srem key member [member ...]
返回集合中元素的数量:
scard key
检查元素是否是集合的成员(1是,0否):
sismember key member
返回集合中的所有元素:
smembers key
返回多个集合的交集(共同拥有的元素):
sinter key [key ...]
将多个集合的交集存储到destination集合中:
sinterstore destination key [key ...]
返回第一个集合与其他集合的差集(只在第一个集合中存在的元素):
sdiff key [key ...]
将第一个集合与其他集合的差集存储到destination集合中:
sdiffstore destination key [key ...]
返回多个集合的并集(所有集合中的元素,去重):
sunion key [key ...]
将多个集合的并集存储到destination集合中:
sunionstore destination key [key ...]
随机返回集合中的count个元素(默认1个,不会删除元素):
srandmember key [count]
随机移除并返回集合中的count个元素(默认1个):
spop key [count]
将元素从source集合移动到destination集合:
smove source destination member
迭代集合中的元素(用于大数据量安全遍历):
sscan key cursor [MATCH pattern] [COUNT count]
七、Sorted Set 类型命令
向有序集合中添加一个或多个元素(member及其score):
zadd key [NX|XX] [CH] [INCR] score member [score member ...]
从有序集合中移除一个或多个元素:
zrem key member [member ...]
移除有序集合中按字典序在min和max范围内的元素:
zremrangebylex key min max
移除有序集合中排名在start到stop范围内的元素:
zremrangebyrank key start stop
移除有序集合中分数在min到max范围内的元素:
zremrangebyscore key min max
返回有序集合中指定元素的分数:
zscore key member
返回有序集合中指定元素的排名(按分数升序,从0开始):
zrank key member
返回有序集合中元素的数量:
zcard key
返回有序集合中分数在min到max范围内的元素数量:
zcount key min max
计算有序集合中按字典序在min和max范围内的元素数量:
zlexcount key min max
为有序集合中指定元素的分数加上增量(可正负):
zincrby key increment member
返回有序集合中排名在start到stop范围内的元素(按分数升序):
zrange key start stop [WITHSCORES]
返回有序集合中按字典序在min和max范围内的元素:
zrangebylex key min max [LIMIT offset count]
返回有序集合中分数在min到max范围内的元素(按分数升序):
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
计算多个有序集合的差集、交集、并集:
zdiff numkeys key [key ...] [WITHSCORES]
zinter numkeys key [key ...] [WITHSCORES]
zunion numkeys key [key ...] [WITHSCORES]
将多个有序集合的差集、交集、并集存储到destination中:
zdiffstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
zunionstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
返回有序集合中排名在start到stop范围内的元素(按分数降序):
zrevrange key start stop [WITHSCORES]
返回有序集合中分数在max到min范围内的元素(按分数降序):
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
返回有序集合中指定元素的排名(按分数降序,从0开始):
zrevrank key member
迭代有序集合中的元素(用于大数据量安全遍历):
zscan key cursor [MATCH pattern] [COUNT count]
八、其他命令
HyperLogLog 类型命令及说明:
向HyperLogLog结构中添加一个或多个元素:pfadd key element [element ...]
返回HyperLogLog结构中基数的近似值(不重复元素的数量):pfcount key [key ...]
将多个HyperLogLog结构合并到一个新的HyperLogLog结构中:pfmerge destkey sourcekey [sourcekey ...]
发布订阅命令及说明:
订阅一个或多个频道,接收这些频道的消息:subscribe channel [channel ...]
取消订阅一个或多个频道(不指定频道则取消所有订阅):unsubscribe [channel [channel ...]]
订阅与给定模式匹配的所有频道(支持通配符*):psubscribe pattern [pattern ...]
取消订阅与给定模式匹配的频道(不指定模式则取消所有模式订阅):punsubscribe [pattern [pattern ...]]
查看订阅相关的信息,如活跃频道、订阅数等:pubsub subcommand [argument [argument ...]]
向指定频道发送消息:publish channel message
事务命令及说明:
标记一个事务块的开始,后续命令会被放入队列等待执行:multi
执行事务块中所有排队的命令(按入队顺序执行),若事务执行过程中发生错误,已执行的命令不会回滚:exec
取消当前事务,清空队列中所有等待执行的命令:discard
监视一个或多个键,若在事务执行前这些键被修改,则事务会被打断(不执行):watch key [key ...]
取消对所有键的监视:unwatch
异步重写AOF文件(优化AOF体积,不阻塞主进程):bgrewriteaof
异步生成RDB快照(后台执行,不阻塞主进程):bgsave
同步生成 RDB 快照文件(将当前数据库所有数据写入磁盘的 dump.rdb 文件):save
查看指定键的详细调试信息(如类型、编码、过期时间、引用计数等):debug object key
触发Redis服务段错误(仅用于调试,生产环境禁止使用,会导致服务崩溃):debug segfault
实时监控Redis服务接收并执行的所有命令(用于调试,会影响性能):monitor
操作慢查询日志(如查看慢查询、设置慢查询阈值,格式:slowlog subcommand,如 slowlog get 10)
slowlog subcommand [argument ...]
返回最近一次RDB快照生成的Unix时间戳:lastsave
同步生成RDB快照(阻塞主进程,直到快照完成,不建议生产环境使用):save
关闭Redis服务(可选参数:save 关闭前生成RDB,nosave 不生成RDB):shutdown [save|nosave]
查看Redis集群的槽位分配信息(主从节点与槽位对应关系):cluster slots
配置当前节点为指定主节点的从节点(用于主从复制,Redis 5.0+推荐用 replicaof):slaveof master-ip master-port
取消从节点身份(设置为独立节点):slaveof no one
查看当前节点在主从复制中的角色(master、slave 或 sentinel)及相关信息:role
主从节点间的同步命令(用于从节点请求主节点数据同步,Redis内部使用为主):sync