面试必备100道Redis面试题!

我把所有Java相关的面试题和答案都整理成了PDF,并且带书签目录,阅读起来非常方便

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

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

Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。在内存越来越便宜的今天,redis将会越来越受欢迎。

如果设置了最大使用的内存,则数据已有记录数达到内存限值后不能继续插入新值。

2. Redis中数据库默认是多少个db即作用?

Redis默认支持16个数据库,可以通过配置databases来修改这一数字。客户端与Redis建立连接后会自动选择0号数据库,不过可以随时使用select命令更换数据库。

Redis支持多个数据库,并且每个数据库是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念。

3. Redis事务其他实现

  • 基于Lua脚本,Redis可以保证脚本内的命令一次性、按顺序地执行,
    其同时也不提供事务运行错误的回滚,执行过程中如果部分命令运行错误,剩下的命令还是会继续运行完
  • 基于中间标记变量,通过另外的标记变量来标识事务是否执行完成,读取数据时先读取该标记变量判断是否事务执行完成。但这样会需要额外写代码实现,比较繁琐

4. Redis 集群如何选择数据库?

Redis 集群目前无法做数据库选择,默认在 0 数据库。

5. 使用方式

GEOADD key longitude latitude member [longitude latitude member ...]

将给定的位置对象(纬度、经度、名字)添加到指定的key。其中,key为集合名称,member为该经纬度所对应的对象。在实际运用中,当所需存储的对象数量过多时,可通过设置多key(如一个省一个key)的方式对对象集合变相做sharding,避免单集合数量过多。

成功插入后的返回值:

(integer) N

其中N为成功插入的个数。

后面的问题,大家可以先自己独立思考一下。

另外我把所有Java相关的面试题和答案都整理出来了,给大家参考一下

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

面试题及答案PDF下载https://www.hicxy.com/?p=2645

6. Redis 回收进程如何工作的?

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

8. 定期删除策略

9. Redis 内部结构

10. Redis的内存占用情况怎么样?

11. 为什么要做Redis分区?

12. 锁互斥机制

13. RDB和AOF的优缺点

14. 事务管理(ACID)概述

15. Redis 集群最大节点个数是多少?

16. Redis持久化数据和缓存怎么做扩容?

17. Redis与其他key-value存储有什么不同?

18. Redis 有哪几种数据淘汰策略?

19. Redis提供了哪几种持久化方式?

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

21. Redis 常见的性能问题和解决方案

22. Redis 到底是怎么实现“附近的人”

23. Redis 为什么是单线程的

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

25. 在选择缓存时,什么时候选择 redis,什么时候选择 memcached?

26. Redis 集群方案应该怎么做?都有哪些方案?

27. 生产环境中的 redis 是怎么部署的?

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

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

30. Redis 集群之间是如何复制的?

31. 为什么要用 redis/为什么要用缓存

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

33. Redis如何做内存优化?

34. 如何选择合适的持久化方式?

35. 加锁机制

36. 怎么理解 Redis 事务?

37. Redis事务的三个阶段

38. redis 过期策略都有哪些?LRU 算法知道吗?

39. Redis分区有什么缺点?

40. Redis的过期策略以及内存淘汰机制

41. Redis 主要消耗什么物理资源?

42. Redis 有哪些适合的场景?

43. 定时删除策略

44. redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?

45. Redis常用管理命令

46. redis 常见数据结构以及使用场景分析

47. 缓存雪崩和缓存穿透问题解决方案

48. Redis 事务相关的命令有哪几个?

49. 知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?

50. 为什么Redis的操作是原子性的,怎么保证原子性的?

51. Redis为什么这么快

52. 什么是Redis持久化?

53. Reids的特点

54. Redis 官方为什么不提供 Windows 版本?

55. 讲解下Redis线程模型

56. Redis 集群会有写操作丢失吗?为什么?

57. 惰性删除策略

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

59. 你知道有哪些Redis分区实现方案?

60. Redis 支持哪几种数据类型?

61. 什么是 Redis?简述它的优缺点?

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

63. Redis 的数据淘汰策略有哪些

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

65. 缓存穿透、缓存击穿、缓存雪崩解决方案?

66. Redis 集群的主从复制模型是怎样的?

67. 修改配置不重启Redis会实时生效吗?

68. 说说 Redis 哈希槽的概念?

69. Redis有哪些优缺点

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

71. 使用 Redis 做过异步队列吗,是如何实现的

72. 对于大量的请求怎么样处理

73. 如何保证缓存与数据库双写时的数据一致性?

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

75. Redis的内存用完了会发生什么?

76. Redis事务支持隔离性吗

77. Redis有哪些适合的场景?

78. Redis事务

79. Redis 如何实现延时队列

80. 如何选择合适的持久化方式

81. Redis的过期键的删除策略

82. Reids三种不同删除策略

83. Redis 中的管道有什么用?

84. 缓存与数据库不一致怎么办

85. Redis的数据类型,以及每种数据类型的使用场景

86. 请用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次。具体登录函数或功能用空函数即可,不用详细写出。

87. Redis事务的概念

88. Redis 与 memcached 相比有哪些优势?

89. Redis 集群方案应该怎么做?都有哪些方案?

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

91. watch dog 自动延期机制

92. 使用redis有哪些好处?

93. 如何解决 Redis 的并发竞争 Key 问题

94. Redis 常见性能问题和解决方案?

95. 单线程的redis为什么这么快

96. 使用过 Redis 做异步队列么,你是怎么用的?有什么缺点?

97. 我们知道通过expire来设置key 的过期时间,那么对过期的数据怎么处理呢?

98. 使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?

99. 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?

100. Redis事务保证原子性吗,支持回滚吗

101. Redis 如何做内存优化?

你可能感兴趣的:(redis)