Redis 缓存
Posted 二师弟&
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 缓存相关的知识,希望对你有一定的参考价值。
缓存短信验证码
实现思路:
实现移动端手机验证码登录,随机生成的验证码保存在 HttpSession 中的。
现在将验证码缓存在 redis 中,具体实现思路:
- 在服务端 UserController 中注入RedisTemplate 对象,用于操作Redis
- 在服务端 UserController 的 sendMsg 方法中,将随机生成的验证码缓存到 Redis 中,并设置有效期5分钟
- 在服务端 UserController 的login方法中,从 Redis 中获取缓存的验证码,如果登录成功则删除 Redis 中的验证码
缓存查询列表数据
实现思路:
移动端菜品查新功能:对应的服务器方法为 DishController 的list方法,此方法会根据前端提交的查询条件进行数据库查询操作。在高并发的情况下,频繁查询数据库会导致系统性能下降,服务端响应时间增长。现在对需要对此方法进行缓存优化,提高系统的性能。
具体的实现思路如下:
- 改造 DishController 的 list 方法,先从 Redis 中获取菜品数据,如果有则直接返回,无需查询数据库;如果没有则查询数据库,并将查询到的菜品数据放入 Redis。
- 改造 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 使用方式
以上是关于Redis 缓存的主要内容,如果未能解决你的问题,请参考以下文章