ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis的常见面试题

2022-08-16 01:01:00  阅读:164  来源: 互联网

标签:面试题 缓存 过期 常见 redis 内存 mysql 数据


为什么要用redis

减少了mysql数据库的压力,
在这之前mysql一个人承受,然后要承受大量的数据请求,
大部分都是读操作。而且经常都是重复查一个东西,浪费了很多时间进行磁盘io

redis将数据都存在内存中,而不用去进行磁盘io操作。节省了很多时间

内存和硬盘的区别:

redis数据储存在内存,mysql数据储存在硬盘,所以我们要了解一下内存和硬盘的概念:

  • 内存是计算机中硬盘数据和CPU数据交换的中转站,属于临时存储器,随操作随时改写存储内容,断电后,内存中的信息全部丢失,存储介质是集成块的RAM类型,电子读写,存储容量较小。

  • 硬盘的存储介质是磁存储,靠磁头读写。硬盘可以长期存储数据,不受断电影响。存储容量大。

如何解决redis缓存数据过多

给缓存的内容加上一个过期时间,由应用程序设置
使用随机算法随机筛选出一些缓存,如果过期则删除 (定期删除)
在查询的时候,查到的刚好是过期的缓存数据,则直接删除(被动式触发/惰性删除)
内存不足时,内存淘汰策略
内存淘汰策略
解决方式: 定时删除 + 惰性删除 + 内存淘汰

缓存穿透

接收到请求,发现缓存数据不存在,同时mysql也没有这个数据
这时候每次碰到查这种数据请求的时候都要再次发送给mysql
这时候就要用到: 布隆过滤器

缓存击穿

一个热点数据到了过期时间,删掉的同时 有一大波查询该数据请求刚好发了过来,所以只能将请求发送给mysql

缓存雪崩

就是缓存击穿的升级版。
一大波数据刚好过期,然后同时又接收到了这些数据的大量查询请求,
就将一大波请求发送到了mysql那里。mysql直接干崩了

解决方法: 过期时间分散随机 + 热点数据永不过期
1、让应用程序在 设置缓存过期时间的时候 设置得更加分散,不那么集中,这就不会导致一大波缓存数据在同一时间过期。可以设置随机过期
2、设置热点数据永不过期

遇到电脑突然异常关机导致缓存数据丢失

数据备份

  • RDB
  • AOF
    保存每次查询的日志...

标签:面试题,缓存,过期,常见,redis,内存,mysql,数据
来源: https://www.cnblogs.com/maomao777/p/16590216.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有