Redis
文章平均质量分 86
XiaoMing_Coder
太原理工大学,云顶书院Java方向
展开
-
Redis中的BigKey
大 key 并不是指 key 的值很大,而是 key 对应的 value 很大。String 类型的值大于 10 KB;Hash、List、Set、ZSet 类型的元素的个数超过 5000个;原创 2024-04-15 21:01:55 · 1333 阅读 · 0 评论 -
缓存雪崩、缓存击穿、缓存穿透
缓存空对象思路分析:当我们客户端访问不存在的数据时,先请求redis,但是此时redis中没有数据,此时会访问到数据库,但是数据库中也没有数据,这个数据穿透了缓存,直击数据库,我们都知道数据库能够承载的并发不如redis这么高,如果大量的请求同时过来访问这种不存在的数据,这些请求就都会访问到数据库,简单的解决方案就是哪怕这个数据在数据库中也不存在,我们也把这个数据存入到redis中去,这样,下次用户过来访问这个不存在的数据,那么在redis中也能找到这个数据就不会进入到缓存了。原创 2024-04-15 20:07:49 · 803 阅读 · 0 评论 -
布隆过滤器
布隆过滤器(Bloom Filter,BF)是 Bloom 于 1970 年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的 List、Map、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是其返回的结果是概率性的,而不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且,存放在布隆过滤器的数据不容易删除。原创 2024-04-15 20:00:19 · 711 阅读 · 0 评论 -
多级缓存实现方案
在默认情况下,当一个缓存元素过期的时候,Caffeine不会自动立即将其清理和驱逐。而是在一次读或写操作后,或者在空闲时间完成对失效数据的驱逐。Caffeine 是一个超强大的高性能本地缓存框架,除了基本的缓存功能之外,Caffeine 还提供了过期、异步加载、事件通知等功能。Caffeine既然是缓存的一种,肯定需要有缓存的清除策略,不然的话内存总会有耗尽的时候。:设置缓存为软引用或弱引用,利用GC来回收缓存数据。性能较差,不建议使用。:设置缓存的数量上限。:设置缓存的有效时间。原创 2024-04-15 19:46:45 · 710 阅读 · 0 评论 -
Redis哨兵
Sentinel(哨兵) 只是 Redis 的一种运行模式 ,不提供读写服务,默认运行在 26379 端口上,依赖于 Redis 工作。Redis Sentinel 的稳定版本是在 Redis 2.8 之后发布的。Redis 在 Sentinel 这种特殊的运行模式下,使用专门的命令表,也就是说普通模式运行下的 Redis 命令将无法使用。或者// 指定要监视的 master// 127.0.0.1 6379 为 master 地址。原创 2024-04-14 17:13:13 · 868 阅读 · 0 评论 -
Redis持久化
使用缓存的时候,我们经常需要对内存中的数据进行持久化也就是将内存中的数据写入到硬盘中。大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或者是为了做数据同步(比如 Redis 集群的主从节点通过 RDB 文件同步数据)。原创 2024-04-14 17:12:25 · 650 阅读 · 0 评论 -
Redis主从复制
单机 Redis 存在单点风险问题,也就是说,如果唯一的一个 Redis 节点宕机的话,就会导致大量的请求直接被打到数据库,严重的情况下,数据库很可能会直接宕机。这个时候,保障 Redis 服务的高可用就成为了我们不得不面对的问题。单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。如何保证 Redis 服务高可用?最简单的一种办法就是基于 主从复制 搭建一个 Redis 集群,原创 2024-04-14 17:09:28 · 546 阅读 · 0 评论 -
Redis实现消息队列
消息队列(Message Queue)是一种通信方式,用于在不同应用程序或不同组件之间传递消息。它允许发送者(生产者)将消息发送到队列中,然后接收者(消费者)可以从队列中获取消息进行处理。消息队列通常用于解耦系统的不同部分,提高系统的可扩展性、可靠性和性能。消息队列的基本原理是,消息发送者将消息发送到队列中,而消息接收者则从队列中获取消息。发送者和接收者之间不直接通信,而是通过队列来传递消息。原创 2024-04-06 15:35:55 · 1129 阅读 · 0 评论 -
Redis实现分布式锁
可重入锁是一种特殊类型的锁,允许同一个线程在持有锁的情况下多次获取同一个锁而不会发生死锁。这种锁的实现会跟踪当前持有锁的线程,并为每个线程记录获取锁的次数。当同一个线程再次尝试获取锁时,它会增加自己的锁计数。只有当锁计数为零时,锁才会真正释放。原创 2024-04-01 23:15:11 · 775 阅读 · 0 评论 -
Redission快速入门
在 VoucherOrderServiceImpl。如何使用Redission的分布式锁。注入RedissonClient。原创 2024-03-29 23:56:31 · 341 阅读 · 0 评论