redis必会的9个知识点

Redis是一款高性能的内存数据存储系统,其快速性能源于内存操作和单线程模型。它使用IO多路复用处理并发访问,支持多种数据结构如String、Hash、List等。持久化机制包括RDB和AOF,各有优缺点。Redis有多种数据淘汰策略以应对内存限制,同时采用主从复制保证高可用性。此外,文章还讨论了Redis的事务处理、过期策略以及缓存问题的解决方案。
摘要由CSDN通过智能技术生成

1.Redis 为何这么快?
1.基于内存
2.单线程减少上下文切换,同时保证原子性
3.IO多路复用

2.Redis是如何处理并发访问的?
Redis是单线程的,通过使用I/O多路复用技术将并发请求串行化处理。它的设计目标是尽可能减小锁竞争、提高CPU的利用率,并通过非阻塞I/O降低系统开销。这种设计使得Redis能够高效地处理并发请求。

3.Redis的数据结构有哪些?
Redis支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)以及位图(Bitmap)、地理位置(Geo)等。不同的数据结构适用于不同的场景和用例。

4.Redis的持久化机制是什么?它有哪些优缺点?
Redis支持两种持久化机制:
快照(RDB)和追加日志(AOF)。RDB以二进制形式保存数据库快照,而AOF记录操作日志。优点是RDB备份速度快、AOF提供了更精确的数据恢复,缺点是RDB可能会丢失一部分数据、AOF文件大小相对较大。可以根据需求选择适合的持久化方式。

5.Redis支持哪些数据淘汰策略?
Redis有三种数据淘汰策略,分别是最大内存限制、最小空闲内存和基于时间戳的自动清理。
volatile-lru:当内存不足以容纳新写入数据时,从设置了过期时间的key中使用LRU(最近最少使用)算法进行淘汰;
allkeys-lru:当内存不足以容纳新写入数据时,从所有key中使用LRU(最近最少使用)算法进行淘汰。
volatile-lfu:4.0版本新增,当内存不足以容纳新写入数据时,在过期的key中,使用LFU算法进行删除key。
allkeys-lfu:4.0版本新增,当内存不足以容纳新写入数据时,从所有key中使用LFU算法进行淘汰;
volatile-random:当内存不足以容纳新写入数据时,从设置了过期时间的key中,随机淘汰数据;。
allkeys-random:当内存不足以容纳新写入数据时,从所有key中随机淘汰数据。
volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的key中,根据过期时间进行淘汰,越早过期的优先被淘汰;
noeviction:默认策略,当内存不足以容纳新写入数据时,新写入操作会报错。

6.Redis的主从复制是如何工作的?
答案:Redis使用主从复制来实现数据的备份和高可用性。主节点将写操作同步到所有从节点,而从节点仅用于读取请求。当主节点失效时,从节点可以晋升为新的主节点。这种机制提供了数据冗余和故障恢复的能力。

7.Redis的事务支持是什么样的?
答案:Redis的事务允许客户端发起一系列命令的原子性执行。通过MULTI、EXEC和WATCH指令,可以将多个操作捆绑在一起作为一个事务提交。不过需要注意的是,Redis的事务是乐观锁,并不会实际锁定键。

8.Redis的过期策略
定时过期
每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即对key进行清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。
惰性过期
只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。
定期过期
每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。

9.缓存三大问题以及解决方案
缓存穿透:查询数据不存在
1.缓存空值
2.key 值校验,布隆筛选器
缓存击穿:缓存过期,伴随大量对该 key 的请求
1.互斥锁
2.热点数据永不过期
3.熔断降级
缓存雪崩:同一时间大批量的 key 过期
1.热点数据不过期
2.随机分散过期时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值