下面要给大家带来的是一整套的redis集群面试题,包含了具体的面试题目和答案,想要来看这方面面试题的小伙伴可以来了解一下。

一、面试题及答案

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

(1)Session共享(单点登录);(2)页面缓存;(3)队列;(4)排行榜/计数器;(5)发布/订阅;

2、Redis主要功能有哪些?

(1)LUA脚本:在事务的基础上,假如,需要在服务端一次性的执行更复杂的操作,那么,这个时候lua就可以上场了。

(2)事务:在大多数的情况之下,我们需要一次执行不止一个的命令,除此之外,还要其同时的成功或者是失败。

redis对事务的支持也是来源于这部分的需求,也就是支持一次性按顺序执行多个命令的能力,并且,保证其原子性。

(3)集群:单台服务器资源的是有上限的,CPU资源和IO资源我们可以通过主从复制,进行读写分离,将一部分CPU和IO的压力转移到从服务器上,这和mysql数据库的主从同步有点类似。

(4)哨兵(Sentinel)和复制(Replication)

(5)持久化:指的是redis会将内存中的数据写入到硬盘当中,在redis重新启动的时候加载这些数据,从而最大限度的降低缓存丢失带来的影响。

3、使用Redis的优势有哪些?

(1)支持string,list,set,sorted set,hash,数据类型丰富

(2)能够用于缓存,消息,按key设置过期时间,过期之后,就会自动删除,特性丰富

(3)数据存在内存当中,和HashMap类似,HashMap的优势就是查找和操作的时间复杂度都是O(1),速度快

(4)支持事务,操作都是原子性(对数据的更改要么全部执行,要么全部不执行)

4、Redis淘汰策略

(1)noenviction:禁止淘汰数据

(2)volatile-lru:从已设置过期的数据集中挑选最近最少使用的淘汰

(3)allkeys-random:从数据集中任意挑选数据淘汰

(4)volatile-ttr:从已设置过期的数据集中挑选将要过期的数据淘汰

(5)allkeys-lru:从数据集中挑选最近最少使用的数据淘汰

(6)volatile-random:从已设置过期的数据集中任意挑选数据淘汰

(4)allkeys-lru:从数据集中挑选最近最少使用的数据淘汰

5、Redis读写分离模型

通过增加Slave DB的数量,读的性能能够线性增长。

为了避免Master DB的单点故障,集群通常都会采用两台Master DB做双机热备,所以整个集群的读和写的可用性都非常高。

读写分离架构的缺陷在于,不论是Master还是Slave,每个节点都必须保存完整的数据,假如在数据量非常大的情况下,集群的扩展能力还是受限于单个节点的存储能力,并且对于Write-intensive类型的应用,读写分离架构并不适合。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

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

LRU算法

7、Redis回收进程是怎样工作的?

一个客户端运行了新的命令,添加了新的数据。

Redi检查内存使用情况,假如大于maxmemory的限制, 那么就依据设定好的策略进行回收。

8、Redis怎样做内存优化?

尽可能使用散列表,散列表使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。

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

Redis并不可以保证数据的强一致性,这也就意味,在实际中集群在特定的条件下可能会丢失写操作。

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

Redis集群预分好16384个桶(哈希槽)

11、Redis常见性能问题有哪些?解决方案

(1)主从复制不要用图状结构,用单向链表结构更为稳定,也就是:Master <- Slave1 <- Slave2 <- Slave3…

这样的结构方便解决单点故障问题,实现Slave对Master的替换。

假如说,Master挂了,那么,就可以立马启用Slave1做Master,其他的保持不变。

(2)Master最好是不要做任何持久化工作。

(3)避免在压力很大的主库上增加从库。

(4)假如数据很重要的话,某个Slave开启AOF备份数据,策略设置为每秒同步一次。

(5)为了主从复制的速度和连接的稳定性,Master和Slave最好是在同一个局域网当中。

12、Redis数据分片模型

为了能够解决读写分离模型的缺陷,可以将数据分片模型应用进来。可以将每个节点看成都是独立的master,之后通过业务实现数据分片。结合上面两种模型,可以将每个master设计成由一个master和多个slave组成的模型。

redis常见面试题有哪些?redis集群面试题及答案整理相关推荐

  1. Redis常见面试题总结

    Redis常见面试题 持久化方式有哪些?有什么区别? redis持久化方案分为RDB和AOF两种. RDB RDB持久化可以手动执行也可以根据配置定期执行,它的作用是将某个时间点上的数据库状态保存到R ...

  2. 七天玩转Redis 第七天打卡 Redis常见面试题及课程总结

    七天玩转Redis 第七天打卡 Redis常见面试题及课程总结 主要总结点: 截止到今天,七天玩转Redis课程就马上结束了,学以致用,那么学会了Redis,在找工作时会有哪些面试官爱问的问题呢? 一 ...

  3. 面经 | Redis常见面试题

    Redis 常见面试题 目录结构: 文章目录 Redis 常见面试题 数据结构 String 哈希 List Set Zset 有序集合 持久化机制 RDB快照 AOF 混合使用 Redis为什么要线 ...

  4. Redis常见面试题你都掌握了没

    前言 缓存知识点一键获取Redis面试题 缓存有哪些类型? 缓存是高并发场景下提高热点数据访问性能的一个有效手段,在开发项目时会经常使用到. 缓存的类型分为: 本地缓存.分布式缓存和多级缓存. 本地缓 ...

  5. Redis常见面试题(缓存击穿、穿透、雪崩)

    Redis常见面试题(缓存击穿.穿透.雪崩) 击穿 场景: 一般由于redis中的数据到期,同时并发用户特别多,此时大量请求压到数据库上. 解决思路: 根据redis是单进程单实例的特性,当高流量进入 ...

  6. Redis常见面试题详解

    文章目录 1. Redis 1.1 Redis可以用来做什么? 1.2 Redis和传统的关系型数据库有什么不同? 1.3 Redis有哪些数据类型? 1.4 Redis是单线程的,为什么还能这么快? ...

  7. 吊打面试官!Redis 常见面试题请收好 | 原力计划

    作者 | 敖丶丙 责编 | Elle 出品 | CSDN 博客 你知道的越多,你不知道的越多 GitHub地址 https://github.com/AobingJava/JavaFamily 已经开 ...

  8. java面试题:Redis常见面试题(实际面试有被问到)

    目录 1.Redis和Memcached相比,有哪些优势? 2.Redis为什么要把数据放到内存中? 3.Redis 为何这么快? 4.为何使用单线程? 5.缓存三大问题以及解决方案? 缓存穿透:查询 ...

  9. 《吊打面试官》系列-Redis常见面试题

    前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难. 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞 ...

最新文章

  1. WPF-002 下拉列表的简单实现
  2. 如何使用Python和Tkinter构建Toy Markdown编辑器
  3. php short_open_tag asp_tags
  4. 第 6 章 本地方法接口
  5. 命令行怎么运行go程序_Go教程32: 编译打包运行程序
  6. php 环信easyui_环信easeui集成:坑总结2018
  7. 在Windows下搭建RocketMQ
  8. 定时器Quartz和插件pageHelper使用
  9. 梦幻家园前37关(iPad)
  10. 基于matlab的电池管理系统开发,基于MATLAB的锂电池组均衡仿真系统设计
  11. 详解线上线下收单业务(一)第三方支付
  12. [转载]基于Servlet的Google Earth之旅
  13. 瑞星杀毒软件卸载方法
  14. PEEKABOO——团队展示
  15. 巢湖学院对口高考成绩查询入口2021,巢湖学院
  16. 阿里云服务器,解析二级域名
  17. Excel插入XactiveX提示出错“不能插入对象”解决
  18. 基于单目和低成本GPS的车道定位方法
  19. [附源码]计算机毕业设计springboot家庭医生签约服务管理系统
  20. squirrelmail 小松鼠的安装和配置

热门文章

  1. android shell强制删除文件夹_别再乱清手机内存了,删除这3个“特殊”文件夹!空间释放8GB...
  2. java使用gridview,java反射,用于GridView
  3. android aptx固件,新增aptX蓝牙发射协议,M5固件首次升级!
  4. c++ linux 线程等待与唤醒_Linux驱动程序基石-POLL机制(附.视频)
  5. 北航 计算机学院 2011级学生会,北航学生会主席在2011级新生开学典礼发言稿.doc...
  6. python socket服务器_记-python socket服务器端四部曲
  7. c99什么意思_C语言中%c,%s分别代表什么意思?
  8. maven添加子工程_Maven建立父子项目和跨项目调用内容的步骤—佳佳小白
  9. linux运行tcl脚本语言,Tool Command Language (Tcl)初体验
  10. AtCoder SoundHound Inc. Programming Contest 2018 E + Graph (soundhound2018_summer_qual_e)