Redis 缓存

Posted 二师弟&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 缓存相关的知识,希望对你有一定的参考价值。

缓存短信验证码

实现思路:

实现移动端手机验证码登录,随机生成的验证码保存在 HttpSession 中的。

现在将验证码缓存在 redis 中,具体实现思路:

  1. 在服务端 UserController 中注入RedisTemplate 对象,用于操作Redis
  2. 在服务端 UserController 的 sendMsg 方法中,将随机生成的验证码缓存到 Redis 中,并设置有效期5分钟
  3. 在服务端 UserController 的login方法中,从 Redis 中获取缓存的验证码,如果登录成功则删除 Redis 中的验证码

缓存查询列表数据

实现思路:

移动端菜品查新功能:对应的服务器方法为 DishController 的list方法,此方法会根据前端提交的查询条件进行数据库查询操作。在高并发的情况下,频繁查询数据库会导致系统性能下降,服务端响应时间增长。现在对需要对此方法进行缓存优化,提高系统的性能。

具体的实现思路如下:

  1. 改造 DishController 的 list 方法,先从 Redis 中获取菜品数据,如果有则直接返回,无需查询数据库;如果没有则查询数据库,并将查询到的菜品数据放入 Redis。
  2. 改造 DishController 的 save 和 update 方法,加入清理缓存的逻辑

注意:

在使用缓存的过程中,要注意保证数据库中的数据和缓存中的数据保持一致,如果数据库中的数据发生变化,需要及时清理缓存数据。

Spring Cache 可以对不同的缓存技术进行整合

spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。

spring Cache 提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManage接口来统一不同的缓存技术。

CacheManger是spring提供的各种缓存技术抽象接口。

针对不同的缓存技术需要实现不同的CacheManager:

CacheManager描述
EhCacheCacheManager使用EhCache作为缓存技术
GuavaCacheManager使用Google的GuavaCache作为缓存技术
RedisCacheManager使用Redis作为缓存技术

spring Cache 常用注解

注解注解说明
@EnableCacheing开启缓存注解功能
@Cacheable在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中
@CachePut将方法的返回值放到缓存中
@CacheEvict将一条或多条数据从缓存中删除

在spring boot 项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用@EnableCacheing 开启缓存支持即可。

eg:

使用Redis作为缓存技术,只需导入Spring data Redis 的maven 坐标即可。

spring Cache 使用方式

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于Redis 缓存的主要内容,如果未能解决你的问题,请参考以下文章

Redis学习笔记24——替换策略:缓存满了怎么办

redis和mysql数据不一致问题如何解决?

Redis缓存详解

Redis 缓存雪崩缓存击穿缓存穿透 解决方案

ehcahe + redis 实现多级缓存

redis缓存的的使用