史上最全Redis面试题及答案

纵然是瞬间 提交于 2020-04-28 23:18:51

1、什么是Redis?

2、Redis相比memcached有哪些优势?

3、Redis支持哪几种数据类型?

4、Redis主要消耗什么物理资源?

5、Redis的全称是什么?

6、Redis有哪几种数据淘汰策略?

7、Redis官方为什么不提供Windows版本?

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

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

10、Redis集群方案应该怎么做?都有哪些方案?

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

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

  13、Redis有哪些适合的场景?

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

15、Redis和Redisson有什么关系?

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

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

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

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

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

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

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

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

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

25、Redis中的管道有什么用?

26、怎么理解Redis事务?

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

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

29、Redis如何做内存优化?

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

31、Redis回收使用的是什么算法?

32、Redis如何做大量数据插入?

33、为什么要做Redis分区?

34、你知道有哪些Redis分区实现方案?

35、Redis分区有什么缺点?

36、Redis持久化数据和缓存怎么做扩容?

37、分布式Redis是前期做还是后期规模上来了再做好?为什么?

38、Twemproxy是什么?

39、支持一致性哈希的客户端有哪些?

40、Redis与其他key-value存储有什么不同?

41、Redis的内存占用情况怎么样?

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

https://www.cnblogs.com/jandison/p/6902396.html

 

43、查看Redis使用情况及状态信息用什么命令?

info

 

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

 

我们知道,redis设置配置文件的maxmemory参数,可以控制其最大可用内存大小(字节)。

那么当所需内存,超过maxmemory怎么办?

这个时候就该配置文件中的maxmemory-policy出场了。

其默认值是noeviction。

下面我将列出当可用内存不足时,删除redis键具有的淘汰规则。

 

规则名称

规则说明

volatile-lru

使用LRU算法删除一个键(只对设置了生存时间的键)

allkeys-lru

使用LRU算法删除一个键

volatile-random

随机删除一个键(只对设置了生存时间的键)

allkeys-random

随机删除一个键

volatile-ttl

删除生存时间最近的一个键

noeviction

不删除键,只返回错误

LRU算法,least RecentlyUsed,最近最少使用算法。也就是说默认删除最近最少使用的键。

但是一定要注意一点!redis中并不会准确的删除所有键中最近最少使用的键,而是随机抽取3个键,删除这三个键中最近最少使用的键。

那么3这个数字也是可以设置的,对应位置是配置文件中的maxmeory-samples

 

45、Redis是单线程的,如何提高多核CPU的利用率?

一个机器通过不同端口开多个实例 

 

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

 232  

 

47、Redis常见性能问题和解决方案?  关于redis性能问题分析和优化可参考 https://www.cnblogs.com/chenpingzhao/p/6859041.html

 

1.Master最好不要做任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久化。   

2.如果数据比较关键,某个Slave开启AOF备份数据,策略为每秒同步一次。   

3.为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。   

4.尽量避免在压力较大的主库上增加从库  

5.为了Master的稳定性,主从复制不要用图状结构,用单向链表结构更稳定,即主从关系为:Master<--Slave1<--Slave2<--Slave3.......,这样的结构也方便解决单点故障问题,实现Slave对Master的替换,也即,如果Master挂了,可以立马启用Slave1做Master,其他不变。

 

48、Redis提供了哪几种持久化方式?

https://www.cnblogs.com/chenliangcl/p/7240350.html

 

49、如何选择合适的持久化方式?

根据不同需求 选择

 

50、修改配置不重启Redis会实时生效吗?

Config set parameter value  命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启

可以通过 Config get *

看看哪些参数 redis可以动态设置

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!