暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于如何提高缓存命中率(redis)

原创 huayumicheng 2023-05-23
1203

转载:https://www.cnblogs.com/chenhaoyu/p/11308753.html 

一、缓存命中率的介绍

复制代码
命中:可以直接通过缓存获取到需要的数据。

不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作。原因可能是由于缓存中根本不存在,或者缓存已经过期。

通常来讲,缓存的命中率越高则表示使用缓存的收益越高,应用的性能越好(响应时间越短、吞吐量越高),抗并发的能力越强。

由此可见,在高并发的互联网系统中,缓存的命中率是至关重要的指标。
复制代码


二、如何监控缓存命中率

  redis提供了INFO这个命令,能够随时监控服务器的状态,只用telnet到对应服务器的端口,执行命令即可

127.0.0.1> info
  在输出的信息里面有这几项和缓存的状态比较有关系:

keyspace_hits:14414110
keyspace_misses:3228654
used_memory:433264648
expired_keys:1333536
evicted_keys:1547380
  通过计算hits和miss,我们可以得到缓存的命中率:14414110 / (14414110 + 3228654) = 81% ,一个缓存失效机制,和过期时间设计良好的系统,命中率可以做到95%以上



三、提高缓存命中率的方法

  从架构师的角度,需要应用尽可能的通过缓存直接获取数据,并避免缓存失效。这也是比较考验架构师能力的,需要在业务需求,缓存粒度,缓存策略,技术选型等各个方面去通盘考虑并做权衡。

  1 、尽可能的聚焦在高频访问且时效性要求不高的热点业务上(如字典数据、session、token)

    时效性:时效性越低意味着缓存时间越长,缓存时间越长,命中率越高

  2、通过缓存预加载(预热):提前将数据加载到缓存中

  3、合理调整缓存有效期的时间 :避免同时失效

  4、增加存储容量:容量不足时会触发Redis内存淘汰机制

  5、调整缓存粒度:通常情况下,缓存粒度越小,命中率越高,如单个用户和所有用户比较

  6、更新缓存:当数据发生变化时,直接更新缓存比移除或者让缓存过期的命中率更高



  注意:对于时效性很高(或缓存空间有限),内容跨度很大(或访问很随机),并且访问量不高的应用来说缓存命中率可能长期很低,可能预热后的缓存还没来得被访问就已经过期了。

标签: redis相关文章
好文要顶 关注我 收藏该文
陈浩宇人呢
粉丝 - 35 关注 - 2
+加关注
00
« 上一篇: redis 发布与订阅原理分析
» 下一篇: 一致性hash算法详解
posted @ 2019-08-06 14:37 陈浩宇人呢 阅读(4944) 评论(0) 编辑 收藏 举报
刷新评论刷新页面返回顶部
登录后才能查看或发表评论,立即 登录 或者 逛逛 博客园首页
【推荐】园子的商业化努力-AI人才服务:招募AI导师,一起探索AI领域的机会
【推荐】中国电信天翼云:算力普惠,释放红利,核心产品让利90%低至1折
【推荐】中国云计算领导者:阿里云轻量应用服务器2核2G低至108元/年
【推荐】第五届金蝶云苍穹低代码开发大赛正式启动,百万奖金等你拿!

编辑推荐:
· 一次 redis 主从切换导致的数据丢失与陷入只读状态故障
· [MAUI] 在 .NET MAUI 中复刻苹果 Cover Flow
· 记一次 Visual Studio 2022 卡死分析
· 异常体系与项目实践
· .NET 通过源码深究依赖注入原理
即构专区:
· 快速实现 CDN 直播
· ZEGO自研RTC+直播系统架构,如何支撑一场高质量直播
· Flutter 屏幕采集如何实现(提供示例demo)
· 音视频开发进阶|第六讲:色彩和色彩空间·下篇
· 元宇宙场景技术实践|实现“虚拟人”自由
公告
昵称: 陈浩宇人呢
园龄: 6年9个月
粉丝: 35
关注: 2
+加关注
< 2023年5月 >
日 一 二 三 四 五 六
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10
搜索


常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
我的标签
PHP相关文章(39)
MySQL 相关文章(36)
redis相关文章(20)
docker相关文章(14)
Linux相关文章(13)
前端相关文章(9)
Nginx相关文章(8)
laravel 相关文章(6)
php 设计模式大全(6)
PHP算法相关文章(5)
更多
随笔档案
2023年3月(2)
2022年11月(1)
2022年9月(1)
2022年8月(4)
2022年6月(6)
2022年5月(5)
2022年4月(6)
2022年3月(4)
2021年11月(1)
2021年8月(3)
2021年5月(2)
2021年4月(3)
2021年3月(2)
2020年11月(1)
2020年2月(1)
更多
阅读排行榜
1. 解决Navicat远程连接MySQL出现 10060 unknow error(69475)
2. 引用js或css后加?v= 版本号的用法(33053)
3. PHP快速排序算法(22053)
4. yii2 session的使用方法(21761)
5. PHP冒泡排序算法(21501)
评论排行榜
1. PHP快速排序算法(7)
2. MySQL 水平拆分与垂直拆分详解(4)
3. php 下载图片并打包成Zip格式压缩包(2)
4. MySQL5.6升级到5.7详细教程(2)
5. redis 发布与订阅原理分析(2)
推荐排行榜
1. nginx 配置反向代理,负载均衡实战解析(8)
2. Redis与数据库同步问题(3)
3. php 下载图片并打包成Zip格式压缩包(2)
4. PHP 消息队列 详解(2)
5. 解决Navicat远程连接MySQL出现 10060 unknow error(2)
最新评论
1. Re:PHP快速排序算法
@php小小菜鸟...
--陈浩宇人呢
2. Re:PHP快速排序算法
这不是快排啊。。。。。

--php小小菜鸟
3. Re:MySQL排序函数field()详解
很详细了

--Fuching
4. Re:phpstorm配置git并解决Terminal 中文乱码(Unicode 编码)的方法
感谢,解决了我的问题

--无脸男小姐
5. Re:PHP快速排序算法
3楼说得对,快排之所以比归并应用得多,就是因为快排空间复杂度可以是O(1),是一种原地排序算法,你这需要开辟新内存空间,很明显就不是了。

--snail_lmz
Copyright © 2023 陈浩宇人呢
Powered by .NET 7.0 on Kubernetes

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论