数据库之Redis面试题


1. Redis是什么?都有哪些使用场景?

在这里插入图片描述


2. Redis的常用命令有哪些?

在这里插入图片描述


3. Redis是单线程还是多线程的?为什么?

单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),
即一个线程处理所有网络请求,其他模块仍用了多个线程。


4. Redis持久化有几种方式?如何配置?

RDB持久化
在这里插入图片描述

AOF持久化
在这里插入图片描述


5. Redis支持的数据类型有哪些?其中一个String类型最多存储多大数据?

在这里插入图片描述


6. 如何保证Redis缓存数据和数据库数据保持一致?

设置有效期 : 给缓存设置有效期,到期后自动删除
同步双写 : 在修改mysql数据库的同时,直接清理缓存;
异步通知:
当MySQL数据库中数据发送变化后,发送一个消息,相关服务监听到消息后清理缓存数据
基于MQ的异步通知
在这里插入图片描述
基于Canal的通知
在这里插入图片描述


7. Redis如何实现分布式锁?

在这里插入图片描述


8.redis集群的搭建⽅式?(如哨兵集群模式如何搭建)

在这里插入图片描述


9. redis集群备份数据的时候会不会影响对外提供服务,为什么?

不会因为是异步的备份的,RDB的bgsave


10.怎么把新的redis加⼊到集群中?

集群伸缩:
分片集群动态添加和删除节点
重新分配插槽范围


11. redis集群中插槽有多少个?怎么计算?(哈希槽计算出节点分配)

redis的槽是redis_Cluster集群中的概念,一共有16384个槽,槽就是用来存储数据的。当一个key过来时,使用一种类似于hash的算法算出一个值,然后对16384进行取模


12. Redis的过期键的删除策略(常问)

在这里插入图片描述


13. 内存淘汰策略(常问)

在这里插入图片描述


14. Redis线程模型,单线程为什么快?

纯内存操作
核心是基于非阻塞的IO多路复用机制 : epoll poll
单线程反而避免了多线程的频繁上下文切换带来的性能问题


15. 简述redis事务实现

在这里插入图片描述


16.缓存雪崩、缓存穿透、缓存击穿(常问)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值