Redis性能调优:保存SNAPSHOT对性能的影响

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

前一段时间。开发环境反馈,Redisserver訪问很慢,每一个请求要数秒时间,重新启动之后2~3天又会这样。

我查看了一下Linux的性能,没有什么问题。

通过

# redis-cli --latency

发现訪问Redis确实非常慢,运行info要几秒时间。里面有个參数已连接的client几万个,通过

Redis>client list

查看到非常多client的age都非常大,一直没有释放。于是怀疑是不是和这个有关。由于版本号是2.8.6,无法通过client一次性kill掉全部的连接,仅仅能写一个程序,一个一个地kill掉(

CLIENT KILL addr:port)。但问题依旧存在。

于是进一步查看配置文件,发现SHNAPSHOT是默认打开状态。

 save 900 1

 save 300 10

 save 60 10000

由于我们缓存是用于Session保存,不推荐快照保存。特别是在Redis是VM机器上,对总体的性能影响会非常大。 于是參考我们的手冊凝视:

################################ 快照 #################################

保存数据到磁盘,格式例如以下:

#  save <seconds> <changes>

#   指出在多长时间内,有多少次更新操作。就将数据同步到数据文件rdb

#   相当于条件触发抓取快照,这个能够多个条件配合

#   比方默认配置文件里的设置,就设置了三个条件

#  save 900 1  900秒内至少有1key被改变

#  save 300 10  300秒内至少有300key被改变

#  save 60 10000  60秒内至少有10000key被改变

# Session缓存server不使用快照,都凝视

# save 900 1

# save 300 10

# save 60 10000

重新启动Redis之后。观察了一个月时间。再没有反馈到性能问题了。

另外在没有使用client的PUB/SUB的情况下,建议參考以下的參数。设置client的连接超时,在300毫秒后,假设不用,服务端会自己主动关闭连接,释放资源。默认是关闭的。


设置client连接时的超时时间,单位为秒。

当client在这段时间内没有发出不论什么指令。那么关闭该连接

# 0是关闭此设置

推荐5分钟。

timeout 300

# TCP keepalive

Linux上,指定值(秒)用于发送ACKs的时间。注意关闭连接须要双倍的时间。

默觉得0

推荐60

tcp-keepalive 60

注:

Redis 2.8.12已经能够通过client类型,一次性kill到全部相关的连接。






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5173677.html,如需转载请自行联系原作者
相关文章
|
7天前
|
存储 缓存 NoSQL
Redis持久化深度解析:数据安全与性能的平衡艺术
Redis持久化解决内存数据易失问题,提供RDB快照与AOF日志两种机制。RDB恢复快、性能高,但可能丢数据;AOF安全性高,最多丢1秒数据,支持多种写回策略,适合不同场景。Redis 4.0+支持混合持久化,兼顾速度与安全。根据业务需求选择合适方案,实现数据可靠与性能平衡。(238字)
|
5月前
|
NoSQL 算法 安全
redis分布式锁在高并发场景下的方案设计与性能提升
本文探讨了Redis分布式锁在主从架构下失效的问题及其解决方案。首先通过CAP理论分析,Redis遵循AP原则,导致锁可能失效。针对此问题,提出两种解决方案:Zookeeper分布式锁(追求CP一致性)和Redlock算法(基于多个Redis实例提升可靠性)。文章还讨论了可能遇到的“坑”,如加从节点引发超卖问题、建议Redis节点数为奇数以及持久化策略对锁的影响。最后,从性能优化角度出发,介绍了减少锁粒度和分段锁的策略,并结合实际场景(如下单重复提交、支付与取消订单冲突)展示了分布式锁的应用方法。
364 3
|
8月前
|
消息中间件 缓存 NoSQL
Redis原理—5.性能和使用总结
本文详细探讨了Redis的阻塞原因、性能优化、缓存相关问题及数据库与缓存的一致性问题。同时还列举了不同缓存操作方案下的并发情况,帮助读者理解并选择合适的缓存管理策略。最终得出结论,在实际应用中应尽量采用“先更新数据库再删除缓存”的方案,并结合异步重试机制来保证数据的一致性和系统的高性能。
Redis原理—5.性能和使用总结
|
8月前
|
NoSQL API Redis
Redis Plus 来了,性能炸裂!
Redis Plus 来了,性能炸裂!
139 21
|
10月前
|
存储 NoSQL 网络协议
Redis性能攻略:Redis-benchmark工具与实用性能优化技巧
Redis 是一种高性能的内存数据库,广泛应用于各种业务场景。随着业务规模扩大和数据量增长,性能问题逐渐凸显。本文深入探讨 Redis 性能优化方案,包括硬件配置(网络、内存优化)、参数配置(maxmemory、timeout 等)、数据结构选择、过期策略、持久化机制(RDB、AOF)及集群方案(主从复制、哨兵模式、集群模式),帮助提升 Redis 的整体性能表现。
427 0
|
11月前
|
存储 NoSQL PHP
PHP与Redis结合使用,提升数据存储性能
随着互联网应用的发展,PHP与Redis的结合成为提升数据存储性能的重要手段。PHP作为流行的服务器端语言,常用于网站开发;Redis作为高性能内存数据库,以其快速读写能力,有效优化数据访问速度,减轻数据库压力。两者结合通过缓存机制显著提升应用响应速度,支持高并发场景下的稳定性和可扩展性。
|
缓存 NoSQL 测试技术
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
103 1
|
存储 缓存 NoSQL
深入探究Redis的AOF持久化:保障数据安全与恢复性能的关键机制
深入探究Redis的AOF持久化:保障数据安全与恢复性能的关键机制
240 0
|
缓存 NoSQL 网络安全
【Azure Redis 缓存 Azure Cache For Redis】Redis性能问题,发现Server Load非常的高,导致正常连接/操作不成功
【Azure Redis 缓存 Azure Cache For Redis】Redis性能问题,发现Server Load非常的高,导致正常连接/操作不成功
107 0
|
缓存 NoSQL 测试技术
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能
121 0

热门文章

最新文章