# 启动redis
默认配置启动:
redis-server
指定配置启动
语法: redis-server --configKey1 configValue1 --configKey2 configValue2
范例,使用6380端口号启动:
redis-server --port 6380
配置文件启动
redis-server /opt/redis/redis.conf
# 连接redis客户端
redis-cli -h host_name -p port
直接得到命令的返回结果:
redis-cli -h {host} -p {port} -a {passwd} {command}
redis-cli -h 127.0.0.1 -p 6379 -a "Aa123456.." get hello
# 停止redis
redis-cli shutdown
获取redis备份目录,找到对应的rdb文件
redis> CONFIG GET dir
获取N条Redis慢日志信息
redis> SLOWLOG GET N
获取配置信息
redis> CONFIG GET *
动态修改配置信息
redis> CONFIG SET parameter value
手工触发RDB持久化
redis> BGSAVE
手工触发AOF文件重写
redis> BGREWRITEAOF
查看Redis的详细状态
redis> INFO ALL
实时查看Redis的keys、mem、clients、tps等信息
$ redis-cli -h ip -p port --stat
# 查看所有键
redis> kyes *
# chak 所有键总数
redis> dbsize
# 检查键是否存在
redis> exists key_name
返回键存在则返回1,不存在则返回0
# 修改键的名称
redis> rename old_key_name new_key_name
# 新的键不存在时修改键的名称
redis> renamenx old_key_name new_key_name
范例:
newkey 不存在,改名成功
redis> SET player "MPlyaer"
OK
redis> EXISTS best_player
(integer) 0
redis> RENAMENX player best_player
(integer) 1
newkey存在时,失败
redis> SET animal "bear"
OK
redis> SET favorite_animal "butterfly"
OK
redis> RENAMENX animal favorite_animal
(integer) 0
redis> get animal
"bear"
redis> get favorite_animal
"butterfly"
# 移动当前数据库的 key 到指定的数据库 db
redis> move key_name destination_database
范例:
redis> MOVE song 1
# 删除键
redis> del key [key ...]
del命令可以支持删除多个键。
del 是一个通用命令,无论值是什么数据结构类型都可以删除。
del返回结果为成功删除键的个数,如果删除一个不存在的键就会返回0
# 键过期
设置键过期
redis> expire key seconds
范例,给hello 设置 200 秒过期时间:
redis> expire hello 200
查看键剩余过期时间
redis> ttl key
ttl命令返回值说明:
1.大于等于0的整数 :键剩余的过期时间。
2.-1 :键没设过期时间
3.-2 :键不存在
# 移除键过期时间
redis> persist key
# 查看键的数据结构类型
redis> type key
# 查看Redis的详细状态
redis> INFO ALL
# 实时查看Redis的keys、mem、clients、tps等信息
$ redis-cli -h ip -p port --stat
# 获取N条Redis慢日志信息
redis> SLOWLOG GET N
# 获取配置信息
redis> CONFIG GET *
# 动态修改配置信息
redis> CONFIG SET parameter value
# 手工触发RDB持久化
redis> BGSAVE
# 手工触发AOF文件重写
redis> BGREWRITEAOF
# Redis hotkeys、bigkeys查看
hotkeys参数仅在内存策略 maxmemory-policy 为 volatile-lfu/ allkeys-lfu 时可用。
$ redis-cli -h 10.186.63.166 -p 6001 -a 'AY*s23y7Qt5w+J#rz^FoEBBB*Rc$u^qg' --hotkeys
$ redis-cli -h 10.186.63.166 -p 6001 -a 'AY*s23y7Qt5w+J#rz^FoEBBB*Rc$u^qg' --bigkeys
# Redis Sentinel 管理命令
查看所有被监测的主服务器,以及这些主服务器的当前状态
通过redis-cli登录任意sentinel的端口
$ redis-cli -h 127.0.0.1 -p 26379 -a 'AY*s23y7Qt5w+J#rz^FoEBBB*Rc$u^qg'
redis sentinel> SENTINEL masters
# 根据给定的sentinel集群的组名,返回该组其他Sentinel实例的信息
redis sentinel> SENTINEL slaves <master name>
# 检查当前Sentinel配置是否能够达到故障转移主服务器所需的仲裁
redis sentinel> SENTINEL ckquorum<master name>
# 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移
redis sentinel> SENTINEL failover <master name>
# Redis Cluster 状态信息查看
查看集群当前状态信息
$ /data/redis/base/4.0.14/src/redis-trib.rb check exists_ip:exists_port
# 查看当前集群的槽分配及键值数信息
$ /data/redis/base/4.0.14/src/redis-trib.rb info exists_ip:exists_port
# Redis 监控信息,通过INFO ALL命令输出以下信息:
内存
used_memory Redis
数据占用内存大小
used_memory_rss Redis
实际占用内存大小
used_memory_peak
Redis最大内存占用
mem_fragmentation_ratio
碎片率
RDB持久化
rdb_last_bgsave_status
RDB最近一次持久化是否成功
rdb_last_bgsave_time_sec
RDB最近一次成功持久化耗费的秒数
rdb_changes_since_last_save
RDB最近一次持久化写入命令个数
rdb_last_save_time
离最近一次RDB成功持久化的秒数
AOF持久化
aof_enabled
是否开启aof
aof_current_size
aof文件当前大小
aof_base_size
aof文件上一次重写后的大小
aof_pending_rewrite aof
重写时被阻塞的次数
网络状态
total_net_input_bytes
redis网络入口流量字节数
total_net_output_bytes
redis网络出口流量字节数
instantaneous_input_kbps
redis网络入口kps
instantaneous_output_kbps
redis网络出口kps
rejected_connections
Redis拒绝的连接数
键空间状态
expired_keys
过期淘汰的键的个数
evicted_keys
LRU淘汰的键的个数
keyspace_hits
请求键被命中的次数
keyspace_misses
请求键未被命中的次数
复制状态
role
复制角色
connected_slaves
主库连接的从库的个数
repl_backlog_size
复制积压缓冲区的大小
repl_backlog_active
是否开启复制积压缓冲区
master_repl_offset
主库复制偏移量
slave_repl_offset
从库复制偏移量
各类命令执行状态
cmdstat_lpush
lpush命令执行次数,消耗总时间,平均时间
cmdstat_lpop
lpop命令执行次数,消耗总时间,平均时间
cmdstat_lrange
lrange命令执行次数,消耗总时间,平均时间
cmdstat_sadd
sadd命令执行次数,消耗总时间,平均时间
cmdstat_srem
srem命令执行次数,消耗总时间,平均时间
cmdstat_spop
spop命令执行次数,消耗总时间,平均时间