前言

说到面试,那就要好好准备下,不准备充分的面试,完全是浪费时间,更是对自己的不负责。那么面试的知识点是哪些呢?

经过大多数粉丝面试过后的反馈,Java面试重点如下:

数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、性能优化、设计模式、Spring框架:分布式相关:Redis、一致Hash算法、分布式存储、负载均衡等,微服务以及Docker容器等。
在这由于文字很多,我总结了java面试所涉及到的常问范围及常问面试题免费分享给大家,文末有获取地址!

今天下面就列举的是Redis的相关面试问题,看看你是否能答出来。

Redis高级面试专题

 

* 什么是 Redis?简述它的优缺点?
* Redis与memcached相比有哪些优势?
* Redis支持哪几种数据类型?
* Redis主要消耗什么物理资源?
* Redis有哪几种数据淘汰策略?
* Redis官方为什么不提供Windows版本?
* 一个字符串类型的值能存储最大容量是多少?
* 为什么Redis需要把所有数据放到内存中?
* Redis集群方案应该怎么做?都有哪些方案?
* Redis集群方案什么情况下会导致整个集群不可用?
* MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
* Redis有哪些适合的场景?
* Redis支持的Java客户端都有哪些?官方推荐用哪个?
* Redis和Redisson有什么关系?
* Jedis与Redisson对比有什么优缺点?
* 说说Redis哈希槽的概念?
* Redis集群的主从复制模型是怎样的?
* Redis集群会有写操作丢失吗?为什么?
* Redis集群之间是如何复制的?
* Redis集群最大节点个数是多少?
* Redis集群如何选择数据库?
* Redis中的管道有什么用?
* 怎么理解Redis事务?
* Redis事务相关的命令有哪几个?
* Rediskey的过期时间和永久有效分别怎么设置?
* Redis如何做内存优化?
* Redis回收进程如何工作的?
* 加锁机制
* 锁互斥机制
* watchdog自动延期机制
* 可重入加锁机制
* 释放锁机制
* 上述Redis分布式锁的缺点
* 使用过Redis分布式锁么,它是怎么实现的?
* 使用过Redis做异步队列么,你是怎么用的?有什么缺点?
* 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
面试题答案

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

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

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

Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。比方说用他的List来做FIFO双向链表,实现一个轻量级的高性能消息队列服务,用他的Set可以做高性能的tag系统等等。

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

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

* memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
* redis的速度比memcached快很多redis的速度比memcached快很多
* redis可以持久化其数据redis可以持久化其数据
3、Redis支持哪几种数据类型?

String、List、Set、SortedSet、hashes

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

内存。

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

* noeviction:返回错误当内存限制达到,并且客户端尝试执行会让更多内存被使用的命令。
* allkeys-lru:尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。
* volatile-lru:尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。
* allkeys-random:回收随机的键使得新添加的数据有空间存放。
* volatile-random:回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。
* volatile-ttl:回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。
由于篇幅限制,太长看下去会很乏味,也会影响阅读体验,下面展现将以图片形式展示。获取原文件以及更多资源请

需要获取得话麻烦一键三连之后看下图小助理的微信:(vip1024x)添加即可免费获取到哦

对文章中学习脑图感兴趣的可以

需要获取得话麻烦一键三连之后看下图小助理的微信:(vip1024x)添加即可免费获取到哦

需要获取得话麻烦一键三连之后看下图小助理的微信:(vip1024x)添加即可免费获取到哦

 

技术
©2019-2020 Toolsou All rights reserved,
Java开发2020年最新常见面试题整理【Spring源码分析】42-@Conditional详解element-ui踩坑记录神仙面试宝典你有了吗?半月看完25大专题,居然斩获阿里P8offer使用css样式设计一个简单的html登陆界面XCTF攻防世界web新手练习_ 9_command_executionJS中的解构赋值的详解与具体用途Python Web 框架elementui 穿梭框 el-transfer 展示列表内容文字过长ConcurrentHashMap实现原理及源码解析