Spring Boot集成Redis实战操作

开发 后端 其他数据库 Redis
最近在使用Spring Boot,发现其功能真是强大,可以快速的集成很多的组件功能,非常方便。

最近在使用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,想一起学习的关注我吧! 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2020-07-14 11:00:12

Spring BootRedisJava

2020-09-02 17:28:26

Spring Boot Redis集成

2017-04-17 10:35:40

Spring BooRedis 操作

2024-01-30 08:01:15

RabbitMQ业务逻辑应用场景

2020-04-23 15:59:04

SpringKafka集群

2023-01-10 07:52:15

2021-05-18 07:30:36

开发Spring Boot日志

2019-12-03 11:00:08

spring bootspring-kafkJava

2021-01-05 05:36:39

设计Spring Boot填充

2021-12-28 11:13:05

安全认证 Spring Boot

2024-01-16 08:17:29

Mybatis验证业务

2022-07-11 09:00:37

依赖配置文件Mybati

2019-03-28 11:07:56

Spring BootRedis缓存

2021-01-07 14:06:30

Spring BootJUnit5Java

2024-01-02 07:04:23

2021-07-12 07:08:52

Spring Boot集成框架

2020-07-15 16:50:57

Spring BootRedisJava

2023-12-14 13:28:00

Spring流程Web

2021-03-10 09:54:06

Redis分布式

2021-08-26 11:00:54

Spring BootJUnit5Java
点赞
收藏

51CTO技术栈公众号