redis面试常见问题总结

reidis:
涉及的知识点
    --    常用的操作命令
    --  redis雪崩 穿透 redis锁
    --防止雪崩:对业务内使用的缓存失效期进行,分级处理,时间尽量均匀
    --防止穿透:对查询不到的数据也进行较短时间的缓存,避免查询不到数据的请求直接高频的进入DB
-- 数据备份 rdb aof -- 哨兵模式 -- 使用流程( 1.三台服务器redis配置文件开启哨兵模式 从服务器设置 主服务 连接配置 2.配置哨兵文件( 1.哨兵日志 2.主服务器 地址 3.主服务器连接密码 ) 3.启动主从redis redis-server redis.conf 4.启动主从哨兵 redis-sentinel sentinel.conf ) -- 主从数据同步( 1.全量同步:   Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:   1)从服务器连接主服务器,发送SYNC命令;   2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;   3)主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;   4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;   5)主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;   6)从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令; 2.增量同步:   Redis增量复制是指Slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。 增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。 3.Redis主从同步策略:   主从刚刚连接的时候,进行全量同步;全量同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。 4.防止网络抖动时进行全量同步: 1.redis里面的repl-timeout参数值太小也将会导致复制不成功.超时原因有( 1)slave角度,如果在repl-timeout时间内没有收到master SYNC传输的rdb snapshot数据, 2)slave角度,在repl-timeout没有收到master发送的数据包或者ping。 3)master角度,在repl-timeout时间没有收到REPCONF ACK确认信息。 ),当从服务器检测超时后 会从新拉起建立主从服务器关系,对于数据量较大的机子可以使用交到的超时时间设置 2.redis slave会定期从master发送ping命令,时间间隔repl-ping-slave-period指定。因而设置参数时需要, repl-timeout > repl-ping-slave-period。 3.当主服务器进行命令传播的时候,master不仅将所有的数据更新命令发送到所有slave的replication buffer,还会写入replication backlog。当断开的slave重新连接上master的时候,slave将会发送psync命令(包含复制的偏移量offset),请求partial resync。如果请求的offset不存在,那么执行全量的sync操作,相当于重新建立主从复制。 4.为了避免网络不稳定造成的全量同步.修改参数如下: config set repl-timeout 240 config set repl-backlog-size 524288000 )      

学习链接:

https://www.cnblogs.com/hutao722/p/9644620.html

https://www.cnblogs.com/WIU1905/p/11802847.html

https://www.jianshu.com/p/e04844f82efd

https://www.cnblogs.com/jasontec/p/9699242.html

  

posted @ 2020-03-18 00:45  Vitascope  阅读(154)  评论(0编辑  收藏  举报