Redis的应用场景?
2. Redis持久化数据和缓存怎么做扩容?
如果Redis只做缓存使用时,可以使用一致性hash实现动态扩缩容.
3.Redis的过期键的删除策略?
(1)定期删除,每个设置过期时间的key,都需要设置一个定时器,当key过期是立即删除.对内存很友好,但是会大量消耗CPU处理过期key,影响缓存的响应时间和吞吐量(空间换时间)
(2)惰性删除 当访问某key,判断是否过期,过期就再删除.该策略对内存不友好,当大片key过期后没及时删除,缺占用了大量内存
(3)定时删除 多长时间内删除过期数据
4,Redis key的过期时间和永久有效分别怎么设置?
expire和persist命令
5,MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
Redis数据集大小升到一定数量时,就会实行淘汰策略.
6,Redis的内存淘汰策略有哪些?
expire 1,淘汰快过期的. 2淘汰最近使用最少的. 4 不淘汰 5,随机移除某个key
内存淘汰策略不影响过期key的处理,淘汰策略用于内存不足时,需要申请额外的数据.过期删除策略由于处理过期数据.
7,哨兵模式
集群监控 :sentinel负责监控master和slave服务是否正常运行
消息通知 :如何某个Redis发生故障,sentinel会发送消息,作为警报通知管理员
故障转移 : 当master 的node发生故障时,会转移到slave node上
配置中心 :当master发生故障,会通知client新的master地址
8,redis 主从复制的核心原理
1,当主库和从库建立连接后,主库后台生成RDB文件
2,此时新的写命名将缓存到内存中
3,当RDB文件完成后,master将RDB文件和所有缓存的写命令发送给slave
4,slave接受到RDB文件,将文件保存到本地磁盘,再从磁盘中读取数据,并执行收到的缓存命令
5,之后,master收到写命令就会将命令发送给slaveRedis中,从而保证了数据一致性
缺点,所有的slave数据同步和复制都是master节点操作的,会造成master节点压力太大,解决方案使用从从复制.
Redis的问题
9,Redis实现分布式锁?
redis是单进程单线程模式的,采用列队模式将并发访问变成串行访问,Redis可以使用setNX命令实现分布式锁
当且key不存在,将key的值设成value,若给定的key存在,setNX不做任何动作
SETNX是(set if not exists)如果不存在,则set的简写.
返回值,设置成功返回1,失败返回0
10,如何解决 Redis 的并发竞争 Key 问题?