![](https://img-blog.csdnimg.cn/20210608113348935.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
文章平均质量分 78
Redis
魔道不误砍柴功
我亦无它,唯手熟尔!
展开
-
Spring 之 @Cacheable 缓存使用教程
该抽象类提供 loadCaches() 方法,可以获取到所有 Cache 接口实现类。所以这里能够获取到所有缓存。那么肯定是可以使用双缓存。/*** 直接实现 AbstractCacheManager 抽象类的钩子方法,该类已经写好模版方法* 当执行的时候,如果 MyGuavaCacheManager 管理类 @Bean 的话,就会勾到这个方法逻辑* @return} }} }最终通过注入一个缓存管理类 MySimpleCacheManager 就可以使用到三个缓存。原创 2023-01-18 13:20:22 · 4225 阅读 · 0 评论 -
Spring 整合 Redis 的三个简单步骤
导入 jar 包是需要注意,Redis 是属于 CS 架构模式,服务端需先启动,然后客户端主动去连它。但是客户端怎么去连接服务端呢?这里有两种方式:一种是Jedis客户端、另一种是Lettuce客户端可以 和 Redis 服务器通信。所以这里就需要导入客户端的 jar 包依赖。提示:Jedis、Lettuce 都是 Redis 的 Java 客户端,通过它可以对 Redis 服务端进行操作。这个就是 Redis、和 Jedis 之间的亲密关系。Redis 目前不能离开这两个客户端。原创 2023-01-13 16:21:48 · 2344 阅读 · 0 评论 -
缓存雪崩解决方案—同步代码块
上面 DoubleCacheServiceImpl 类中逻辑,由于 50 个线程同时执行,查询 Redis 中没有缓存,所以所有线程都去查询数据库,数据库压力就扛不住了,现在假设让一个线程去查询数据库,其他线程别去,这样数据库压力就下来了。一般情况下,为了防止并发请求打爆数据库,都会加上一层缓存拦截请求,降低数据库压力,但是有时候由于缓存命中率不稳定,导致还有大批量并发请求访问到数据库,造成数据库压力过大从而崩溃。在同步锁里面再去查询一次缓存,有点类似 DCL 的意思,如果缓存中有走缓存。原创 2023-01-12 19:05:05 · 230 阅读 · 0 评论 -
Redisson 实现分布式锁源码浅析
第二段自然就是表示锁没有人使用了呗,那么肯定就不用去做续命了,原创 2022-09-15 12:13:58 · 312 阅读 · 0 评论 -
Redis 分布式锁一步步优化过程
点击查看 Redis 中文官方文档列表模式 http://redis.cn/topics/高并发秒杀场景中,看一下一段代码,会发生哪些问题?肯定会发生超卖(重复卖同一件商品)问题,所以这里可以加锁保证数据安全性,可以使用 Synchornized、ReentantLock 锁,但是推荐使用 ReentantLock 锁,它有一个 tryLock() 方法可以尝试加锁,不会死等。从而可以做一些自己的业务操作,改进之后如下:测试效果如下:以上虽然能够解决单机在 Redis 上的安全行,但是如果是 Redi原创 2022-09-14 23:15:48 · 452 阅读 · 0 评论 -
Redis 缓存击穿简单版解决方案——双缓存/差异性失效时间
可以在添加一个缓存,继续拦截一层,并且这两个换成的失效时间是不一样的(错开),查询和更新的缓存顺序相反,如果先查询 A 缓存,后查询 B 缓存,那么更新就是先更新 B 缓存,后更新 A 缓存。这两行代码不是原子性的,如果先删除,但是还没来得及在将数据存入到缓存中,导致缓存失效,那么就会导致大批量请求直接到 MySQL 数据上去,发生缓存击穿,如何优化呢?实现某宝聚划算功能(热点访问功能),其实就是模仿一个页面的分页展示(每次只展示前5条),并且分页展示内容是在实时变化的一个功能。原创 2022-09-14 10:29:42 · 510 阅读 · 2 评论 -
为什么 Redis 集群中只使用 16384个slot 而不是 65535 个槽位?
1)如果槽位是 65536,发送心跳信息的消息头达到 8k,发送心跳包过于庞大,在消息中需要占据 【CLUSTER_SLOTOS/8】的大小,当槽位为 65538 时,这块消息大小为:65536/8/1024=8kb;3) 槽位越小,节点少的情况下,压缩比高,容易传输。Redis 主节点的配置信息中它负责的哈希槽是通过一张 BitMap 形式保存,在传输过程中会对 bitmap 进行压缩,但是如果 bitmap 的填重率 slots/N 很高的话,bitmap 压缩率就很低。原创 2022-09-13 19:47:04 · 556 阅读 · 0 评论 -
SkipList 跳表基本介绍
为什么选择跳表?目前经常使用的平衡数据结构有:B树,红黑树,AVL树, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用跳表吧,跳表是一种随机化的数据结构,目前开源软件 Redis 、LevelDB 都有用到它,效率和红黑树以及 AVL 树不相上下,但跳表的原理相当简单,只要你能熟练操作链表,就能轻松实现一个 SkipList。转载 2021-07-12 15:41:36 · 96 阅读 · 0 评论 -
2020-08-29
### Redis哨兵和集群的区别视频讲解https://edu.csdn.net/course/play/20596/262978https://edu.csdn.net/course/play/20596/262978原创 2020-08-29 18:23:34 · 109 阅读 · 0 评论 -
Redis分布式锁的实现原理(Redission框架实现)
Redis分布式锁的实现原理开发了这么多年了,时候该了解清楚Redis底层是怎么实现分布式锁的机制了,在这样浑浑噩噩的下去估计快要被淘汰了Redis前奏其实Redis的锁机制完全依赖于它的开源框架Redission,这个框架提供了很好的方法支持Redis锁的实现RLock lock = redission.getLoock("myLock");lock.lock();lock.unlock();Redisson实现Redis分布式锁的底层原理好的,接下来就通过一张手绘图,给大家说说Re原创 2020-08-28 00:36:55 · 2372 阅读 · 1 评论 -
springboot使用shiro-整合redis作为缓存(十)
原文地址,转载请注明出处: https://blog.csdn.net/qq_34021712/article/details/80774649 ©王赛超 说在前面本来的整合过程是顺着博客的顺序来的,越往下,集成的越多,由于之前是使用ehcache缓存,现在改为redis,限制登录人数 以及 限制登录次数等 都需要改动,本篇为了简单,目前先将这两个功能下线,配置暂时是注销的,原类保存...转载 2018-12-27 14:21:05 · 1095 阅读 · 0 评论 -
redis总是报出could not get resource from the pool
问题:有个接缓存的数据比较大,使用用户也比较大,总是报出could not get resource from the pool,下面找到了一个比价好的解决办法,分享一下这个URLhttps://blog.csdn.net/qh_java/article/details/54669973...转载 2018-08-09 17:42:00 · 544 阅读 · 0 评论 -
安装redis
windows下载地址:https://github.com/MicrosoftArchive/redis/releaseswindows安装地址:http://www.cnblogs.com/M-LittleBird/p/5902850.htmlRedis命令文档:http://doc.redisfans.com/一、key操作:1、KEYS pattern查找所有符合给定模式 pattern ...原创 2018-03-12 21:46:33 · 224 阅读 · 0 评论