首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第十一章:Redis的集成和简单使用

前言

上几节讲了利用 这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上 和 进行这方面的需求。所以这一章节准备讲下缓存数据库 的集成,同时会介绍下基于 和注解驱动的 的简单使用。

Redis 介绍

大家应该对 应该比较熟悉了。这几年也是大行其道的缓存数据库,目前的 由于使用场景及其存储数据结构的单一(不知道现在是否有改善,现在基本没有接触了),在工作中也使用的少了。引用官网的简介,Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

SpringBoot的Redis集成

0.本章节以上一章节的示例基础上进行集成。所以大家可下载第十章节示例或者在章节末尾直接下载本章节示例。

1.pom依赖

直接引入,相关依赖会自动加载的,这就是 让人愉悦之处呀。

2. 配置加入redis相关配置

配置自动加载类为: ,可在属性文件中点击某属性快捷跳转。注意到其启动类为 。这里就不介绍了,后面会写一篇关于 自动加载配置的文章。

3.一般上通过以上两步就可使用了,但工作中一般上是通过 (默认采用 的序列化,保存key和值时都是通过此序列化策略)接口进行操作,所以这里直接配置了 bean类。RedisConfig.java

4.编写控制类,测试集成是否生效。RedisController.java

5.访问:http://127.0.0.1:8080/swagger-ui.html。 也可直接浏览器输入:

set值

get值

浏览器访问

查看redis记录:

至此, 就集成好了。实际中可根据业务需要进行相关操作,比如缓存session记录,缓存菜单列表等。

Spring Cache 和 redis 使用。

是 框架提供的对缓存使用的抽象类,支持多种缓存,比如 、 等,集成很方便。同时提供了多种注解来简化缓存的使用,可对方法进行缓存。

0.修改 配置类,加入注解 ,同时设置 缓存管理类,这里使用 ,其他的管理类还有: 、 等,默认提供的在类 下,可自行查阅。

1.改造 控制层,引入 等注解。

2.利用 控制页面,新增一个用户,然后获取用户,会发现缓存里已经有此id的用户数据了。

redis查看:

再次获取,会发现这次没有直接访问数据库了,而是直接从缓存读取。大家可在观察下控制台的输出情况(可先清空控制台,然后在请求)。

此时控制台无任何输出,但前端已经获取到值了。

关于SpringCache 注解的简单介绍

@Cacheable:标记在一个方法上,也可以标记在一个类上。主要是缓存标注对象的返回结果,标注在方法上缓存该方法的返回值,标注在类上,缓存该类所有的方法返回值。 参数: value缓存名、 key缓存键值、 condition满足缓存条件、unless否决缓存条件

@CacheEvict:从缓存中移除相应数据。

@CachePut:方法支持缓存功能。与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。

@Caching:多个Cache注解使用,比如新增用户时,删除用户属性等需要删除或者更新多个缓存时,集合以上三个注解。

常用的就以上几个,对于 没使用过,这里就不说明了。

对于对几个注解类的简单使用就结束了,相关的详细用法,比如自定义条件缓存,自定义注解等,这里就不阐述了,请读者自行

SpEL上下文数据

Spring Cache提供了一些供我们使用的SpEL上下文数据,下表直接摘自互联网

总结

本章节主要是对 结合 的集成和简单使用进行了说明,详细的用法,可自行搜索相关资料下,这里就不阐述了。因为对于百分之八十之上的缓存要求基本能满足了。使用缓存时,一定要注意缓存生命周期的控制,不然容易出现数据不一致的情况,谨记!

最后

目前互联网上很多大佬都有 系列教程,如有雷同,请多多包涵了。本文是作者在电脑前一字一句敲的,每一步都是实践的。若文中有所错误之处,还望提出,谢谢。

老生常谈

个人QQ:

微信公众号:

个人博客:https://blog.lqdev.cn

完整示例:chapter-11

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180724G0005Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券