Redis哨兵模式内存缩容
Redis哨兵模式内存缩容检查节点信息从节点内存缩容最大内存配置修改停机缩容缩容后检查主节点内存缩容回退操作检查节点信息通过哨兵获取集群名和主节点地址# docker exec -it pod_sentinel_1 redis-cli -p 26379 info sentinel# Sentinelsentinel_masters:1 sentinel_tilt:0 sentinel_tilt_since_seconds:-1 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:namemymaster,statusok,addressmymaster_0.redis.prod.com:6379,slaves2,sentinels3#集群名称mymaster#主节点: mymaster_0.redis.prod.com通过哨兵获取从节点地址# docker exec -it pod_sentinel_1 redis-cli -p 26379 sentinel slaves mymaster | grep -A3 name1)1)name2)mymaster_1.redis.prod.com:63793)ip4)mymaster_1.redis.prod.com--2)1)name2)mymaster_2.redis.prod.com:63793)ip4)mymaster_2.redis.prod.com查看Redis内存配置和使用量# cat /opt/compose/redis/config/redis.conf | grep memorymaxmemory 18gb maxmemory-policy noeviction# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx info memory | grep human | egrep used_memory|maxmemoryused_memory_human:41.46M#已分配的总内存以人类可读格式显示used_memory_rss_human:48.99M#Redis常驻内存以人类可读格式显示used_memory_peak_human:81.47M#最大内存使用量以人类可读格式显示used_memory_lua_human:31.00K#Lua引擎使用的内存以人类可读格式显示used_memory_vm_total_human:63.00K#VM引擎的Eval框架和函数框架使用的内存以人类可读格式显示used_memory_scripts_human:184B#Eval脚本和函数脚本使用的内存以人类可读格式显示maxmemory_human:18.00G#最大可用内存配置⚠️maxmemory不能小于used_memory_peak和used_memory_rss。检查数据目录# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx config get dirWarning: Using a password with-aor-uoption on thecommandline interface may not be safe.1)dir2)/data# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx config get dbfilenameWarning: Using a password with-aor-uoption on thecommandline interface may not be safe.1)dbfilename2)dump.rdb#获取容器内目录在宿主机的挂载路径# docker inspect pod_redis_1 -f {{.Mounts}}[{bind /opt/compose/redis/data /data rwtruerprivate}{bind /opt/compose/redis/config /config rwtruerprivate}]检查Redis数据量# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx dbsize(integer)19322检查服务器物理内存和磁盘空间# free -htotal usedfreeshared buff/cache available Mem: 31G1.4G 24G1.6G4.8G 27G Swap: 15G 0B 15G# df -Th# du -sh /opt/compose/redis/data364M /opt/compose/redis/data确保剩余磁盘空间足够Redis将所有内存数据落盘。从节点内存缩容⚠️注意事项节点缩容建议挨个轮流修改重启先缩容两个从节点最后缩容主节点。maxmemory不能小于used_memory_peak和used_memory_rss。最大内存配置修改确认最大内存配置# 检查maxmemroy配置# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx config get maxmemoryWarning: Using a password with-aor-uoption on thecommandline interface may not be safe.1)maxmemory2)19327352832# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx info memory | grep maxmemory_humanmaxmemory_human:18.00G# 检查最大内存使用值# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx info memory | grep used_memory_peak_humanused_memory_peak_human:69.28M修改maxmemory配置并持久化到配置文件# 修改maxmemroy配置为8gbdockerexec-itpod_redis_1 redis-cli-p6379--userxxx-axxxxxx configsetmaxmemory 8gb# 持久化到配置文件dockerexec-itpod_redis_1 redis-cli-p6379--userxxx-axxxxxx config rewrite检查配置文件Rewrite成功# cat /opt/compose/redis/config/redis.conf | grep maxmemorymaxmemory 8gb停机缩容依次停止Redis和Sentinel进程dockerstop pod_redis_1dockerstop pod_sentinel_1#检查是否已停止dockerpsps-ef|grepredis备份落盘后的Redis数据cp-p/opt/compose/redis/data/dump.rdb /opt/compose/redis/data/dump.rdb.bak20260328最后当前节点的服务器可以进行关机内存缩容。缩容后检查检查服务器物理内存free-h依次启动Redis和Sentinel进程dockerstart pod_redis_1dockerstart pod_sentinel_1#检查是否已启动dockerpsps-ef|grepredis确认当前节点已经加入集群dockerexec-itpod_sentinel_1 redis-cli-p26379sentinel slaves mymaster|grep-A3name确认主从同步正常# docker exec -it pod_redis_1 redis-cli -p 6379 --user xxx -a xxxxxx info replication | grep mastermaster_host:mymaster_0.redis.sre.zclocal master_port:6379 master_link_status:up检查最大内存配置可选dockerexec-itpod_redis_1 redis-cli-p6379--userxxx-axxxxxx info memory|grepmaxmemory_human另外一个节点也按照上面的流程进行缩容即可。主节点内存缩容确认主节点地址和集群名dockerexec-itpod_sentinel_1 redis-cli-p26379info sentinel通过哨兵发起手动故障转移dockerexec-itpod_sentinel_1 redis-cli-p26379sentinel failover mymaster确认新的主节点地址dockerexec-itpod_sentinel_1 redis-cli-p26379info sentinel后面参考前文从节点的缩容步骤即可。回退操作回退服务器物理内存修改操作。如果有数据丢失利用备份恢复数据文件。cp-p/opt/compose/redis/data/dump.rdb.bak20260328 /opt/compose/redis/data/dump.rdb依次启动Redis和Sentinel进程dockerstart pod_redis_1dockerstart pod_sentinel_1#检查是否已启动dockerpsps-ef|grepredis检查Redis数据量dockerexec-itpod_redis_1 redis-cli-p6379--userxxx-axxxxxx dbsizeReferences【1】https://redis.io/docs/latest/commands/info/【2】https://redis.io/docs/latest/operate/oss_and_stack/management/sentinel/#sentinel-commands
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2493092.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!