redis常见面试题有哪些?redis集群面试题及答案整理
下面要给大家带来的是一整套的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集群面试题及答案整理相关推荐
- Redis常见面试题总结
Redis常见面试题 持久化方式有哪些?有什么区别? redis持久化方案分为RDB和AOF两种. RDB RDB持久化可以手动执行也可以根据配置定期执行,它的作用是将某个时间点上的数据库状态保存到R ...
- 七天玩转Redis 第七天打卡 Redis常见面试题及课程总结
七天玩转Redis 第七天打卡 Redis常见面试题及课程总结 主要总结点: 截止到今天,七天玩转Redis课程就马上结束了,学以致用,那么学会了Redis,在找工作时会有哪些面试官爱问的问题呢? 一 ...
- 面经 | Redis常见面试题
Redis 常见面试题 目录结构: 文章目录 Redis 常见面试题 数据结构 String 哈希 List Set Zset 有序集合 持久化机制 RDB快照 AOF 混合使用 Redis为什么要线 ...
- Redis常见面试题你都掌握了没
前言 缓存知识点一键获取Redis面试题 缓存有哪些类型? 缓存是高并发场景下提高热点数据访问性能的一个有效手段,在开发项目时会经常使用到. 缓存的类型分为: 本地缓存.分布式缓存和多级缓存. 本地缓 ...
- Redis常见面试题(缓存击穿、穿透、雪崩)
Redis常见面试题(缓存击穿.穿透.雪崩) 击穿 场景: 一般由于redis中的数据到期,同时并发用户特别多,此时大量请求压到数据库上. 解决思路: 根据redis是单进程单实例的特性,当高流量进入 ...
- Redis常见面试题详解
文章目录 1. Redis 1.1 Redis可以用来做什么? 1.2 Redis和传统的关系型数据库有什么不同? 1.3 Redis有哪些数据类型? 1.4 Redis是单线程的,为什么还能这么快? ...
- 吊打面试官!Redis 常见面试题请收好 | 原力计划
作者 | 敖丶丙 责编 | Elle 出品 | CSDN 博客 你知道的越多,你不知道的越多 GitHub地址 https://github.com/AobingJava/JavaFamily 已经开 ...
- java面试题:Redis常见面试题(实际面试有被问到)
目录 1.Redis和Memcached相比,有哪些优势? 2.Redis为什么要把数据放到内存中? 3.Redis 为何这么快? 4.为何使用单线程? 5.缓存三大问题以及解决方案? 缓存穿透:查询 ...
- 《吊打面试官》系列-Redis常见面试题
前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难. 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞 ...
最新文章
- WPF-002 下拉列表的简单实现
- 如何使用Python和Tkinter构建Toy Markdown编辑器
- php short_open_tag asp_tags
- 第 6 章 本地方法接口
- 命令行怎么运行go程序_Go教程32: 编译打包运行程序
- php 环信easyui_环信easeui集成:坑总结2018
- 在Windows下搭建RocketMQ
- 定时器Quartz和插件pageHelper使用
- 梦幻家园前37关(iPad)
- 基于matlab的电池管理系统开发,基于MATLAB的锂电池组均衡仿真系统设计
- 详解线上线下收单业务(一)第三方支付
- [转载]基于Servlet的Google Earth之旅
- 瑞星杀毒软件卸载方法
- PEEKABOO——团队展示
- 巢湖学院对口高考成绩查询入口2021,巢湖学院
- 阿里云服务器,解析二级域名
- Excel插入XactiveX提示出错“不能插入对象”解决
- 基于单目和低成本GPS的车道定位方法
- [附源码]计算机毕业设计springboot家庭医生签约服务管理系统
- squirrelmail 小松鼠的安装和配置
热门文章
- android shell强制删除文件夹_别再乱清手机内存了,删除这3个“特殊”文件夹!空间释放8GB...
- java使用gridview,java反射,用于GridView
- android aptx固件,新增aptX蓝牙发射协议,M5固件首次升级!
- c++ linux 线程等待与唤醒_Linux驱动程序基石-POLL机制(附.视频)
- 北航 计算机学院 2011级学生会,北航学生会主席在2011级新生开学典礼发言稿.doc...
- python socket服务器_记-python socket服务器端四部曲
- c99什么意思_C语言中%c,%s分别代表什么意思?
- maven添加子工程_Maven建立父子项目和跨项目调用内容的步骤—佳佳小白
- linux运行tcl脚本语言,Tool Command Language (Tcl)初体验
- AtCoder SoundHound Inc. Programming Contest 2018 E + Graph (soundhound2018_summer_qual_e)