十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
redis性能怎么优化?相信很多新手小白对redis性能优化的了解处于懵懂状态,小编给你几点建议,通过几点建议,希望你能收获更多。如下资料是关于redis性能优化的内容。
为洛川等地区用户提供了全套网页设计制作服务,及洛川网站建设行业解决方案。主营业务为网站设计、成都网站制作、洛川网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
一、 Redis部署结构优化建议
1. Master不做AOF或RDB持久化,Slave做AOF持久化,建议同时做RDB持久化
2. 所有Master全部增加Slave
3. Master挂载Slave不超过2个,采用M-S-S方式挂载。若想保证高可用,即主从切换,可采用Keepalived机制.
备注:以上是基于Redis部署结构不合理提出的建议,同时也参考了新浪微博、淘宝架构中Redis优化方案给出
二、 Redis配置优化建议
1.tcp-keepalive 60
阻止由于某个command执行过长达到timeout超时时间而被断开连接,且可以提高连接错误的检测.
2.stop-writes-on-bgsave-error no
当bgsave快照操作出错时停止写数据到磁盘,这样后面写操作均会失败,为了不影响后续写操作,故需将该项值改为no.
3.rdbchecksum no
检查RDB数据的正确性,会牺牲10%的性能,故建议关闭.
4.auto-aof-rotate-max-size 20gb
auto-aof-rotate-max-total 4 auto-aof-rewrite-percentage 0 (关闭rewrite模式)
将AOF rewrite模式改为rotate模式,即将AOF在线实时Rewrite的功能,切换到线下操作,1份AOF文件切割成多份(类似日志切割),这样提升了redis性能的同时提升内存的利用率.
5.no-appendfsync-on-rewrite yes
避免新修改数据刷磁盘时出现IO阻塞
备注:以上是基于Redis配置不合理提出的优化建议
三、 系统内核配置优化建议
1.开启了AOF模式,为了缓解IO阻塞
编辑/etc/sysctl.conf ,添加如下配置:
vm.dirty_background_ratio = 5 vm.dirty_ratio = 10
然后sysctl -p 使配置文件生效.
2.开启了RDB模式,为了避免Fork失败
编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,
然后sysctl -p 使配置文件生效
备注:以上是基于测试结果给出的系统内核优化建议
后续计划:
以上是从架构角度提出的优化建议,后续会从业务角度,分析内存类型是否合理、冷热数据划分是否合理等
备注:
关于冷热数据划分,可使用如下Redis命令进行统计分析:
OBJECT REFCOUNT 该命令主要用于调试(debugging),它能够返回指定key所对应value被引用的次数.
OBJECT ENCODING 该命令返回指定key对应value所使用的内部表示(representation)(译者注:也可以理解为数据的压缩方式).
OBJECT IDLETIME 该命令返回指定key对应的value自被存储之后空闲的时间,以秒为单位(没有读写操作的请求) ,这个值返回以10秒为单位的秒级别时间,这一点可能在以后的实现中改善。
以上就是redis性能优化的方法介绍,详细使用情况还得要大家自己使用过才能知道具体要领。如果想阅读更多相关内容的文章,欢迎关注创新互联行业资讯频道!