redis缓存
记录redis缓存的相关技术
Tronhon
一个正在努力的小开发仔,不定期更新博客内容,喜欢的记得关注我哦!
展开
-
缓存和数据库的数据一致性问题
前言:不管是先写MySQL数据库,再删除Redis缓存;还是先删除缓存,再写库,都有可能出现数据不一致的情况。举一个例子:1.如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则去数据库中读取数据写入缓存,此时缓存中为脏数据。2.如果先写了库,在删除缓存前,写库的线程宕机了,没有删除掉缓存,则也会出现数据不一致情况。因为写和读是并发的,没法保证顺序,就...原创 2020-04-22 23:04:29 · 449 阅读 · 0 评论 -
Redis内存淘汰策略工作方式详解
Redis前言Redis作为当前最常用的开源内存数据库,性能十分高,据官方数据表示Redis读的速度是110000次/s,写的速度是81000次/s 。而且Redis支持数据持久化,众多数据结构存储,master-slave模式数据备份等多种功能。但是长期将Redis作为缓存使用,难免会遇到内存空间存储瓶颈,当Redis内存超出物理内存限制时,内存数据就会与磁盘产生频繁交换,使Redis性能急...原创 2020-04-21 14:31:25 · 121 阅读 · 0 评论 -
Redis缓存和数据库数据的一致性的实现方案
一、前言:先来研究两个问题1、淘汰缓存还是更新缓存?2、先淘汰缓存还是先更新数据库?二、答案如下:1、选择淘汰缓存原因:数据可能为简单数据,也可能为较复杂的数据,复杂数据进行缓存的更新操作,成本较高,因此一般推荐淘汰缓存2、选择先淘汰缓存,再更新数据库原因:假如先更新数据库,再淘汰缓存,假如缓存淘汰失败,那么后面的请求都会得到脏数据,直至缓存过期。假如先淘汰缓存再更新数据库,如果数...原创 2020-04-20 21:11:34 · 854 阅读 · 0 评论 -
Redis—校招、实习常见面试题汇总(附答案)
1.redis 缓存穿透,缓存雪崩,缓存击穿(1)缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。(2)缓存雪崩缓存雪崩,是指在某一个时间段,缓存集中过期失效。产生雪崩的原因之一,比如在写本文的时候,马上就要到双...原创 2020-04-20 21:07:26 · 1054 阅读 · 1 评论 -
怎么解决缓存穿透与缓存雪崩
一.缓存穿透:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决办法:1.布隆过滤对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bi...原创 2020-04-19 21:04:53 · 394 阅读 · 0 评论 -
分布式缓存与一致性hash简介
分布式缓存为什么要使用分布式缓存高并发环境下,例如典型的淘宝双11秒杀,几分钟内上亿的用户涌入淘宝,这个时候如果访问不加拦截,让大量的读写请求涌向数据库,由于磁盘的处理速度与内存显然不在一个量级,服务器马上就要宕机。从减轻数据库的压力和提高系统响应速度两个角度来考虑,都会在数据库之前加一层缓存,访问压力越大的,在缓存之前就开始CDN拦截图片等访问请求。并且由于最早的单台机器的内存资源以及承载...原创 2019-11-16 21:33:05 · 312 阅读 · 0 评论 -
解决Windows环境下redis的下载及安装配置的问题
序:分享一下使用的redis安装教程以及常见安装问题的解决一、下载:下载地址: https://github.com/MicrosoftArchive/redis/releases根据系统下载的版本:以(64位为例)下载后一般解压到根目录下:如(E:\Redis-x64-3.2.100)二、安装:打开cmd命令窗口,使用命令进行安装和注册redis到window服务安装命令:redi...原创 2020-03-29 23:52:50 · 205 阅读 · 0 评论 -
redis缓存(含二级)以及分布式相关
Redis过期删除采用的是定期删除,默认是每100ms检测一次,遇到过期的key则进行删除,这里的检测并不是顺序检测,而是随机检测。那这样会不会有漏网之鱼?显然Redis也考虑到了这一点,当我们去读/写一个已经过期的key时,会触发Redis的惰性删除策略,直接回干掉过期的key内存淘汰是指用户存储的一部分key是可以被Redis自动的删除,从而会出现从缓存中查不到数据的情况。加入我们的服务器内...原创 2019-10-29 18:16:11 · 938 阅读 · 0 评论