springboot通过注解使用redis缓存以及分布式锁

springboot通过注解使用redis缓存以及分布式锁

1. springboot通过注解使用redis缓存

  1. 加入缓存的配置类
    在这里插入图片描述

  2. 在相应的方法上加入缓存注解(简单测试,忽略细节)
    在这里插入图片描述
    controller层
    在这里插入图片描述

  3. 启动缓存注解
    在这里插入图片描述
    用Postman软件测试
    此时数据库数据有
    在这里插入图片描述
    缓存为空!!
    在这里插入图片描述
    测试查询
    第一次查询
    在这里插入图片描述
    在这里插入图片描述
    缓存中也存放了一份
    在这里插入图片描述
    然后清空控制台
    在这里插入图片描述
    在这里插入图片描述
    测试新增
    在这里插入图片描述
    在这里插入图片描述
    查询一下
    在这里插入图片描述
    查看缓存
    在这里插入图片描述
    发现查询的时候将数据放到了缓存中

测试修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试删除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 分布式锁

常见的加锁方式有两种

synchronized: 可以加在方法上,方法体内,类上。 自动获取锁,自动释放锁。 不会造成死锁。 
lock: 加在方法体内。 手动获取锁 手动释放锁。如果出现异常而没有手动释放锁,则造成死锁。

分布式锁

使用redis中的setNx判断是否获取锁资源 使用del释放锁资源

例子
在这里插入图片描述

3. redis缓存穿透处理方法

缓存穿透:缓存中没有该数据并且数据库中也没有该数据, 这时如果有大量的恶意请求来访问这种数据时,这些请求会穿过缓存, 到达数据库。

处理方法:
1. 如果数据库中不存在该数据时,往缓存中存放一个空对象。该对象什么也不做。(最简单的方法,但是缓存中会存在大量的冗余数据。可以设置很短的过期时间)。 
2. 使用布隆过滤器。理解为一个容器 把数据库中的所有数据id放入到布隆过滤器中,如下图

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值