redis缓存 springCache注解使用方式 及实战使用

使用redis缓存数据的代码应用及使用场景

提需求:

 

  1. 用户登录 输入 电话号码和 验证码。验证码放到session 里面

页面输入验证码 和 session 里面的验证码进行比较

优化:

将上述的验证码  发送时 放到 redis 进行缓存

页面输入验证码 和 redis里面的验证码进行比较,同时设置验证码的失效时间 5分钟

 

原本使用mysql存取验证码的代码

 使用redis缓存验证码并且进行比对

 

2.原来 页面的菜品分类查询菜品信息 是从 mysql 数据库查询的

优化:

将上述的菜品分类 的菜品信息 放入到redis 中进行缓存(缓存的数据类型自己决定)

String value = RedisTemplate.get(“key”)

If(value == null){

从mysql 中去查询数据

将mysql 中的数据 缓存到 redis 中

}

Return value;

3.修改商家后台数据,导致用户端数据不匹配

Redis 和 mysql 缓存数据一致性的问题?

优化:新增 和 修改的商家数据 的时候 将redis 缓存数据清理掉

保持代码一致性的逻辑

 需要配置注入的序列化

redisTemplate ---à 可以存对象 key--à对象 (加上配置文件可以序列化)

StringRedisTemplate--à可以存字符串 key--à字符串

  springCache注解使用方式 -----整合redis ------- 简化它得业务 

 

不使用第三方 redis 数据库产品

默认 使用的是 本地对象进行缓存 ConcurrentHashMap  数据

/**

     * CachePut:将方法返回值放入缓存

     * value:缓存的名称,每个缓存名称下面可以有多个key

     * key:缓存的key

     */

@CachePut(value = "userCache",key = "#user.id")

/**

     * CacheEvict:清理指定缓存

     * value:缓存的名称,每个缓存名称下面可以有多个key

     * key:缓存的key

     */

    @CacheEvict(value = "userCache",key = "#id")

@CacheEvict(value = "userCache",key = "#user.id")

/**

* Cacheable:在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中

* value:缓存的名称,每个缓存名称下面可以有多个key

* key:缓存的key

* condition:条件,满足条件时才缓存数据

* unless:满足条件则不缓存

*/

@Cacheable(value = "userCache",key = "#id",condition = "#result != null")

@Cacheable(value = "userCache",key = "#id",unless = "#result == null")

@Cacheable(value = "userCache",key = "#user.id + '_' + #user.name")

导入pom文件  这个是四个注解的jar包

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-cache</artifactId>

</dependency>

Redis依赖

<dependency>

     <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

Yml文件的配置

spring:

  redis:

    host: 127.0.0.1

    port: 6379

    password: root@123456  #密码看有没有设置

    database: 0     #代表0号库

  cache:

    redis:

      time-to-live: 1800000   #设置缓存过期时间,可选

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值