文章目录
- 1. Redis-cli
- 1.1 命令行模式
- 1.1.1 直接使用命令行执行redis命令
- 1.1.2 指定主机、端口、密码、数据库
- 1.1.3 SSL/TLS支持
- 1.1.4 从其他程序获取输入
- 1.1.5 连续运行相同的命令
- 1.1.6 CSV输出
- 1.2 交互模式
- 1.2.1 登录后连接其他实例
- 1.2.2 断开重连
- 1.3 特殊的操作模式
- 1.3.1 监控状态
- 1.3.2 扫描大键
- 1.3.3 监控命令
- 1.3.4 监控延迟
- 1.3.5 RDB远程备份
- 1.3.6 LRU模拟测试
- 2. 配置
- 3. 主从复制
- 4. 持久化
- 4.1 两种持久化方案
- 4.2 RDB快照
- 4.3 AOF文件
- 4.4 使用
- 5. 管理
- 6. 安全性
- 7. 访问控制
- 8.
1. Redis-cli
- 两种使用模式:命令行模式、交互模式
1.1 命令行模式
1.1.1 直接使用命令行执行redis命令
redis-cli incr mycounter
- 结果输出到文件
redis-cli incr mycounter > /tmp/output.txt
- 输出原始结果
$ redis-cli `--raw` incr mycounter
9
- 输出可读性结果
$ redis-cli `--no-raw` incr mycounter
(integer) 7
1.1.2 指定主机、端口、密码、数据库
- 参数指定
redis-cli -h 主机 -p 端口 -a 密码 -n 数据库编号 命令
如redis-cli -h localhost -p 6379 -a admin -n 0 PING
- 也可以使用
-u
一次性指定URLredis-cli -u redis://密码@主机:端口/0 命令
如redis-cli -u redis://admin@localhost:6379/0 PING
1.1.3 SSL/TLS支持
- 可以使用
--cacert
或--cacertdir
配置受信任的根证书捆绑包或目录 - 如果目标服务器要求使用客户端证书进行身份验证,则可以使用
--cert
指定证书--key
指定私钥。
1.1.4 从其他程序获取输入
- 从文件获取值
redis-cli -x set foo < /etc/services
- 从文件中读取命令执行
cat /tmp/commands.txt | redis-cli
1.1.5 连续运行相同的命令
- 运行命令5次
redis-cli-r
5 incr foo - 运行命令5次,每次间隔1秒
redis-cli -r 5-i
1 incr foo - 运行命令无限次,每次间隔1秒
redis-cli -r-1
-i 1 incr foo
1.1.6 CSV输出
- 输出的值进行CSV格式化
redis-cli `--csv` lrange mylist 0 -1
- 输出逗号分隔的形式
"d","c","b","a"
1.2 交互模式
1.2.1 登录后连接其他实例
-
connect
host port
1.2.2 断开重连
debug restart
1.3 特殊的操作模式
1.3.1 监控状态
redis-cli --stat -i 5
间隔5秒刷新一下状态- 解释
- keys : 键的总数
- mem:占用内存
- clients:客户端
- blocked:阻塞的客户端
- request:请求数
- connections:连接数
1.3.2 扫描大键
redis-cli --bigkeys
- 扫描出每个类型最大的键,分析不同类型占用空间
1.3.3 监控命令
redis-cli monitor
- 输出每个客户端的命令
1593508841.246123 [0 127.0.0.1:54652] "set" "c" "3"
1.3.4 监控延迟
- 总体延迟
redis-cli --latency,redis-cli --latency-history - 机器内部延迟
redis-cli --latency-dist
1.3.5 RDB远程备份
1.3.6 LRU模拟测试
2. 配置
3. 主从复制
4. 持久化
4.1 两种持久化方案
- RDB快照:每隔一段时间执行一次快照
- AOF文件:记录每个写入操作到AOF文件,server启动时,根据AOF文件重建数据库
4.2 RDB快照
- 优点:
- RDB快照是一个紧凑的文件,通常比AOF
文件更小
- 重启时,使用RDB
启动更快
-
性能更好
,父进程只需要fork一个子进程,磁盘IO交给子进程去做
- 缺点
- 在灾难发生时(断电、kill -9等),会
丢失最新的没有进行快照的数据
- RDB需要经常使用
fork
,如果数据集较大或CPU性能不佳,那么fork操作会比较耗时
4.3 AOF文件
- 优点:
- AOF提供更加
细粒度的持久方式
:everysec每秒同步一次,always每个写命令同步一次,no让操作系统决定 - AOF是仅追加文件,如果断电不会损坏,如果出现以半写命令结束文件(如磁盘满等情况),也
可以使用redis-check-aof工具修复
- Redis太大时,Redis可以在
后台自动重写AOF
,将文件中的命令缩减为创建数据库所需的最小命令集合,减小文件大小
,重写完后,就使用新的AOF文件 - AOF易于理解,
可编辑
,可导出,例如如果使用FLUSHALL命令删除了所有key,此时如果没有重写AOF,那么可以编辑AOF文件,删除最后的FLUASHALL命令,然后重启,即可恢复数据。
- 缺点:
- 同一数据集,AOF
文件更大
- 根据具体的同步策略,如always每个写命令同步一次,则
性能可能会降低
4.4 使用
- 使用SAVE/
BGSAVE
,同步/异步保存快照,一般用BGSAVE,这样不用阻塞主进程 - 在配置文件中打开
appendonly yes
启用AOF,同步方式appendfsync
有3种,always,everysec,no,一般使用everysec - AOF重写是由Redis自动触发的,使用
BGREWRITEAOF
可随时用于触发重写。
5. 管理
6. 安全性
7. 访问控制
8.