• redis的性能管理


    redis的性能管理:

    性能管理命令 info memory
    used_memory:redis中数据占用的内存
    used_memory_rss:redis向操作系统申请的内存
    used_memory_peak :redis使用内存的峰值

    内存碎片率:used_memory_rss/used_memory
    系统分配已经给redis,但redis未能够有效利用内存

    redis-cli info memory | grep ratio

    1、allocator_frag_ratio:1.19
    分配器碎片的比例,redis主进程调度时产生的内存,比例越小越好,值越高,内存的浪费越多

    2、allocator_rss_ratio:7.15
    分配器占用物理内存的比例,告诉你主进程调度执行时占用了多少物理内存

    3、rss_overhead ratio:0.31
    RSS是向系统申请的内存空间,redis占用物理空间额外的开销比例,这个比例越低越好,redis实际占用的物理内存和向系统申请的内存越接近,额外的开销越低

    4、mem_fragmentation ratio:3.33
    内存碎片的的比例,越低越好,表示内存的使用率越高。

    自动清理碎片:

    vim /etc/redis/6379.conf 在最后一行--------activedefrag yes 自动清理
    redis-cli memory purge 手动清理

    设置redis的最大占用内存阈值:

    key回收的策略:

    1、maxmemory-policy volatile-lru 使用redis内置的LRU算法,把已经设置了过期时间的键值对中淘汰数据,移除最近最少使用键值对(针对已经设置了过期时间的键值对)

    2、maxmemory-policy volatile-ttl 已经设置了过期时间的键值对,从当中挑选即将过期的键值对。(有设置过期时间的键值对)

    3、maxmemory-policy volatile-random 从已经设置了过期时间的键值对当中,挑选数据随机淘汰键值对(对设置了过期时间的键值对进行随机移除)

    4、allkeys-lru:LRU算法当中,所有的键值对进行淘汰,移除最少的使用的键值对。(针对所有的键值对)

    5、allkeys-random 从所有的键值对任意选择数据进行淘汰

    6、maxmemory-policy noeviction:禁止键值对回收(不删除任何键值对,知道redis把内存塞满,写不了报错为止)

    在工作中,一定要给redis占用空间内存设置阈值

    redis占用内存的效率问题解决???

    1、日常巡检中,对redis的占用情况左监控
    2、设置redis占用系统内存的调值,避免占用系统全部内存
    3、内存碎片清理,手动 自动
    4、配置合适的key回收机制


    redis雪崩(缓存雪崩)

    现象:大量的redis请求,无法在缓存当中处理,请求会全部发送到后台数据库,数据库本身并发能力就很差,一旦高并发,数据会很快崩溃

    原因:redis集群大面积故障
    redis缓存中,大量的数据同时过期,大量的请求无法得到处理
    redis宕机。

    解决方案:
    事前:高可用框架,防止整个缓存故障,主从复制和哨兵模式 redis集群
    事中:在国内用比较多的方式,HySTRIX熔断,降级,限流三个手段来降低雪崩发生之后的损失。
    数据库不死即可,可慢但是不能没有相应
    事后:redis备份。快速缓存预热。

    redis的缓存击穿

    现象:缓存击穿主要是redis数据缓存过期,或删除,多个请求并发访问redis数据,请求也是转发到数据库了,导致数据库的性能快速下降。经常被请求的缓存数据,最好设置为永不过期
    键值对还在,但值被替换,原有的请求找不到之后,同样也回去请求后台数据库,也是击穿的类型一种

    redis的缓存穿透:

    现象:缓存中没有数据,数据库也没有对应数据,但是有用户一直发起这个都没有的请求,而且请求的数据格式很大。黑客在利用漏洞攻击,压垮应用数据库。

  • 相关阅读:
    HarmonyOS鸿蒙原生应用开发设计- HarmonyOS Sans 字体
    程序员必须掌握的600个英语单词
    docker-compose
    速看,成都市关于促进低效工业用地企业提质增效的信息
    计算机毕业设计springboot+vue基本微信小程序的学习资料共享交流小程序
    RobotFramework入门(一)简要介绍及使用
    Hadoop入门介绍
    this用法总结
    私藏小技巧:让微信朋友圈营销方便化的小窍门!
    android jectpack DataBinding 数据绑定 改变ui的几种方式
  • 原文地址:https://blog.csdn.net/qq_61843057/article/details/134556033