首页 > 数据库 >对标阿里P7面试Redis面试专题

对标阿里P7面试Redis面试专题

时间:2023-01-28 21:38:10浏览次数:55  
标签:P7 Redis redis 面试 memcached 集群 内存 数据


文章目录

  • ​​一、什么是 Redis?简述它的优缺点。​​
  • ​​二、Redis 与 memcached 相比有哪些优势?​​
  • ​​三、Redis 支持哪几种数据类型?​​
  • ​​四、Redis 主要消耗什么物理资源?​​
  • ​​五、Redis 有哪几种数据淘汰策略?​​
  • ​​六、Redis 官方为什么不提供 Windows 版本?​​
  • ​​七、一个字符串类型的值能存储最大容量是多少?​​
  • ​​八、为什么 Redis 需要把所有数据放到内存中?​​
  • ​​九、Redis集群方案应该怎么做?有哪些方案​​
  • ​​十、Redis 集群方案什么情况下会导致整个集群不可用?​​

一、什么是 Redis?简述它的优缺点。

Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。

因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。

Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个 value 的最大 限制是 1GB,不像 memcached 只能保存 1MB 的数据,因此 Redis 可以用来实现很多有用的功能。

比方说用他的 List 来做 FIFO 双向链表,实现一个轻量级的高性 能消息队列服务,用他的 Set 可以做 高性能的 tag 系统等等。

另外 Redis 也可以对存入的 Key-Value 设置 expire 时间,因此也可以被当作一 个功能加强版的 memcached 来用。 Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。

二、Redis 与 memcached 相比有哪些优势?

1.memcached 所有的值均是简单的字符串,redis 作为其替代者,支持更为丰富的数据类型

2.redis 的速度比 memcached 快很多 redis 的速度比 memcached 快很多

3.redis 可以持久化其数据 redis 可以持久化其数据

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

String、List、Set、Sorted Set、hashes

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

内存。

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

1.noeviction:返回错误当内存限制达到,并且客户端尝试执行会让更多内存被使用的命令。

2.allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。

3.volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。

4.allkeys-random: 回收随机的键使得新添加的数据有空间存放。

5.volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。

6.volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。

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

因为目前 Linux 版本已经相当稳定,而且用户量很大,无需开发 windows 版本,反而会带来兼容性等问题。

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

512M

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

Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。

所以 redis 具有快速和数据持久化的特征,如果不将数据放在内存中,磁盘 I/O 速度为严重影响 redis 的性能。

在内存越来越便宜的今天,redis 将会越来越受欢迎, 如果设置了最大使用的内存,则数据已有记录数达 到内存限值后不能继续插入新值。

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

1.codis

2.目前用的最多的集群方案,基本和 twemproxy 一致的效果,但它支持在节点数量改变情况下,旧节点数据可恢复到新 hash 节点。

redis cluster3.0 自带的集群,特点在于他的分布式算法不是一致性 hash,而是 hash 槽的概念,以及自身支持节点设置从节点。具体看官方文档介绍。

3.在业务代码层实现,起几个毫无关联的 redis 实例,在代码层,对 key 进行 hash 计算,然后去对应 的 redis 实例操作数据。这种方式对 hash 层代码要求比较高,考虑部分包括,节点失效后的替代算法 方案,数据震荡后的自动脚本恢复,实例的监控,等等。

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

有 A,B,C 三个节点的集群,在没有复制模型的情况下,如果节点 B 失败了,那么整个集群就会以为缺少 5501-11000 这个范围的槽而不可用。


标签:P7,Redis,redis,面试,memcached,集群,内存,数据
From: https://blog.51cto.com/u_8238263/6025143

相关文章

  • 互联网大厂(字节、华为)Java EE面试题:Servlet/JSP 部分解析+答案,最强八股文
    文章目录​​1.请列举至少6种javaEE技术,并简述其作用。​​​​解析:​​​​参考答案:​​​​2.在web.xml文件中配置Servlet时,主要配置哪些信息?​​​​解析:​​​​参考答......
  • Redis实现分布式阻塞队列
    1.Redis分布式锁实现原理分布式锁本质上要实现的目标就是在Redis里面占一个“茅坑”,当别的进程也要来占时,发现已经有人蹲在那里了,就只好放弃或者稍后再试。占坑一般是......
  • java面试技巧:Integer和int的那些事⼉
    最近在招聘⾯试的过程中,考察⼀些候选⼈的基础掌握能⼒中发现,还是有⼤多数⼲了有1~3年的开发者在基础这块⼉掌握的不够牢靠,没有去思考过为什么这样做,以及这样做的原因是什么?......
  • 算法面试题
    有一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。1intAdd(intnumber)2{3if(number<=0)4{5......
  • Redis的同步机制
    Redis可以使用主从同步,从从同步。第一次同步时,主节点做一次bgsave,并同时将后续修改操作记录到内存buffer,待完成后将RDB文件全量同步到复制节点,复制节点接受完成后将RDB镜像......
  • Redis 缓存穿透,缓存击穿,缓存雪崩
    缓存击穿缓存击穿指的是缓存中没有数据但数据库中有数据(一般是热点数据缓存时间到期),同一时间大量的并发请求由于读缓存没读到数据,就去数据库去取数据,导致某个时间内数据库......
  • c#的Redis帮助类
    ///<summary>///Redis帮助类///</summary>publicclassRedisHelper:IDisposable{privatestaticreadonlyobjectLocker=newobj......
  • ui设计公司面试时会提哪些问题?-优漫动游
      很多人想要去面试ui设计师,故而想要ui设计公司面试时会提哪些问题?面试前总会有一些忐忑,担心面试官会提出哪些问题,今天小编来为你梳理一下。    一、你做过的最有......
  • redis集群之间数据迁移工具redis-migrate-tool测试
    1、学习背景,四川广电redis分布式缓存存在数据迁移,因此需要迁移对应的数据到新建集群;2、redis-migrate-tool特性1)快速,多线程2)支持异构迁移,支持twemproxy集群,rediscluste......
  • RedisCluster集群模式下master宕机主从切换期间Redis command timed out的问题
     一、异常场景如下表所示,redis集群6个节点分别部署在3台机器上,每台机器分布一个主节点和一个从节点机器redis主节点端口redis从节点端口主机170017004主......