您当前的位置:网站首页>Redis>redis性能优化方法 找Redis教程就上ki4.cc (>^ω^<),redis

redis性能优化方法 找Redis教程就上ki4.cc (>^ω^<),redis

2020年05月16日 投稿作者: 围观人数:33

Redis运维之shell的使用——统计内存、定期备份、基准测试 找Redis教程就上ki4.cc (>^ω^<)

使用Redis shell可以完成许多有意思的操作,使用也非常的简单,下面开始介绍。Redis-cliredis-cli的选项非常多,除了常用的-h、-p、-a外,下面在介绍几个很常用的选项。

一、 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的事务及乐观锁的应用 找Redis教程就上ki4.cc (>^ω^<)

相信phper都或多或少知道事务,在一些场景中也会经常用到事务。比如购买了一个产品,需要向订单表插入一条数据,还要修改用户表的余额字段等等。这两个操作必须是要么一起成功,要么都失败,否则就会产生数据不一致的情况。Redis中也支持事务的特性。虽然没有传统关系型数据库的事务功能那样强大,但它的使用非常简单。

备注:以上是基于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知识请关注redis入门教程栏目。

以上就是redis性能优化方法的详细内容,更多请关注ki4导航其它相关文章!

Redis运维之慢查询日志 找Redis教程就上ki4.cc (>^ω^<)

使用好Redis,不仅仅要知道Api的使用,还要知道如何防止Redis阻塞及阻塞的查看和分析。今天,和大家聊聊如何发现Redis的阻塞——通过慢查询找到阻塞的命令。

标签

版权说明
免责声明:本文文章内容由ki4导航网发布,但不代表本站的观点和立场,具体内容可自行甄别.