Redis常见面试题(五)

目录

1、Redis中的管道有什么用?

2、Redis有哪些高可用方案?

3、Redis集群的目的是什么?

4、Redis集群如何选择数据库?

5、Redis集群怎么保证高可用?

6、Redis集群最少需要几个主节点?

7、Redis集群主从复制的原理是?

8、Redis集群是怎么做数据分片的?

9、Redis集群会不会出现写丢失?

10、Redis可以保证数据强一致性吗?


1、Redis中的管道有什么用?

Redis中的管道技术是指: Redis Pipelining,用于提高Redis服务的性能。

管道技术可以在服务端还未响应时,客户端仍然可以继续向服务端发送请求,即客户端可以发送多个命令到服务端,而不用等待服务器的响应,客户端会在最后再一次性读取所有服务端的响应。

2、Redis有哪些高可用方案?

1. Redis主从复制;

2. Redis Sentinel (哨兵) ;

3. Redis Cluster (集群) ;

4. Codis (第三方)

5. twemproxy (第三方)

3、Redis集群的目的是什么?

Redis集群可以将数据分割到不同的服务器节点上,当Redis集群中的部分节点宕机或不可用时,Redis 其他节点仍然能够继续处理命令,不至于整个Redis集群不可用,用来保证可用性。

4、Redis集群如何选择数据库?

Redis集群目前无法做数据库选择,默认在0号数据库。

5、Redis集群怎么保证高可用?

Redis集群使用了主从复制模型,即每个节点都可以多个复制品。

比如集群有这三个主节点:

A,B,C

如果其中一个挂了,集群就不可用了,所以现在为每个节点分配一个从节点:

A1, B1,C1

这样,如果A挂了,A1就会顶上来,集群继续正常工作。

6、Redis集群最少需要几个主节点?

Redis集群正常工作,至少需要3个主节点。

7、Redis集群主从复制的原理是?

Redis集群主从复制采用的是异步复制机制。

比如,现在有以下节点:

A-> A1, A2, A3

B-> B1, B2, B3

C-> C1,C2,C3

具体的复制流程如下:

1)客户端向主节点C写数据

2)主节点C回复该命令状态

3)主节点C再向其他从节点(C1,C2,C3) 复制数据

8、Redis集群是怎么做数据分片的?

Redis集群没有使用一致性hash算法,而是引入了哈希槽的概念。

Redis集群有16384个哈希槽,每个key 通过CRC16校验后对16384取模来决定放置哪个槽,

集群的每个节点负责一部分hash槽。

举个例子,比如当前集群有3个节点,那么:

●节点A包含0到5500号哈希槽

●节点B包含5501到11000号哈希槽

●节点C包含11001到16384号哈希槽

9、Redis集群会不会出现写丢失?

Redis集群不是强一致性,会出现丢失写操作数据的情况。

比如有以下2个场景:

1) 集群是用了异步复制,主节点成功即立即返回再同步从数据,由于网络问题从节点可能没有同步到数据;

2)集群出现了网络分区,可能导致写数据丢失;

10、Redis可以保证数据强一致性吗?

Redis集群主从复制采用的是异步复制机制,

Redis并不能保证数据的强一致性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值