文档章节

redis并发处理慢

爱coding
 爱coding
发布于 2014/10/28 14:37
字数 451
阅读 15718
收藏 19
点赞 1
评论 7

最近项目一上线,就问题颇多,本地测试,ok,上线后,大用户量的时候,顶不住。用了一个礼拜的时间发现的问题,总结下来。

项目是netty4.0,reids2.8,nginx等框架。目前是4台proxy服务器,一台核心服务器,reids只部署在核心服务器上,各代理服务器共享redis数据。

当大量用户访问自己距离较近的proxy服务器时,proxy同时请求核心服务器,并发量到1w时,经常请求卡死,网页请求不回来,开始从netty的http处理并发下手,各种netty的官网,netty的优化,和配置,都修改了,还是没有起作用,后来屏蔽redis后,发现netty处理20w并发一点问题没有,问题确定在redis上。

然后,着手redis的优化,redis的池的优化,配置,没有作用,后台发现,本地访问redis并发1w,很快,但是,访问其他服务器的redis特别卡,发现原因,就在于,跨服务器访问redis,可能由于网络,跨服务器,导致的并发请求redis,回不来的问题,那么,最后,舍弃了proxy服务器远程调用核心服务器reids的方案,nginx改为所有心跳请求,跨过proxy服务器,直接走核心服务器,这样相当于本地访问redis,最后担心核心服务器并发能力,暂时,开启了2个服务,处理所有并发,reids问题得到解决。

总结:就是reids本身性能没有问题,处理并发能力ok,就是跨服务器远程访问其他服务器reids时,并发大了,网络延迟等,会出现取reids卡死。




© 著作权归作者所有

共有 人打赏支持
爱coding
粉丝 24
博文 52
码字总数 29892
作品 0
昌平
程序员
加载中

评论(7)

爱coding
爱coding

引用来自“xdzzzzzzzz”的评论

你的意思是 nginx web 服务器,redis 都安装在同一台机器上?
nginx web服务器可以做负载均衡,没有问题,但是redis不要做跨服务器读取,尽量读本地的,解决方式最好是,redis最主从处理,保证redis主从服务器存储一致,然后各自读各自的reids即可。
x
xdzzzzzzzz
你的意思是 nginx web 服务器,redis 都安装在同一台机器上?
爱coding
爱coding

引用来自“排骨瘦肉丁”的评论

没有明白有什么区别?走不走代理redis连接不都是跨服务器请求么?并且服务器都在一个网段内
程序部署在同一台服务器上,连接本地服务器是ok的,但是程序部署在另一台服务器,连接其他服务器,请求redis速度过于慢,需要指出的是,服务器没有在同一网段内的,全国各地都会部署服务器。
排骨瘦肉丁
排骨瘦肉丁
没有明白有什么区别?走不走代理redis连接不都是跨服务器请求么?并且服务器都在一个网段内
爱coding
爱coding

引用来自“璨er”的评论

谢谢
客气!朋友!
璨er
璨er
谢谢
clouddyy
clouddyy
学习了!
redis超时原因排查

1.低效操作产生的延迟。单命令操作一半很快不会造成这样,SORT,LREM, SUNION,keys ,* 等操作都会影响响应时间。 使用进程监控程序(top, htop, prstat, 等...)来快速查看Redis进程的CPU...

Andy-xu
2016/04/02
3.1K
0
关于Redis的一些思考和总结

日常的业务系统中经常使用到redis,平时也会研究下redis的设计文档和源码,对redis的使用场景、实现方案、运维要点这些常规知识点都有所了解,但是零零碎碎总感觉不够系统,这里结合源码对自...

zqrferrari
2017/11/21
0
0
SegmentFault 技术周刊 Vol.37 - 分布式缓存利器:Redis

Redis 是由意大利程序员 Salvatore Sanfilippo(昵称:antirez)开发的一款内存高速缓存数据库。Redis 全称为 Remote Dictionary Server(远程数据服务),使用 C 语言编写,是一个 key-valu...

keke
2017/11/16
0
0
RabbitMQ与Redis做队列比较

本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比 具体采用什么方式实现,还需要取决于系统的实际需求 简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,...

Edwyn王
2015/05/20
0
0
Redis客户端常见异常分析

一.无法从连接池获取到连接 JedisPool中的Jedis对象个数是有限的,默认是8个。这里假设使用的默认配置,如果有8个Jedis对象被占用,并且没有归还,如果调用者还要从JedisPool中借用Jedis,就...

xpttxsok
2016/11/30
60
0
防重复请求处理的实践与总结

##背景 在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统...

十二缸帕萨特
2015/10/12
80
0
防重复请求处理的实践与总结

##背景 在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统...

十二缸帕萨特
2015/09/24
157
0
java面试常用问题

MYSQL一个语句很慢,怎么调优法? 因为问题是调优,也就是基本不能改变整体的现有实现。下面分析慢的原因并给出对应可能正确的解决方案 1、SQL语句本身的优化,比如去掉不必要的排序等。 2、...

ovirtKg
2016/12/02
24
0
Redis 响应延迟问题排查

参考原文:http://redis.io/topics/latency 最近数据量越来越多,并发写操作很多的情况下,Redis出现响应慢的情况; 可以使用 Redis命令来测试一下redis的响应速度: redis-cli --latency -h...

ifeixiang
2015/01/09
0
0
Redis-慢查询分析

一.慢查询日志 慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(慢查询ID,发生时间...

布拉君君
2017/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
14分钟前
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
25分钟前
0
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
35分钟前
0
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
44分钟前
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
53分钟前
0
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
53分钟前
0
0
TensorFlow,从一个 Android Demo 开始

TensorFlow Android Demo 项目地址 Machine Learning 既然提到了 TensorFlow,那是不是得神经网络、机器学习了解下? 如果你能坚持把 机器学习速成课程 给啃完了,觉得还挺有兴趣的,那可以考...

孟飞阳
55分钟前
0
0
JVM学习笔记二:内存结构规范

1、JVM基本结构图 2、java堆(Heap) 3、方法区(Method Area) 4、程序计数器 5、JAVA栈图解 局部变量表:八大基本类型,还可以存储引用类型 上一篇:JVM学习笔记一:类加载机制介绍...

刘祖鹏
今天
0
0
mui集成微信H5支付(返回白屏问题已经解决)

一.项目需求 因为公司人员缺少,没有专门开发安卓和ios的人员,为了项目尽早上线采用了混合APP开发的方式,我选择了MUI混合开发框架,项目中需要在用户购买VIP会员的时候进行支付,所以需要在项目...

银装素裹
今天
1
0
SpringBoot集成Redis--配置自定义的RedisCacheManager

配置自定义的RedisCacheManager--1自定义键生成规则 默认的键生成器 当不指定缓存的key时,SpringBoot会使用SimpleKeyGenerator生成key。 SimpleKeyGenerator SimpleKey 查看源码可以发现,它...

karma123
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部