首页 / 缓存 / Redis系列之-缓存的使用和优化
Redis系列之-缓存的使用和优化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis系列之-缓存的使用和优化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3447字,纯文字阅读大概需要5分钟。
内容图文
![Redis系列之-缓存的使用和优化](/upload/InfoBanner/zyjiaocheng/864/74af2ef673bc41049f2be5336738c59e.jpg)
一 缓存的收益与成本
1.1 受益
1 加速读写
2 降低后端负载:后端服务器通过前端缓存降低负载,业务端使用redis降低后端mysql负载
1.2 成本
1 数据不一致:缓存层和数据层有时间窗口不一致,和更新策略有关
2 代码维护成本:多了一层缓存逻辑
3 运维成本:比如使用了Redis Cluster
1.3 使用场景
1 降低后端负载:对高消耗的sql,join结果集/分组统计的结果做缓存
2 加速请求响应:利用redis优化io响应时间
3 大量写合并为批量写:如计数器先redis累加再批量写入db
二 缓存更新策略
1 LRU/LFU/FIFO算法剔除:例如maxmemory-policy(到了最大内存,对应的应对策略)
? LRU -Least Recently Used,没有被使用时间最长的
? LFU -Least Frequenty User,一定时间段内使用次数最少的
? FIFO -First In First Out
? LIRS (Low Inter-reference Recency Set)是一个页替换算法,相比于LRU(Least Recently Used)和很多其他的替换算法,LIRS具有较高的性能。这是通过使用两次访问同一页之间的距离(本距离指中间被访问了多少非重复块)作为一种尺度去动态地将访问页排序,从而去做一个替换的选择
配置文件中设置:
1
2
3
4
5
6
7
8># LRU配置
>maxmemory-policy:volatile-lru
>(1)noeviction: 如果内存使用达到了maxmemory,client还要继续写入数据,那么就直接报错给客户端
>(2)allkeys-lru: 就是我们常说的LRU算法,移除掉最近最少使用的那些keys对应的数据,ps最长用的策略
>(3)volatile-lru: 也是采取LRU算法,但是仅仅针对那些设置了指定存活时间(TTL)的key才会清理掉
>(4)allkeys-random: 随机选择一些key来删除掉
>(5)volatile-random: 随机选择一些设置了TTL的key来删除掉
>(6)volatile-ttl: 移除掉部分keys,选择那些TTL时间比较短的keys
1
2
3
4
5
6
7
8># LFU配置 Redis4.0之后为maxmemory_policy淘汰策略添加了两个LFU模式:
>volatile-lfu:对有过期时间的key采用LFU淘汰算法
>allkeys-lfu:对全部key采用LFU淘汰算法
># 还有2个配置可以调整LFU算法:
>lfu-log-factor 10
>lfu-decay-time 1
># lfu-log-factor可以调整计数器counter的增长速度,lfu-log-factor越大,counter增长的越慢。
># lfu-decay-time是一个以分钟为单位的数值,可以调整counter的减少速度
2 超时剔除:例如expire,设置过期时间
3 主动更新:开发控制生命周期
策略 | 一致性 | 维护成本 |
---|---|---|
LRU/LIRS算法剔除 | 最差 | 低 |
超时剔除 | 较差 | 低 |
主动更新 | 强 | 高 |
1 低一致性:最大内存和淘汰策略
2 高一致性:超时剔除和主动更新结合,最大内存和淘汰策略兜底
三 缓存粒度控制
1 从mysql获取用户信息:select * from user where id=100
2 设置用户信息缓存:set user:100
select * from user where id=100
3 缓存粒度:
? 缓存全部属性
? 缓存部分重要属性
1 通用性:全量属性更好
2 占用空间:部分属性更好
3 代码维护:表面上全量属性更好
四 缓存穿透,缓存击穿,缓存雪崩
|
|
内容总结
以上是互联网集市为您收集整理的Redis系列之-缓存的使用和优化全部内容,希望文章能够帮你解决Redis系列之-缓存的使用和优化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。