栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis怎么使用才更能解耦效率?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis怎么使用才更能解耦效率?

redis怎么使用才更能解耦效率?

徒:这个问题是我提的,因为在使用中一方面是用Cacheable写入缓存,另一方面是通过redistemplate写入获取。部分请求,需要跨模块访问API对应的cache部分,确保缓存不失效。模块越多,缓存提高了不少效率,但是链路层太复杂。所以才提及解耦的说法。可以的话,想问问你们项目中是怎么用redis的

旺仔:缓存这块有好几种缓存,比如本地缓存,redis缓存,分布式缓存,但是使用的场景是场景是不一样的。上面这个同学说的跨模块访问,是指的跨模块访问redis?缓存肯定是会有实效时间的,也有相应的策略,要结合业务场景去看。
有一句很经典的话,缓存很好用,但缓存不是不要钱的,高频率的访问,比如循环访问,会带来很大的负载,系统会很卡,也有可能内存溢出,导致节点重启。

Mr:赞同,曾经有树型结构,我放redis,需要递归计算,结果内存。。。

徒:hutools里面有个treeutil类,执行效率很高,递归处理树形结构数据,源码可以参考一下,很简洁。

旺仔:递归,跟循环调用这种都是比较坑的用法

Mr:改成迭代太考验算法基础了,快速开发的时候没想,不过迭代也会出问题,后来换的解决方案

旺仔:都这样,所以需要代码评审和监控,评审是东西出去前,监控是及时发现之前没有发现的问题

徒:你那边有没有相关场景描述一下,分布式缓存这块,少量修改,读取频繁的部分数据。数据量一般不会太大,8到15K左右。一方生成,多方使用

旺仔:怎么说呢,场景有点多,不太好细说,缓存的话,前端有缓存,这部分我不是非常了解,因为前后端分离主要搞后端部分,后端的业务层的话(mvc)层用的比较多是redis,其实redis也是服务器和数据库之前的一个分布式缓存,除了redis还做了分片,让每一个缓存实例都不大,但是实例数目比较多,实现负载均衡,防止单个实例称为瓶颈或者热点,如果一个实例挂了,影响面会小很多,高可用性大大增强。分片的算法是基于一致性哈希写的,这块我也还在学习。部署层面的话,其实redis的集群Cluster也有相应的效果

不过现在给客户部署,reids一般都是按照哨兵模式去做的部署

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/236591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号