Redis面试问题整理归纳.贰

一、你碰到过redis哪些性能问题,如何解决?

  1. 主从复制的性能问题:为了主从复制的速度与连接的稳定性,slave和master最好都在同一个局域网内。
  2. master调用BGREWRITEAOF重写AOF文件,AOF在重写的时候会消耗很高的CPU和内存资源,会导致服务load过高,出现短暂服务暂停现象。
  3. master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以master最好不要写内存快照。
  4. master AOF持久化,如果不重写AOF文件,这个持久化方式对性能的影响是最小的,但是AOF文件会不断增大,AOF文件过大会影响master重启的恢复速度。master最好不要做任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久化,如果数据比较关键,某个slave开启AOF备份数据,策略为每秒同步一次。

二、对于redis的并发竞争问题,你有什么解决思路?

1.redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。
2.redis本身没有锁的概念,redis对于多个客户端连接并不存在竞争,
但在Jedis客户端对redis进行并发访问时会发生连接超时、
数据转换错误、阻塞、客户端关闭连接等问题,
这些问题均是由于客户端连接混乱造成。

因此,有俩种解决思路:

  1. 从客户端角度,为保证每个客户端间正常有序与redis进行通信,对连接进行池化,同时对客户端读写redis操作采用内部锁synchronized。
  2. 从服务端角度,利用setnx实现锁。
    【对于第一种,需要应用程序自己处理资源的同步,可以使用的方法比较通俗,可以使用synchronized也可以使用lock;第二种需要用到redis的setnx命令,需要注意一些问题!】

三、谈谈redis的事务机制(CAS操作实现乐观锁)?

1. 事务是一个单独的隔离操作:
    事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,
    不会被其他客户端发送来的命令请求所打断。
2. 事务是一个原子操作:
    事务中的命令要么全部被执行,要么全部都不执行。

redis也提供了事务机制,MULTI、EXEC、DISCARD和WATCH这四个命令是实现事务的基石。
在这里插入图片描述

四、redis有哪几种持久化方式?

在这里插入图片描述

五、简单地描述下你对redis集群主从复制模型的理解?

  1. 在部分节点失败或者大部分节点无法通信的情况下,为了使集群仍然可用,由此集群使用了主从复制模型,每个节点都会有N-1个复制品。

六、redis集群会存在写操作丢失的可能么?

  1. redis不能保证数据的强一致性,这意味着在实际生产中集群在特定的条件下也可能会丢失写操作。

七、redis集群间怎么复制、最大节点是多少?

  1. 异步复制。
  2. 16384个。

八、redis集群模式怎么选择数据库?

  1. 集群目前无法做选择数据库,默认在db 0 。

九、redis集群方案你觉得应该怎么做?

在这里插入图片描述
上一篇 可查阅《Redis面试问题整理归纳.壹》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值