十四、补充ing

发布时间 2023-06-08 15:36:17作者: 上好佳28

如何保证 Redis 中的数据都是热点数据

提供一种简单实现缓存失效的思路: LRU(最近少用的淘汰) 即redis的缓存每命中一次,就给命中的缓存增加一定ttl(过期时间)(根据具体情况来设定, 比如10分钟). 一段时间后, 热数据的ttl都会较大, 不会自动失效, 而冷数据基本上过了设定的ttl就马上失效

这个考查的就是Redis的淘汰策略

设置一下 Redis 内存限制,并将淘汰策略为volatile-lru或者allkeys-lru,Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略

Redis主从节点时长连接还是短连接?

长连接

怎么判断-redis-某个节点是否正常工作

Redis 判断节点是否正常工作,基本都是通过互相的 ping-pong 心态检测机制,如果有一半以上的节点去 ping 一个节点的时候没有 pong 回应,集群就会认为这个节点挂掉了,会断开与这个节点的连接。

主从复制架构中,过期key如何处理?

主节点处理了一个key或者通过淘汰算法淘汰了一个key,这个时间主节点模拟一条del命令发送给从节点,从节点收到该命令后,就进行删除key的操作。

Redis 是同步复制还是异步复制?

Redis 主节点每次收到写命令之后,先写到内部的缓冲区,然后异步发送给从节点。

主从复制中两个 Buffer(replication buffer 、repl backlog buffer)有什么区别?

replication buffer 、repl backlog buffer 区别如下:

  • 出现的阶段不一样:

    • repl backlog buffer 是在增量复制阶段出现,一个主节点只分配一个 repl backlog buffer

    • replication buffer 是在全量复制阶段和增量复制阶段都会出现,主节点会给每个新连接的从节点,分配一个 replication buffer

  • 这两个 Buffer 都有大小限制的,当缓冲区满了之后,发生的事情不一样:

    • 当 repl backlog buffer 满了,因为是环形结构,会直接覆盖起始位置数据;

    • 当 replication buffer 满了,会导致连接断开,删除缓存,从节点重新连接,重新开始全量复制

如何应对主从数据不一致?