redis与CPU、内存-阿里云开发者社区

开发者社区> 幸运券发放> 正文

redis与CPU、内存

简介: redis与CPU、内存任何一个后端应用,包括代码都要考虑对于CPU和内存的影响.redis本质上类似于nodejs,单进程、单线程,事件驱动,但不同的是redis是CPU密集型的。这里列出了redis与内存CPU的相关考虑点。
+关注继续查看

redis与CPU、内存任何一个后端应用,包括代码都要考虑对于CPU和内存的影响.redis本质上类似于nodejs,单进程、单线程,事件驱动,但不同的是redis是CPU密集型的。这里列出了redis与内存CPU的相关考虑点。

单进程、单线程的redis如何实现高并发
同nodejs类似

  • 优点:
  1. 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求;
  2. 避免线程切换而消耗CPU
  • 缺点:
  1. 无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善

如果redis内存满了怎么办
增加内存
使用内存淘汰策略
搭建redis集群
如果redis导致CPU过高怎么办
连接数过多,通过redis-cli info | grep connected_clients查看当前连接
解决:
关闭僵尸连接; redis-cli登录后,client list查看所有客户端连接,client kill ${ip}:${port} 关闭连接;
修改最大连接数maxclients: 10000,默认10000;
修改redis timeout参数: 修改配置文件中的timeout 设置redis的keepalive时间。客户端断连的包发出去后,redis server没有接受到,则会出现redis server以为连接正常的情况。因此需要在redis server 启动超时设置,如果在一定的时间内,客户端没有消息过来,则redis server主动断开连接。
修改redis进程的文件数限制: echo -n "Max open files 3000:3000" > /proc/PID/limits
修改系统参数的最大文件数限制: /etc/security/limits.conf; redis服务器默认设置的最大连接数maxclients是10000,但是受服务器最大文件数影响,服务器默认最大文件数是1024,所以redis最大连接也为1024-32=992; 解决办法
慢查询,因为redis是单线程,如果有慢查询的话,会阻塞住之后的操作,通过redis日志查
value值过大:如果是纯文本,可以考虑换种存储方式,如果是对象,可以考虑用hash;
aof重写/rdb fork发生?瞬间会堵一下Redis服务器
redis性能优化
Master最好不要做任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久化。
如果数据比较关键,某个Slave开启AOF备份数据,策略为每秒同步一次。
为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。
尽量避免在压力较大的主库上增加从库。
为了Master的稳定性,主从复制不要用图状结构,用单向链表结构更稳定,即主从关系为:Master<--Slave1<--Slave2<--Slave3.......,这样的结构也方便解决单点故障问题,实现Slave对Master的替换,也即,如果Master挂了,可以立马启用Slave1做Master,其他不变
使用Redis负载监控工具:redis-monitor,它是一个Web可视化的 redis 监控程序
redis分库,这样方便于管理与维护。
redis占用资源监控工具——redis-monitor
部署
OK: init configuration file into /root/.redis-monitor/redis_monitor_config.py.
OK: database is initialed into /root/.redis-monitor/redis_monitor.db.

参考
redis cpu占用过高排查
单进程单线程的Redis如何能够高并发
原文地址https://www.cnblogs.com/zhaowinter/p/10786862.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9060 0
优化Redis内存的9个要点
优化Redis内存的9个要点   1.注意在redis.conf中的小聚合数据类型的特殊编码设置:   hash-max-zipmap-entries 64 (hash-max-ziplist-entries for Redis >= 2.
898 0
《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.1.1 确定参数
本节书摘来华章计算机《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一书中的第1章 ,第1.1节,[美] 克里斯托弗·库塞克(Christopher Kusek) 著 吕南德特·施皮斯(Rynardt Spies)姚海鹏 刘韵洁 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
955 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10721 0
【Redis】线上7000w+ keys && 16G内存100%的排查修复经历
起因 我们使用的一直是阿里云的redis, 我们并非高并发应用, 主要也就是拿来做分布式锁和少量的缓存, 基本不怎么需要维护, 昨天下午突然收到一封告警邮件, 线上redis内存使用100%, 瞬间神经绷紧感觉上控台确认.
3578 0
阿里云服务器怎么选择合适CPU/内存和宽带配比?
如何选择合适的云服务器?各个业务的应用场景不同,选择合适的云服务器很重要,一方面不想造成资源浪费,另一方面又怕紧紧巴巴不够用。那么如何选择合适的云服务器呢?CPU、内存、宽带、地域、磁盘选择多大的,阿里云服务器配置的选择方法CPU/内存/宽带怎么选?,该篇文章中有了介绍,万卷不离其宗,要做到了解自...
3724 0
Redis缓存、MemCached和.Net内部缓存的切换使用
接口文件: //IDataCache.cs using System; using System.Collections.Generic; using System.
611 0
+关注
幸运券发放
阿里云代金码bieryun.com
369
文章
3
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载