网站升级建设方案,工业云网站建设,公司企业邮箱怎么注册,天津武清做网站查看内存使用指标
查看内存使用指标
info memory used_memory:1800800 redis中主句占用的内存
used_memory_rss:5783552 redis向操作系统申请的内存
used_memory_peak:1800800使用内存的峰值
系统巡检#xff1a;硬件巡检#xff0c;数据库#xff0c;nginx redis docke…查看内存使用指标
查看内存使用指标
info memory used_memory:1800800 redis中主句占用的内存
used_memory_rss:5783552 redis向操作系统申请的内存
used_memory_peak:1800800使用内存的峰值
系统巡检硬件巡检数据库nginx redis docker k8s
内存碎片率
used_memory_rss/used_memory系统已经分配给了redis但是redis未能够有效利用的内存查看内存碎片率 redis-cli info memory | grep ratioallocator_frag_ratio:1.19
分配器碎片的比例redis住金层调度时产生的内存比例越小越好值越高内存的浪费越多allocator_rss_ratio:7.15
分配器占用物理内存的比例告诉你主进程调度执行时占用了多少物理内存rss_overhead_ratio:0.31
rss是向系统申请的内存空间redis占用物理空间额外的开销比例比例越低越好redis实际占用物理内存和向系统申请的内存越接近额外的开销越低mem_fragmentation_ratio:3.33
内存碎片的比例越低越好内存的使用率越高
清理内存碎片率
自动清理内存碎片
vim /etc/redis/6379.conf
最后一行添加
activedefrag yes
重启服务手动清理内存碎片
redis-cli memory purge
自动触发清理内存碎片
设置redis的最大内存阀值
vim /etc/redis/6379.conf
567行
maxmemory lgb
一旦到达阀值自动清理碎片开启key的回收机制回收键值对
key回收的策略
vim /etc/redis/6379.conf
598行
maxmemory-policy volatile-lru
使用redis内置的LRU算法把已经设置了过期时间的键值对中淘汰数据移除最近最少使用键值对针对已经设置了过期时间的键值对maxmemory-policy volatile-ttl
已经设置了过期时间的键值对从当中挑选一个即将过期的键值对针对有设置过期时间的键值对maxmemory-policy volatile-random
从已经设置了过期时间的键值对当中挑选数据随机淘汰键值对对设置了过期时间的键值对进行随机移除allkeys-lru
LRU算法当中对所有的键值对进行淘汰移除最少使用的键值对针对所有的键值对allkeys-random
从所有键值对当中任意选择数据进行淘汰maxmemory-policy noeviction
禁止键值对回收不删除任何键值对直到redis把内存塞满写不了报错
在工作中一定要给redis占用内存设置阀值
redis的雪崩
缓存雪崩大量的应用请求无法在redis缓存当中处理请求会全部发送到后台数据库数据库并发能力就很差一旦高并发数据库很快崩溃 什么情况导致雪崩
1、redis集群大面积故障
2、redis缓存中大量数据同时过期大量的请求无法得到处理
3、redis实例宕机 解决方案
事前高可用架构防止整个缓存故障主从复制和哨兵模式 redis集群
事中在国内用的比较多的方式HySTRIX熔断降级限流 用这个三个手段来降低雪崩发生之后的损失数据库不死即可慢可以但是不能没有响应
事后redis备份快速缓存预热 redis的缓存击穿
缓存击穿什么导致的呢
缓存击穿主要是热点数据缓存过期或者被删除多个请求并发热点数据请求也是转发到数据库了导致数据库的性能快速下降
解决方法
经常被请求的缓存数据最好设置为永不过期 键值对还在但是值被替换了原有的请求找不到之后同样也回去请求后台数据库也是击穿的一种
redis的缓存穿透
缓存中没有数据数据库也没有对应数据但是有用户一直发起这个都没有的请求而且请求的数据格式很大黑客在利用漏洞攻击压垮应用数据库