码迷,mamicode.com
首页 > 其他好文 > 详细

Redis拾遗(五)

时间:2018-10-01 14:10:59      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:数据结构   分析   高并发   sort   内存   key   查询   单线程   线程   

阻塞:

Redis是典型的单线程架构,如果出现阻塞对我们的应用来说都是噩梦。导致阻塞的场景大致分为内在原因和外在原因。

内在原因:不合理的使用API或数据结构、CPU饱和、持久化阻塞等;

外在原因:CPU竞争、内存交换、网络问题等;

下边就以上两种原因分别分析:

  • 内在原因
  1. API或数据结构使用不合理:
    1. 对数据量比较大而且命令算法复杂度是O(n)的例如hgetall等执行速度势必很慢,在高并发场景赢避免使用算法复杂度超过O(n)的命令;
    2. Redis原生提供慢查询统计功能,执行slowlog get {n}可以获取最近n条慢查询命令,默认超过10ms会记录到定长队列中,线上建议设置为1ms。
    3. 修改低算法度命令,禁用keys、sort等命令;调整大对象:防止一次命令操作过多的数据。(执行redis-cli-h{ip}-p{port} bigkeys 可以扫描出大对象);
  2. CPU饱和:
  • 外在原因

Redis拾遗(五)

标签:数据结构   分析   高并发   sort   内存   key   查询   单线程   线程   

原文地址:https://www.cnblogs.com/fly-to-the-sky/p/9734554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!