面试必备!Redis面试题合集

目录

1.Redis简介

2. 分布式缓存常见的技术选型方案有哪些?

3. 说一下 Redis 和 Memcached 的区别和共同点

4. 缓存数据的处理流程是怎样的? 

5. 为什么要用 Redis/为什么要用缓存?

6. Redis 常见数据结构以及使用场景分析

6.1. string

6.2. list

6.3. hash

6.4. set

6.5. sorted set

6.6 bitmap

7. Redis 单线程模型详解

8. Redis 没有使用多线程?为什么不使用多线程?

9. Redis6.0 之后为何引入了多线程?

10. Redis 给缓存数据设置过期时间有啥用?

11. Redis 是如何判断数据是否过期的呢?

12. 过期的数据的删除策略了解么?

13. Redis 内存淘汰机制了解么?

14. Redis 持久化机制(怎么保证 Redis 挂掉之后再重启数据可以进行恢复)

15. Redis 事务

16. 缓存穿透

16.1. 什么是缓存穿透?

16.2. 缓存穿透情况的处理流程是怎样的?

16.3. 有哪些解决办法?

16.3.1、缓存无效 key

16.3.2、布隆过滤器

17. 缓存雪崩

17.1. 什么是缓存雪崩?

17.2. 有哪些解决办法?

18. 如何保证缓存和数据库数据的一致性?

19、Reids的特点

20、使用redis有哪些好处?

String

Hash

List

Set

Sorted Set

21、redis相比memcached有哪些优势?

22、Memcache与Redis的区别都有哪些?

23、redis适用于的场景?

23.1、会话缓存(Session Cache)

23.2、全页缓存(FPC)

23.3、队列

23.4、排行榜/计数器

23.5、发布/订阅

24、redis的缓存失效策略和主键失效机制

24.1、影响生存时间的一些操作

24.2、如何更新生存时间

25、为什么redis需要把所有数据放到内存中?

26、Redis是单进程单线程的

27、redis的并发竞争问题如何解决?

28、redis常见性能问题和解决方案

29、redis事物的了解CAS(check-and-set 操作实现乐观锁)?

30、WATCH命令和基于CAS的乐观锁?

31、使用过Redis分布式锁么,它是什么回事?

32、假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?

33、使用过Redis做异步队列么,你是怎么用的?

34、如果有大量的key需要设置同一时间过期,一般需要注意什么?

35、Redis如何做持久化的?

36、Pipeline有什么好处,为什么要用pipeline?

37、Redis的同步机制了解么?

38、是否使用过Redis集群,集群的原理是什么?

39、Redis 的数据类型?

40、使用 Redis 有哪些好处?

41、Redis 相比 Memcached 有哪些优势?

42、Memcache 与 Redis 的区别都有哪些?

43、Redis 是单进程单线程的?

44、一个字符串类型的智能存储最大容量是多少?

45、Redis 的持久化机制是什么?各自的优缺点?

46、Redis 常见性能问题和解决方案

47、Redis 过期键的删除策略?

48、Redis 的回收策略(淘汰策略)?

49、为什么 Redis 需要把所有数据放到内存中?

50、Redis 的同步机制了解么?

51、Pipeline 有什么好处,为什么要用 Pipeline?

52、是否使用过 Redis 集群,集群的原理是什么?

53、Redis 集群方案什么情况下会导致整个集群不可用?

54、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

55、Jedis 与 Redisson 对比有什么优缺点?

56、Redis 如何设置密码及验证密码?

57、说说 Redis 哈希槽的概念?

58、Redis 集群的主从复制模型是怎样的?

59、Redis 集群会有写操作丢失吗?为什么?

60、Redis 集群之间是如何复制的?

61、Redis 集群最大节点个数是多少?

62、Redis 集群如何选择数据库?

63、怎么测试 Redis 的连通性?

64、怎么理解 Redis 事务?

65、Redis 事务相关的命令有哪几个?

66、Redis key 的过期时间和永久有效分别怎么设置?

67、Redis 如何做内存优化?

68、Redis 回收进程如何工作的?

69、都有哪些办法可以降低 Redis 的内存使用情况呢?

70、Redis 的内存用完了会发生什么?

71、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最多能存放多少元素?

72、MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?

73、Redis 最适合的场景?

74、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?

74.1、对方接着追问:如果这个 Redis 正在给线上的业务提供服务,那使用 keys 指令会有什么问题?

75、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

76、使用过 Redis 做异步队列么,你是怎么用的?

76.1、如果对方追问 pub/sub 有什么缺点?

76.2、如果对方追问 Redis 如何实现延时队列?

77、使用过 Redis 分布式锁么,它是什么回事?


1.Redis简介

简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。

另外,Redis 除了做缓存之外,也经常用来做分布式锁,甚至是消息队列。

Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao_kkkkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值