Redis Command Set¶
说明类¶
Redis Cluster模式: (1)连接redis-cli -c 需要带-c; (2)写入和变更操作需要在master节点 (3)dbsize指令之作用于当前节点实例, 全部节点的dbsize累加为dbsize总数; (4)keys * 仅查询本节点的实例的key
哨兵模式: (1)写入和变更操作需要在master节点 (2)dbsize指令之作用于当前节DB
redis_server¶
redis_server file¶
启动redis服务
redis-server -v¶
查看redis版本信息
redis_sentinel file¶
redis-cli¶
redis-cli shutdown [redis]¶
redis-cli shutdown [sentinel]¶
redis-cli info¶
redis-cli info replication¶
redis-cli cluster nodes¶
查询cluster nodes节点信息
redis-cli sentinel info¶
操作类¶
redis-cli: select¶
redis-cli:set¶
操作Key-Value值
redis-cli:get¶
操作Key-Value值
redis-cli:del¶
操作Key-Value值
redis-cli:ttl¶
设置过期时间/永不过期
redis-cli:expire¶
设置过期时间/永不过期
redis-cli:PERSIST¶
设置过期时间/永不过期
redis-cli: keys¶
查询全部key *(不建议)
redis-cli:info:keyspace¶
查询Key数量
redis-cli:dbsize¶
查询Key数量
模糊查询key¶
查询kv并重定向到文件¶
./redis-cli -p 6379 -a pwd@redis scan 0 count 10 >test.txt
./redis-cli -p 6379 -a pwd@redis keys '*' >test.txt
主动切换主从关系¶
# 哨兵模式,手动出发故障转移, 在当前master主节点执行
./redis-cli -p 26379 sentinel failover mymaster
# 通用方式,兼容主从、哨兵、集群复制模式
# 非主节点执行,将当前服务器将升为主服务器
> SLAVEOF NO ONE
故障排查类¶
查询大Key¶
./redis-cli -p 6379 -a pwd@redis --bigkeys
# --bigkeys是Redis的一个命令行选项,它用于帮助你找出占用内存最大的key。
# 运行redis-cli --bigkeys时,Redis将会扫描整个数据库,找出并报告以下信息:
# 每种类型(string、list、set、zset、hash)的最大key。
# 每种类型的key的平均大小。
# 数据库中总的key数量。
# 每种类型的key的数量。
# 请注意,--bigkeys选项会扫描整个数据库,如果你的数据库非常大,这可能会花费一些时间,并且在扫描过程中,Redis的性能可能会有所下降。因此,你应该在低峰时段或者在备份服务器上运行这个命令
# 该指令并不能准确判断大key, 只作为参考。
慢查询日志功¶
# SLOWLOG GET [N]
# 返回最新的N条慢查询记录。如果N省略,返回10条
> slowlog get 5
# 结果说明
唯一的递增ID
执行命令的Unix时间戳
执行命令的微秒数
执行的命令和参数
客户端IP和端口
客户端名称
# 慢查询日志的长度,默认128
> slowlog len
# 清空慢查询日志,风险操作
> SLOWLOG RESET
# 设置慢查询阈值,单位是微秒。如果执行命令的时间超过这个阈值,就会被记录到慢查询日志。默认值是10000微秒(即10毫秒)。如果设置为-1,将禁用慢查询日志.
> CONFIG SET slowlog-log-slower-than [microseconds]
> CONFIG SET slowlog-log-slower-than 50000
# 设置慢查询日志的最大长度。如果新的慢查询记录导致日志长度超过这个值,最旧的记录将被删除。默认值是128.
> CONFIG SET slowlog-max-len [N]
> CONFIG SET slowlog-max-len 200
请求监控指令¶
# MONITOR命令用于实时监控Redis服务器接收到的所有请求。可以帮助你理解发生了什么,但是它也会消耗大量的CPU和内存资源,因此在生产环境中应谨慎使用。
> MONITOR
# 结果说明
1619451487.109375 [0 127.0.0.1:52378] "SET" "key" "value"
1619451488.111375 [0 127.0.0.1:52378] "GET" "key"
# 在这个例子中,1619451487.109375是请求的时间戳,0是数据库的编号,127.0.0.1:52378是客户端的地址和端口,"SET" "key" "value"和"GET" "key"是执行的命令和参数。
# 注意:当你运行MONITOR命令后,你的客户端将会进入一个特殊的模式,所有通过Redis服务器的请求都会被打印出来。每条消息都包含了请求的时间戳、客户端的地址和端口、执行的命令和参数,不建议使用。
# 要退出MONITOR模式,你可以使用Ctrl+C或者关闭你的客户端
Redis 禁用指令和开启flushall和flushdb¶
Redis存在一些高风险指令,通常会禁止使用,比如FLUSHALL,FLUSHDB
FLUSHALL和FLUSHDB的区别¶
FLUSHDB 和 FLUSHALL 是 Redis 中用于清空数据库的两个命令,但它们的作用范围不同。 FLUSHDB: 仅清空当前选择的数据库(db) FLUSHALL: 删除 Redis 实例中的所有数据库中的所有键值对;
禁用指令配置¶
# vim redis.conf
# 重命名 FLUSHDB 命令为一个不存在的命令
rename-command FLUSHDB ""
# 重命名 FLUSHALL 命令为一个不存在的命令
rename-command FLUSHALL ""
# 重启redis即可