![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 94
me_1984
路漫漫其修远兮
展开
-
Redis分片集群搭建及其原理
例如:key是num,那么就根据num计算,如果是{itcast}num,则根据itcast计算。利用cluster failover命令可以手动让集群中的某个master宕机,切换到执行cluster failover命令的这个slave节点,实现无感知的数据迁移。如图,在7001这个节点执行set a 1时,对a做hash运算,对16384取余,得到的结果是15495,因此要存储到103节点。时,对num做hash运算,对16384取余,得到的结果是2765,因此需要切换到7001节点。原创 2023-05-22 16:31:23 · 1675 阅读 · 1 评论 -
Redis哨兵集群搭建及其原理
在Sentinel集群监管下的Redis主从集群,其节点会因为自动故障转移而发生变化,Redis的客户端必须感知这种变化,及时更新连接信息。要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。•客观下线:若超过指定数量(quorum)的sentinel都认为该实例主观下线,则该实例。这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。•主观下线:如果某sentinel节点发现某实例未在规定时间响应,则认为该实例。原创 2023-05-22 14:39:43 · 1060 阅读 · 0 评论 -
Redis主从集群搭建及其原理
因为slave原本也是一个master,有自己的replid和offset,当第一次变成slave,与master建立连接时,发送的replid和offset是自己的replid和offset。不过,旧的数据只要是绿色的,说明是已经被同步到slave的数据,即便被覆盖了也没什么影响。master判断发现slave发送来的replid与自己的不一致,说明这是一个全新的slave,就知道要做全量同步了。单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。原创 2023-05-22 08:45:00 · 808 阅读 · 0 评论 -
Redis持久化
快照文件称为RDB文件,默认是保存在当前运行目录。因为是记录命令,AOF文件会比RDB文件大的多。通过执行bgrewriteaof命令,可以让AOF文件执行重写功能,用最少的命令达到相同效果。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。save命令会导致主进程执行RDB,这个过程中其它所有命令都会被阻塞。这个命令执行后会开启独立进程完成RDB,主进程可以持续处理用户请求,不受影响。都是对num的操作,第二次会覆盖第一次的值,因此第一个命令记录下来没有意义。原创 2023-05-12 16:32:58 · 813 阅读 · 0 评论 -
Redission实现分布式锁之源码解析
接上篇Redis分布式锁原理之实现秒杀抢优惠卷业务重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内,调用另一个方法,那么此时如果是不可重入的,不就死锁了吗?所以可重入锁他的主要意义是防止死锁,我们的synchronized和Lock锁都是可重入的。不可重试:是指目前的分布式只能尝试一次,我们认为合理的情况是:当线程在获得锁失败后,他应该能再次尝试获得锁。原创 2023-05-11 08:00:00 · 748 阅读 · 0 评论 -
Redis分布式锁原理之实现秒杀抢优惠卷业务
背景优惠券秒杀有两个业务涉及线程并发问题,第一个是库存超卖,第二个是一人一单,这就必须采取锁的方案了。下面根据优惠券秒杀功能一步一步进行展开,利用悲观锁、同步锁、分布式锁等方案循序渐进解决各种问题。原创 2023-05-03 15:18:36 · 2664 阅读 · 2 评论 -
Redis缓存穿透、击穿、雪崩问题及其解决方法
缓存穿透 :缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。常见的解决方案有两种:* 缓存空对象 * 优点:实现简单,维护方便 * 缺点: * 额外的内存消耗 * 可能造成短期的不一致* 布隆过滤 * 优点:内存占用较少,没有多余key * 缺点: * 实现复杂 * 存在误判可能原创 2023-05-02 11:48:04 · 3096 阅读 · 1 评论 -
Redis缓存(双写一致性问题)
缓存就像自行车,越野车的避震器举个例子:越野车,山地自行车,都拥有"避震器",**防止**车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的**损害**,像个弹簧一样;原创 2023-05-01 18:51:44 · 1382 阅读 · 0 评论