前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis运维总结

Redis运维总结

原创
作者头像
sherlock99
发布2018-07-25 15:46:06
1.1K0
发布2018-07-25 15:46:06
举报
文章被收录于专栏:日常工作总结日常工作总结

【持久化设置】 对于redis,有两种持久化方式:rdb和aof rdb:后台定期生成一个dump文件,保存当前redis内存中所有的数据 aof:类似日志,记录所有的操作命令

save 900 1 save参数是设置rdb的生成频率,900表示每900秒,1表示变更的key大于1,即触发rdb生成。 关闭方式:删除所有save行

appendonly yes appendonly参数设置为yes,即开启aof 关闭方式:appendonly yes -> appendonly no

当rdb和aof同时开启时,redis恢复数据仅采用aof,不会读取rdb的数据。

aof的弊端:aof中会有大量的无效数据,可以通过后台定时任务的方式在业务不繁忙时期定时重建aof文件,以提升redis重新加载数据的效率。

【主从设置】 master不需要做任何设置 slaver需要在配置文件中设置 slaveof <masterip> <masterport>

如果master设置了访问密码requirepass参数 slaver需要配置 masterauth <master-password> 参数 同时slaver也需要设置访问密码requirepass参数

注:requirepass需要设置为一个很长的字符串,建议64位以上

建议主从设置为同样的端口号,以便故障时快速切换

【开机自启动策略】 只有一种情况【不能】设置开机自启动: 角色为master 且 未开启持久化

其他情况均【应该】设置开机自启动 vim /etc/rc.d/rc.local 添加一行 /redis绝对路径/start.sh

【常用运维命令】 查看redis运行日志 cat ./logs/redis.log 查看redis当前pid cat ./pidfile/redis.pid 关闭redis kill -9 redis的pid 启动redis ./start.sh 连接redis ./redis-cli -h IP地址 -p 端口号 连接密码 auth 密码字符串 查看redis基础信息 info 提升slaver为master 【谨慎操作】连接slaver并执行 slaveof no one

【环境问题】 WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128,在某些应用下可能会限制接收新TCP连接侦听队列的大小。

设置方式:

添加 'net.core.somaxconn = 511' 到 /etc/sysctl.conf 执行 sysctl net.core.somaxconn=511

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 设置内存分配策略 /proc/sys/vm/overcommit_memory 可选值:0、1、2。 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 注意:redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)。 设置方法 添加 'vm.overcommit_memory = 1' 到 /etc/sysctl.conf 执行 sysctl vm.overcommit_memory=1

WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 注意 此项需要检查服务器上是否有这项设置 ***部分服务器不需要设置此项目*** 执行 cat /sys/kernel/mm/transparent_hugepage/enabled 设置方式:将以下两行命令加入启动项 vim /etc/rc.d/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档