面试题:redis

90 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

  • 个人简介:微信公众号关注:SteveCode。为您分享更多的知识学术。生于忧患死于安乐
  • 专注Java技术干货分享,Java基础技术、数据结构、相关工具、Spring全家桶、intellij idea......

文章面试题整理出自:Java 最常见的 200+ 面试题:面试必备_Java中文社群的博客-CSDN博客_java面试题

十八、Redis

179.redis 是什么?都有哪些使用场景?

场景:

180.redis 有哪些功能?

主从复制

哨兵模式

持久化

集群

基于本机内存缓存

www.cnblogs.com/jxxblogs/p/…

181.redis 和 memecache 有什么区别?

www.sohu.com/a/234779580…

相同点:内存数据库

不同点:

数据类型上来看:

memecache:支持String类型,key\value的数据结构

redis:支持多种数据结构

mamacache可以缓存视频与图片。

持久化:mamacachae将查询出来的数据保存到内存中。服务宕机之后,数据无法恢复

redis:有持久化机制:Aof、Rdb。可以将数据持久化到磁盘上。可以恢复数据

 

182.redis 为什么是单线程的?

因为单线程操作效率是最高,对这块内存的数据进行多次读写的时候,都是在一个CPU上完成的,所以它是单线程处理这个事

183.什么是缓存穿透?怎么解决?

就查一条数据数据库中也没有,redis里也没有的数据。高并发的访问这一条数据。导致服务器宕机。

解决:查不到就返回null、布隆过滤

184.redis 支持的数据类型有哪些?

List String 、Set、ZSet、Hash

185.redis 支持的 java 客户端都有哪些?

jedis、redisson

186.jedis 和 redisson 有哪些区别?

jedis是Java实现客户端,有比较全面的额redis指令。

redisson适用与分布式。

jedis:使用阻塞io

redisson 使用netty

187.怎么保证缓存和数据库数据的一致性?

不一致原因:

1.     数据库有数据,缓存没有数据;

2.     数据库有数据,缓存也有数据,数据不相等;

3.     数据库没有数据,缓存有数据。

先删除缓存,在更新数据库。

在增删改的时候都删除一次缓存。

188.redis 持久化有几种方式?

Aof(日志的方式)

Rdb(每隔一段时间进行保存一次数据到磁盘上)

189.redis 怎么实现分布式锁?

190.redis 分布式锁有什么缺陷?

容易出现缓存雪崩、缓存击穿、缓存一数据库双写不一致性

191.redis 如何做内存优化?

192.redis 淘汰策略有哪些?

设置过期时间:最近最少未使用

已经快到过期时间

没有过期时间:最近最少未使用

一直未使用

随机访问,淘汰数据

一直不淘汰,超过报错

193.redis 常见的性能问题有哪些?该如何解决?