栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 = "userCache",key = "#user.id")

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

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

@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包

    org.springframework.boot

    spring-boot-starter-cache

Redis依赖

     org.springframework.boot

     spring-boot-starter-data-redis

Yml文件的配置

spring:

  redis:

    host: 127.0.0.1

    port: 6379

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

    database: 0     #代表0号库

  cache:

    redis:

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

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021132.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号