中间件
文章平均质量分 75
中间件相关知识
不止会JS
这个作者很懒,什么都没留下…
展开
-
redis哨兵原理
在挑选新的主机之前,首先哨兵集群要先选举一个老大来负责发送命令选举新的主机,选举过程中,哨兵集群会进行投票,哨兵节点会观察哪个节点的票最多,如果有一个节点的票最多,则会投票给该节点,如果没有得票的节点,则会投票给自己,换句话说,谁先投票,谁就会被选举为哨兵集群的老大,而最先发起投票的通常是最先发现主机客观下线的,这样来说,其实就是第quorum个发现主机主观下线的哨兵节点,会当选哨兵集群老大。其实这些条件都在保证从机的数据尽可能的新,最后通过id是确保能够选出来一个作为主机(并不是id越小,数据越新)原创 2024-05-04 21:14:44 · 452 阅读 · 0 评论 -
redis保存数据的结构-redisobject结构体
REDIS_ENCODING_EMBSTR: 用于存储短字符串(通常小于 44 字节),这种编码方式可以减少内存分配的开销,因为对象元数据和字符串数据可以在同一内存块中连续存储。集合是由字符串组成的无序集,集合中的元素是唯一的。REDIS_ENCODING_INTSET: 整数集合用于存储只包含整数的集合,当所有元素都是整数且数量不多时,使用整数集合可以节省内存。REDIS_ENCODING_HT: 使用哈希表存储集合元素,这适合元素数量较大的场景,可以快速进行元素查找、添加和删除。原创 2024-05-04 21:42:58 · 910 阅读 · 0 评论 -
redis-内存回收机制
(redis在进行周期性删除时,该值则记录了清理任务的当前执行位置,因为redis数据庞大,无法一次清理完成,需要记录上一次的清理位置,再次清理时,在这个位置以后继续清理,这个位置的记录就叫游标)slow模式:这种模式下按照server.hz配置的参数的频率执行清理任务,假如说将其设置为10,那么该模式下,redis将每秒执行十次清理,并且每次执行时间不能超过25ms。中的lru属性的值,而lru属性在LRU相关模式下会记录最近访问时间戳,在LFU模式化会用一个简单的算法记录访问频率。原创 2024-05-04 22:39:15 · 867 阅读 · 0 评论 -
redis集群-主从机连接过程
复制缓冲区:主机在想从机复制数据时并不会直接将数据复制给从机,而是将操作数据的指令存入数据缓冲区,并且记录offset,在将复制缓冲区传递给从机,从机根据自身记录的offset执行复制缓冲区内记录的指令以达到数据复制效果,复制缓冲区中的命令已满时,新命令会覆盖最早的旧命令,这也就导致了,如果从机请求复制数据时,它携带的offset已经被覆盖,那么他则必须全量复制,不过只要连接不断开,这种情况不会发生。首先从机需要发送自身携带的replid和offset向主机请求连接。原创 2024-05-04 11:07:12 · 197 阅读 · 0 评论 -
redis 缓存一致性,缓存穿透,缓存雪崩,缓存击穿
1.缓存一致性:缓存一致性就是通过各种方法保证缓存与数据库信息一种,其中最多的办法就是想尽一切办法对过期key进行清除,以保证redis和数据库信息一只,其中就包括了中提到的内存淘汰策略,过期key的清除等等,当然也包括在代码中进行手动清除过期key,不过手动清除时需要注意要保证数据库的更新和redis的清除都成功完成,可以使用的方法包括,使用事务,使用相关服务将redis和数据库进行整合,或者只操作redis,再由redis操作数据库等等。原创 2024-05-04 23:30:41 · 954 阅读 · 0 评论