Redis

一、redis的数据类型

String
list
hash
set
sortedSet

二、redis的穿透

key对应的数据在数据库中不存在。每次针对此key的请求从缓存获取不到。请求都会到数据库,从而可能击垮数据库。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有
处理方式:
1、布隆过滤器
2、缓存空对象:当数据查询时,未查询到值时候返回一个空值并存到缓存中,设置一个较短的过期时间,之后访问数据将会从缓存中获取。从而不去数据库获取。

三、redis的击穿

key对应的数据库中存在,但是在redis中过期了,此时若有大量并发请求过来,这些请求发现缓存数据过期了,则会从数据库加载数据并且回设到缓存,这个时候并发的请求可能会将数据库击穿
处理方式:
1、设置key永久不失效

四、redis的雪崩

当缓存服务器大量缓存集中在某个时间失效,这样失效的时候,会对后端带来很大压力,导致redis雪崩
处理方式:
1、设置key永久不失效
2、设置key缓存失效时间尽可能错开

五、redis过期删除策略

1、定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量
2、惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存

六、redis回收使用算法

LRU算法

七、redis为何引入

  1. 提高性能
  2. 处理重复请求

读少:不引入redis
读多:适当引入redis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值