Redis面试

Redis面试

Redis数据类型

Redis持久化方式

RDB和AOF
RDB 机制是以指定的时间间隔将 Redis 中的数据生成快照并保存到硬盘中,它更适合于定时备份数据的应用场景。可以通过手动或者自动的方式来触发 RDB 机制。

手动触发命令:

save:save命令会阻塞当前redis服务,直到redis备份完成,在此期间所以查询命令都会被阻塞。
bgsave,fork出一个子线程,阻塞只会发生在fork阶段,之后的操作由子线程来完成。

自动触发条件:

Redis内存淘汰策略

内存淘汰策略发生在redis内存占满的情况下
Redis中共有下面八种内存淘汰策略:
volatile-lru:设置了过期时间的key使用LRU算法淘汰
allkeys-lru:所有key使用LRU算法淘汰
volatile-lfu:设置了过期时间的key使用LFU算法淘汰
allkeys-lfu:所有key使用LFU算法淘汰
volatile-random:设置了过期时间的key使用随机淘汰
allkeys-random:所有key使用随机淘汰
volatile-ttl:设置了过期时间的key根据过期时间淘汰,越早过期越早淘汰
noeviction:默认策略,当内存达到设置的最大值时,所有申请内存的操作都会报错,只读操作如get命令可以正常执行。

过期删除策略

对过期key进行回收
惰性删除:当key被访问时,检查改key的过期时间,若已过期则删除,已过期未被访问的数据仍保持在内存中,消耗内存资源。
定期删除:每隔一段时间,随机检查设置了过期时间的key并删除已过期的key,维护定时器消耗cpu资源。

AOF和RDB的过期删除策略

前面介绍了Redis的持久化策略RDB和AOF,当Redis中的key已过期未删除时,如果进行RDB和AOF的持久化操作时候会怎么操作呢?

在RDB持久化模式中我们可以使用save和bgsave命令进行数据持久化操作
在AOF持久化模式中使用rewriteaof和bgrewriteaof命令进行持久化操作
这四个命令都不会将过期key持久化到RDB文件或AOF文件中,可以保证重启服务时不会将过期key载入Redis。

为了保证一致性,在AOF持久化模式中,当key过期时候,会同时发送DEL命令给AOF文件和所有节点;

从节点不会主动的删除过期key除非它升级为主节点或收到主节点发来的DEL命令;

Redis有哪些集群模式?

1.主从复制模式
主从模式包括一个主节点和多个从节点
主节点负责处理读写操作,并将数据同步到从节点
从节点负责处理读操作,并复制主节点的数据
当主节点出现问题时可以通过故障转移将某个从节点切换为主节点。
主从复制模式适用于读多写少场景。主从模式的缺点在于无法自动进行故障转移、容错和恢复,需要人工手动介入。
2.哨兵模式
哨兵模式是在主从模式的基础上加上了哨兵节点,用于监控主节点和从节点的状态并针对异常情况进行自动故障转移、快速恢复

3.集群模式 Redis Cluster
集群模式是将数据自动分片到各个节点,每个节点负责一部分数据,每个节点可以有多个副本,支持动态扩展和自动伸缩。

Redis的数据分片是将数据集分割成多个部分,存放到集群中不同节点,提升redis的性能和扩展性。具体是通过将数据按照某种规则(key的hash)分配到不同的节点上,当客户端想要访问某个key时,会先计算key应该存储在哪个节点上,然后直接连接到节点进行操作。
redis集群模式使用哈希槽(hash slot)的方式来进行数据分片,每个槽分配给一个节点,客户端访问数据时,先根据key计算所对应的槽,然后连接到对应的节点进行操作。redis集群将数据集分割为16384个槽,每个槽都有一个编号(0-16383),redis每个节点可以分配多个槽。

reids适用自己设计的一种文本协议进行通信RESP,这张协议简单高效,基于tcp协议。

redis为什么快?
基于内存、单线程模型、多路复用I/O模型、高效的数据结构,多线程处理网络请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值