Spring Boot集成Redis实战操作
最近在使用Spring Boot,发现其功能真是强大,可以快速的集成很多的组件功能,非常方便:
今天就来介绍下,如何集成Redis。
定义
Redis 是一个高性能的key-value数据库。它支持存储的value类型很多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。
以下是Redis的一些优点。
异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作。
支持丰富的数据类型 - Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等。这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决。
操作具有原子性 - 所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新的值。
多实用工具 - Redis是一个多实用工具,可用于多种用例,如:缓存,消息队列(Redis本地支持发布/订阅),应用程序中的任何短期数据,例如,web应用程序中的会话,网页***计数等。
如何搭建?
一.加入Redis相关依赖
二、application.properties中加入redis相关配置
在@Configuration或者集成了这个注解的注解标识的类中声明一个Redis的bean,本例是在入口类上声明的Bean:
在Controller里注入StringRedisTemplate:
启动浏览器访问:
以上是手动进行redis的操作,那如何进行自动的的缓存操作呢?
在启动类中添加注解
@EnableCaching会为每个bean中被 @Cacheable, @CachePut and @CacheEvict修饰的public方法进行缓存操作。
缓存的用法
这个方法在userId相同形同的情况下,***次调用的时候会执行方法,以后每次在调用的时候会读取缓存中的数据。
缓存的注解介绍:
@Cacheable
这个注解,会每次先检查是否执行过这个方法,在从缓存数据库中查看key是否相等,如果找到了,从缓存中读取,没有匹配的那么执行该方法,将结果缓存。
缓存都是通过key-value进行储存的,value或cacheNames必须指定(value是cacheNames的别名),指定多个value用(value = {"value1", "value2"})如果没有指定key,spring会提供一个默认的KeyGenerator,这个KeyGenerator根据参数生成key,如果方法没有参数返回KeyGenerator.EMPTY,如果有一个参数返回这个实例,如果有多个参数返回包含这些参数的SimpleKey。可以通过继承CachingConfigurerSupport自己指定KeyGenerator,类上加@Configuration注解。也可以像上面那样自己指定key,需要了解SPEL表达式。
多线程的情况下,可能同时会有多个线程同时进入一个没被缓存过的方法,这样会导致多个线程都会执行一遍方法,sync="true"会将***次计算返回值的这个方法lock,计算完成后将结果缓存
备注:Redis最为常用的数据类型主要有以下:
- String
- Hash
- List
- Set
- Sorted set
- pub/sub
- Transactions
最近一直在使用Spring Boot,想一起学习的关注我吧!
相关文章
- redis集群管理工具HHDBCS
- “后红海”时代,大数据体系到底是什么?-中篇
- RedisAssistant:一款Redis可视化管理工具
- 基于 MaxCompute 的实时数据处理实践
- Docker容器启动时初始化Mysql数据库
- Select for update使用详解
- PromQL之选择器和运算符
- 在云迁移期间提高数据安全性的7个步骤
- MongoDB入门(特点,使用场景,命令行操作,SpringData-MongoDB)
- 使⽤Footprint Analytics 对⽐特币进行数据分析
- 计算机网络 TCP 协议总结
- jPom定时备份数据库
- SAP S/4HANA Group Reporting 功能概述
- Centos7安装MongoDB
- 【redis】客户端缓存实例
- MySQL算术/比较/逻辑/位/运算符与正则全解
- 轻量级代码生成器加测试数据生成器
- LoadRunner脚本编写
- SQL概述及规范
- MySQL的在线文档