当前位置: 首页 > news >正文

Redis-面试问题

1、什么是 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 适合的场景主要局限在较小数据量的高性能操作和运算上。

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

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

(2)、redis 的速度比 memcached 快很多 redis 的速度比 memcached 快很多

(3)、Redis 支持哪几种数据类型? String、List、Set、Sorted Set、hashes

3、Redis 过期策略都有哪些? LRU算法知道吗? 写一下 java代码实现?

1、过期策略:

定时过期(key--定时器),惰性过期:只有使用 key 时才判断 key 是否已过期,过期则清除。定期过期:设定时间过期。

4、缓存穿透、缓存击穿、缓存雪崩解决方案?

(1)、缓存穿透

指查询一个一定不存在得数据,如果从存储层查不到数据则不写入缓存,这将导致不存在得数据每次请求都要到DB去查询,可能导致 DB 挂掉。

解决方案:1、查询返回得数据为空,仍把这个空结果进行缓存,但过期时间会比较短;2、布隆过滤器:将所有存在的数据哈希到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对 DB的查询。

(2)、缓存击穿:

对于设置了过期时间的 key,缓存在某个时间点过期的时候,恰好这时间点对这个 key 有大量的并发请求过来,这些请求发现缓存过期一般都会从后端 DB 加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把 DB 压垮。

解决方法:1、使用互斥锁:当缓存失效时,不立即去 load db,先使用 Redis 的 setnx 去设置一个互斥锁,当操作成功返回时再进行 load db 的操作并回设缓存,否则重试 get 缓存的方法。2、永远不过期:物联不过期,但逻辑工期(后台异步线程刷新)

(3)、缓存雪崩:

设置缓存时采用了相同的过期时间,导致缓存某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。与缓存击穿的区别:雪崩是很多 key ,击穿是某一个 key 缓存。

解决方法:将缓存失效时间分散开,比如可以在原有的失效时间基础上增加一个随机值,比如1-5分钟随机,这样每一个缓存的过期时间重复率就会降低,就很难引发集体失效的事情。

http://www.dtcms.com/a/577667.html

相关文章:

  • 小型网站开发用什么语言大型h5手游平台
  • 徐州网站建设工作室中国建筑官网首页
  • MyBatis注解的运用于条件搜索实践
  • 搭建网站 软件下载吴忠市建设局官方网站
  • 工厂方法模式:从理论到实战指南
  • 微信小程序 点击地图后弹出一个模态框
  • 3.6.6【2021统考真题】
  • 《道德经》第五十章
  • 分类问题的基石:逻辑回归(Logistic Regression)
  • 机器学习实践项目(二)- 房价预测增强篇 - 特征工程二
  • Jenkins自动部署CI/CD
  • 【unity】PowerVR GE8320系列GPU渲染问题分析
  • 做网站设计需要哪些知识网页游戏排行榜回合制
  • 从理论到实践:深度解析昇腾CANN训练营中的Ascend C编程模型
  • Java TreeMap与HashTable深度解析:有序映射与线程安全映射
  • 什么是大数据,为什么它很重要?
  • asp网站配置伪静态做网站的
  • 顺序表vector--------杨辉三角
  • 阿里云 RDS PostgreSQL 可观测最佳实践
  • JVM堆的管理者——CodeCache
  • 目前哪个网站建设的最好wordpress 模板引入文件
  • Data+AI 时代,对象存储为 AI 应用注入全局动力
  • linux:io基础
  • WSL+openEuler云原生实践:Docker全流程部署与多容器编排深度评测
  • 个人笔记|单臂路由,子接口,VLAN标签
  • 罗湖商城网站设计推荐小程序服务开发公司
  • 赣州网站建设jx25网页开发用到的技术
  • 企业服务在产业平台领域的渗透率现状和发展未来
  • 【P27 回归算法及应用实践】有监督的机器学习、分类与回归、一元线性回归、最小二乘法、多元回归与梯度下降、学习率
  • Spring Boot 如何支持国际化