Redis甲骨文(自测版)

文章目录

          • 1.Redis持久化机制
          • 2.Redis为什么那么快
          • 3.Redis过期键有哪些删除策略
          • 4.Redis缓存如何回收
          • 5.Redis集群方案有哪些
          • 6.Redis事务怎么实现
          • 7.Redis主从复制原理
          • 8.缓存穿透,缓存击穿,缓存雪崩与处理

注: 自测

1.Redis持久化机制
两种:RDB与AOF
1.RDB - 按照时间间隔,以快照形式进行存储
	优点:紧凑,序列化
	缺点:时间间隔大丢失数据会多,如果内存不够,fork会抛出异常
2.AOF - 记录每次对服务器的写操作,重启时执行这些写操作,当AOF过大时,会自动重写AOF
	优点:**Redis更耐久**,数据丢失量小,AOF过大,自动重写AOF
	缺点:**AOF体积大于RDB****AOF由于使用fsync速度比RDB慢**
2.Redis为什么那么快
1.Redis使用单线程,操作处理都是在内存
2.使用了多路复用器
3.Redis简单不复杂
4.Redis有自己的VM机制
3.Redis过期键有哪些删除策略
1.主动
	客户端访问时,主动发现了过期键,去删除
2.被动
	1.Redis每隔10s会随机自动检测20Keys
	2.然后会将其中过期的Keys删除
	3.如过删除超过25%,便会再随机自动检测
在AOF文件时怎么处理过期键
	**当slaves连接master时,不会独立处理过期Keys,而是等待master下达EDL命令,当slave当选为master时,会独立处理过期的Keys,然后成为master**
4.Redis缓存如何回收
八种策略
1.noeviction:不执行回收机制
2.allkeys-lru:回收最少使用的键
3.volatile-lru:在过期键集合中,回收虽少使用的键
4.allkeys-random:随即回收键
5.volatile-random:在过期键中,随即回收键
6.volatile-ttl:在过期键中,回收存活时间较短的键
7.allkeys-lfu:回收使用最少的键
8.volatile-lfu:在过期键集合中,回收是用最少的键
lru与lfu是最常使用的策略

回收过程
1.执行了新的命令:新增一条数据
2.Redis检查内存使用情况,查看maxMemory是否大于,大于执行回收策略
3.新命令执行
4.**不断地查看,使其回收到边界下**
5.Redis集群方案有哪些
1.主从复制集群,需要手动切换
2.分片集群,实现cluster的分片集群
6.Redis事务怎么实现
1.Multi
2.Exec:没执行都不执行
3.Discard
4.Watch

Redis为什么不支持回滚
因为Exec只关注命令是否要执行,语法错误会在开发环境中被检测,而不应该存在生产环境中,所以不支持回滚,所以Redis简单快速
7.Redis主从复制原理
master发出命令,让slave执行更新操作,包括过期键,slave断开与master链接,
当slave与master重连时,master执行部分同步,当无法进行同步时,slave执行全量重同步,
**master创建快照发送给slave,数据集更改时持续发送命令流给slave**
8.缓存穿透,缓存击穿,缓存雪崩与处理
穿透:缓存不存在,数据库不存在,高并发,少量Key
击穿:缓存不存在,数据库存在,高并发,少量Key
雪崩:缓存不存在,数据库存在,高并发,大量Key
针对以上都可以加互斥锁来保证数据库的稳定,使得请求得Key变成一条O(1),数据库不崩坏就可以

你可能感兴趣的:(redis,数据库,缓存)