redis常见的面试题

摘要

前几日分享了关于缓存的几个小问题,大概的回顾下,就是关于缓存穿透、缓存击穿与缓存雪崩,分别从数据库中没有数据,数据库有数据但缓存失效(即未命中),及大量数据缓存失效上讲了下缓存的设计思路,用一些伪代码并来说明如何解决类似的问题,问题的解决方案不止我文中提到的方案,也欢迎您来补充更好的方案。

如果您有更好的方案,欢迎您私信我。也欢迎您点赞加关注,相互多多交流。

常用的redis面试题

关于使用缓存服务器,一般的选择都是使用redis,redis缓存服务器是软件开发过程中最常用的一个缓存服务器,类似的还有memcache等等其他缓存服务器,当前,各有各的应用场景,但由于redis比较常见,所以,面试的过程中,redis相关的问题是最常见的。

下面,我就来简单的列一些比较基础的面试题,并尝试着回答一下。

基础数据结构

  1. redis支持哪几种数据类型

String (字符串)、List(链表)、Set(字符串的无序集合)、ZSET(字符串有序集合)、hash(键值对无序链表)

redis 数据结构描述

  1. redis主要消耗什么物理资源

    内存。

  2. Redis的数据淘汰策略 1) noeviction : 返回错误当内存限制达到,并且客户端尝试执行会让更多内存被使用的命令。 2) allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。 3) volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。 4) allkeys-random: 回收随机的键。 5) volatile-random: 回收随机的键,但键在过期集合中的键。 6) volatile-ttl : 回收过期集合中的键,并且优先回收存活时间(TTL)较短的键。

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

    512M。

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

    16384个。

  5. 如何获取所有的key

    keys,但不建议使用该命令,由于该命令会查询所有的key,并返回,由于redis单线程的机制,导致该命令未返回前,其他命令都将进行等待。

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

    redis适合场景

类似的面试题还有许多,基本上都是围绕着redis的基础结构,以及集群。也有redis的事务等等方面的问题。刚刚上面的截图就是我收集的一些关于redis面试题的几个文件,如果有需要的朋友,可以关注我,并私信我消息,我看到后,可以给您回复分享连接(当然,没有任何套路,也没有任何其他的需要关注微信公众号。即便您没有关注我,给我私信一个消息,我也会回复,如果您能关注或者点赞,我也很高兴)。

下面,我再放几张图,有需要的可以联系我哦。

redis-1

redis-2

欢迎大家关注我,每天都会分享一些平常工作中使用的技术和观点,也欢迎大家与我交流。