测试过程产生大量没用的key
批量删除以”laravel:*”开头的所有key
1 | redis-cli keys "laravel:*" | xargs redis-cli del |
删除大量key后,aof文件会变更大,是因为aof机制就跟记录日志一样,无论是set还是del 都会同步到aof文件中。
aof 文件依旧过大解决
1 | redis-cli bgrewriteaof |
1 | root@web41:/data_ext/redis# ls -l |
RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中。
AOF 则以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的。
AOF重写:
- (1) 随着AOF文件越来越大,里面会有大部分是重复命令或者可以合并的命令(100次incr = set key 100)
- (2) 重写的好处:减少AOF日志尺寸,减少内存占用,加快数据库恢复时间。
即使 BGREWRITEAOF 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 BGREWRITEAOF 成功之前不会被修改。
在线RDB切换为AOF
注:切勿修改配置文件重启,这样会丢失所有数据的。1
2
3
4
5
6
7
8
9
10config set appendonly yes # 开启AOF
config set save "" # 关闭RDB 建议关闭,同时开启会增加io压力
#通过注释掉所有"save",或者在最后一条"save"配置后添加save ""
vim /etc/redis/6379.conf
#save 900 1
#save 300 10
#save 60 10000
appendonly yes # 开启AOF
查看关闭RDB和开启AOF效果1
2
3
4
5
6
7192.168.1.41:6379> config get save
1) "save"
2) ""
192.168.1.41:6379> config get appendfsync
1) "appendfsync"
2) "everysec"