1. BGREWRITE: 在后台(子进程)重写 AOF, 不会阻塞工作线程,能正常服务,此方法最常用。
2. 那么使用AOF会不会出现一些其他问题?
重写 AOF Buffer 是个不限大小的 buffer,但用户写入的数据量较多时会出现以下两个问题:
占用过多内存,浪费资源;
主进程将 AOF buffer 数据写入到新 AOF 文件中时会阻塞工作线程,用户正常请求的延时会变高,严重情况下会超时,主备同步也会出问题,断开重连,重新同步等。
3. redis 超时问题
单个耗时过大命令,导致阻塞其他命令
比如删除大量set键,使用scan命令,每次扫描集合中500个元素,再用srem命令每次删除一个键
slowlog 查询引发延迟的慢命令
客户端连接数量,默认为10000 ,超过5000就会影响性能
4. redis 内存不足会引起OOM
优化 | Redis AOF重写导致的内存问题 - 墨天轮
首先收到告警短信,redis出现了OOM
kernel: [25918282.632003] Out of memory: Kill process 18665 (redis-server) score 919 or sacrifice child kernel: [25918282.637201] Killed process 18665 (redis-server) total-vm:17749556kB, anon-rss:14373204kB, file-rss:1236kB kernel: [25918791.441427] redis-server invoked oom-killer: gfp_mask=0x24280ca, order=0, oom_score_adj=0
发现redis-server被oom kill了,但是登录查看发现redis-server并没有down掉。



