redis性能问题和解决方案

redis性能问题和解决方案:       

       1.Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。

  2.Master AOF持久化,如果不重写AOF文件,这个持久化方式对性能的影响是最小的,但是AOF文件会不断增大,AOF文件过大会影响Master重启的恢复速度。

  3.Master调用BGREWRITEAOF重写AOF文件,AOF在重写的时候会占大量的CPU和内存资源,导致服务load过高,出现短暂服务暂停现象。

  4.Redis主从复制的性能问题,第一次Slave向Master同步的实现是:Slave向Master发出同步请求,Master先dump出rdb文件,然后将rdb文件全量传输给slave,然后Master把缓存的命令转发给Slave,初次同步完成。第二次以及以后的同步实现是:Master将变量的快照直接实时依次发送给各个Slave。不管什么原因导致Slave和Master断开重连都会重复以上过程。Redis的主从复制是建立在内存快照的持久化基础上,只要有Slave就一定会有内存快照发生。虽然Redis宣称主从复制无阻塞,但由于Redis使用单线程服务,如果Master快照文件比较大,那么第一次全量传输会耗费比较长时间,且文件传输过程中Master可能无法提供服务,也就是说服务会中断,对于关键服务,这个后果也是很可怕的。

  以上1.2.3.4根本问题的原因都离不开系统io瓶颈问题,也就是硬盘读写速度不够快,主进程 fsync()/write() 操作被阻塞。

  5.单点故障问题,由于目前Redis的主从复制还不够成熟,所以存在明显的单点故障问题,这个目前只能自己做方案解决,如:主动复制,Proxy实现Slave对Master的替换等,这个也是Redis作者目前比较优先的任务之一,作者的解决方案思路简单优雅,详情可见 Redis Sentinel design draft
http://redis.io/topics/sentinel-spec。

  总结:

  1.Master最好不要做任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久化。

  2.如果数据比较关键,某个Slave开启AOF备份数据,策略为每秒同步一次。

  3.为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。

  4.尽量避免在压力较大的主库上增加从库

  5.为了Master的稳定性,主从复制不要用图状结构,用单向链表结构更稳定,即主从关系为:Master<--Slave1<--Slave2<--Slave3.......,这样的结构也方便解决单点故障问题,实现Slave对Master的替换,也即,如果Master挂了,可以立马启用Slave1做Master,其他不变。

时间: 2024-11-03 04:57:51

redis性能问题和解决方案的相关文章

redis性能问题

问题描述 redis官方set 110000次/s get 81000次/s,怎么得来的,我测得差距好大,一半都不到 解决方案 测试redis性能不要使用jedis客户端,去做连接测试,因为java jedis client里面,缺陷:1:使用了Apache Common-Pools,有一定的性能损耗.2:要是设置了auth,性能更加低,因为jedis里面每一次操作都会调用一下auth解决方案二:请使用redis自带的benchmark来测试.解决方案三:perf的环境.配置一样不,人家肯定是调

Redis性能问题排查解决手册(七)

阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息.通过这些信息来分析文章后面提到的一些性能指标. info命令输出的数据可分为10个类别,分别是: server clients memory persistence stats replication

云数据库Redis版备份恢复解决方案上线,数据可靠性全面升级!

阿里云云数据库Redis版致力于为用户提供稳定可靠.性能卓越.可弹性伸缩的数据库服务,并提供全套的容灾切换.故障迁移.在线扩容.性能优化的数据库解决方案. 云数据库Redis版采用双击热备的架构保证服务高可用,并且提供了持久化机制来保证数据可靠性.但是随着越来越多的业务开始使用Redis作为最终的持久化存储引擎,用户对于数据可靠性就提出了更高的需求.经过一段时间的打磨,我们正式推出了Redis备份恢复解决方案,全面的升级云数据库Redis的数据可靠性.   1.     数据备份一键式操作 由于

【求助】redis性能怎么比文本还慢呢?

问题描述 刚学习redis,使用jedis做了个小程序,用循环写入70w条数据.发现性能很差啊,需要90多秒.而直接用循环将这些数据写入文本文件,才花了3秒多.不明白是不是什么地方还需要设置,用的是redis默认的配置,分配最大3G内存,redis就在本机上猜测是不是每次写入都要重连接?如何正确测试性能?求指导!谢谢!代码如下:@BeforepublicvoidsetUp(){this.pool=newJedisPool(newJedisPoolConfig(),"127.0.0.1"

Eclipse RCP性能问题与解决方案

2004年开始,我开始让研发团队基于Eclipse插件技术开发通用管理软件(最近的一个产品是一体化企业管理软件CRM+OA+DSS+进销存的E-System) 选取RCP方式开发管理软件,我们的初衷是期望使得用户界面的丰富性和易操作,能够充分利用Eclipse本身丰富的SWT/JFACE/GEF/EMF等技术来完美我们的界面表现,应该说这方面Eclipse RCP确实不辜负我们的期望. 在四年的Eclipse RCP开发经历中,经历了很多坎坷和难以逾越的障碍,其中有一个至今仍在困扰着我们的问题就

Redis广电直播行业解决方案,轻松应对业务高峰

       为了应对企业业务访问高峰,快速相应用户访问需求,越来越多的企业选择Redis作为企业的核心业务数据库,尤其在广播电视行业和视频直播行业大量的音视频应用广泛的应用了Redis服务.阿里云基于多年Redis应用和服务经验,为广电和直播行业的客户推出了专属解决方案,希望能够帮助有效的支撑企业业务的发展,快速适应业务变化,为企业发展保驾护航.        目前,众多行业客户已经选择阿里云Redis云数据库承载核心应用.央视CCTV利用Redis承载款跨年晚会的用户互动评论及红包分发的业务

前端性能优化以及解决方案

最近工作中一个项目在运行时有一些性能问题,为此我看了很多与性能优化相关的内容,下面做个简单的分享. 前端性能优化,这包括 CSS/JS 性能优化.网络性能优化等等内容,这方面的内容 <高性能网站建设指南>.<高性能网站建设进阶指南>.<高性能JavaScript> 等等书都做了很多讲解,强烈推荐阅读.(这些书单参见本文结尾) 下面的内容,上面提到的书中大都包含了,因此可以考虑转而去读这些书,做一个完完全全的了解,对于本文,也就不要再读下去了. 如果你坚持看到了这里,那就

css中空路径对页面性能影响的解决方案

在写 CSS 的时候,用 background:url(#) 还是会对页面进行多一次请求的. 不过,因为写多 CSS,一般需要用空背景来解决 bug 的时候,测试结果用 background:url(about:blank) 才是我们想要的:解 bug,不影响性能.那很简单,解决方案不就不出来?等等,让我们来做个测试吧. 解决方案是: 大胆使用 about:blank 来代替空,或者'#',特别是在 background-image 中使用 在 img / script / iframe 这些推

Redis-benchmark测试Redis性能

Redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能. 使用说明如下: Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>] -h <hostname> Server hostname (default 127.0.0.1) -p <port>