最后,还有几个待解决的问题记录下:
1、主库的used_memory_peak_human达到60.97G,实际上主库的maxmemory只配置了32G
127.0.0.1:6379> info memory
# Memory
used_memory:3531621728
used_memory_human:3.29G
used_memory_rss:70885924864
used_memory_peak:65461144384
used_memory_peak_human:60.97G
used_memory_lua:36864
mem_fragmentation_ratio:20.07
mem_allocator:libc
解决方式:内存碎片造成,查看资料说是大量写入造成,目前没有太好的解决方法,只能通过重启进程释放
2、redis过期的key会不会自动删除?策略如何配置
redis过期的key当内存使用maxmemory才会进行删除
maxmemory-policy 六种方式: volatile-lru:(默认值)从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰 volatile-ttl : 从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰 allkeys-lru : 从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰 allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰 noeviction : 禁止驱逐数据,永不过期,返回错误
3、redis主从同步原理(全量/增量) 一张图一目了然: 复制积压缓冲区=repl-backlog
redis2.8之前不支持增量备份
增量备份的两个条件
slave带来的runid是否当前master的runid
slave带来的复制offset在master的backlog(复制积压缓冲区)中还能否找到
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。