zoukankan      html  css  js  c++  java
  • redis 常见问题

    Redis V5.0程序超时频率高是什么原因?

    • CDB新集群默认部署V5.0版本Redis,建议JAVA使用Jedis V3.3及以上版本,PHP使用phpredis V5.1及以上版本
    • Redission连接V5.0会频繁与Server端断开连接,请使用V4.0低版本Redis集群

    Redis响应时间突然变慢是怎么回事?

    • 查看是否有慢操作,只要有一个慢操作即会拖累整个集群的响应时间
    • 碎片率过大,适当进行碎片回收会提升访问效率
    • 查看内存使用情况,是否达到内存上限,达到上限后会触发内存清理策略
    • 查看是否有大量Key批量过期,同时过得多Key过期会阻塞正常请求的处理
    • 查看操作系统网络连接数,如果太多的网络连接会导致新连接创建变慢
    • 查看操作系统网卡带宽情况,如果达到上限会出现网络阻塞甚至丢包现象
    • 查看CPU消耗情况,Redis单线程单核处理,CPU负载过高会影响正常请求处理时间
    • 查看持久化模式是否开启,是否出现因为写入过大导致磁盘刷新变慢 

    Redis内存突然暴涨原因是什么?

    • 查看Key数量变化,如果伴随有大量Key写入可能是数据突然增多
    • 查看所有连接情况,连接传输数据过大过快
    • 是否有AOF重写触发,重写阶段如果写请求比较多会占用大量的额外内存
    • 是否有RDB持久化触发,这个阶段如果有大量写入也会占用较多内存
    • Redis不支持数据结构(set、list、hash、zset等)内部成员的过期

    Redis碎片率较大怎么办?

    • 自带碎片整理回收机制,但回收的效率较低时间长
    • 手动回收,重做节点完成
    • 优化数据存储逻辑,碎片率过大是由于频繁写入长度不一的Value值,尽量采用定长值

    如何准确的评估业务场景中需要申请的内存大小?为什么实际写入比预估大几倍?

    • 将文件N等分切割,按比例写入到Redis中,再根据实际内存×N,得到预估总内存
    • 写一个hash、set,执行memory usage key(V4.0+)查看内存大小 × key预估总量
    • Redis内存本身要存储key-v数据之外,还要存储结构本身的元信息等

    连接数是怎么计算的?实际连接数为什么大于Jedis设置的最大连接数?

    • 开发人员设置的最大连接数是APP应用端连接池,Redis自身有TCP会话保持和空闲连接回收时间,当连接idle在Redis达到timeout(标配 3600秒)后被动回收
    • 程序配置主动回收:连接释放,调用jedis.close()
  • 相关阅读:
    2020牛客暑期多校训练营(第二场)Interval 网络流平面图转化成最短路
    [P4001 [ICPC-Beijing 2006]狼抓兔子]
    [2020牛客暑期多校训练营(第二场)Greater and Greater]
    [2020牛客暑期多校训练营(第二场)All with Pairs]
    2020牛客暑期多校训练营(第二场)[ Boundary]
    数据结构的特性
    centos7 pgsql启动异常问题
    go实现服务授权
    go 使用线程池做请求限流
    go实现爬虫
  • 原文地址:https://www.cnblogs.com/dongtime/p/13215254.html
Copyright © 2011-2022 走看看