快速入门 – Spring Boot 集成 Redis 配置及使用

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 快速入门 – Spring Boot 集成 Redis 配置及使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

一、Spring Boot 集成 Redis

1.1、添加 redis 依赖

1.2、配置 redis

二、 使用 Java 代码操控 Redis 

2.1、手动操作 redis

2.2、使用注解操作 redis 

2.2.1、存储缓存

2.2.2、读取缓存

2.2.3、更新缓存

2.3.4、删除缓存


一、Spring Boot 集成 Redis


1.1、添加 redis 依赖

快速入门 - Spring Boot 集成 Redis 配置及使用

或将以下配置添加到 pom.xml中:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

1.2、配置 redis

# 基础配置
spring.redis.database=0 # 0也是默认值,表示你要操控的 Redis 上的哪个数据库
spring.redis.port=6379  # 6379也是默认值,表示 Redis 端口
spring.redis.host=      # 这里填写你的服务器地址
# 可省略
spring.redis.lettuce.pool.min-idle=5
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=1ms
spring.redis.lettuce.shutdown-timeout=100ms

二、 使用 Java 代码操控 Redis 


2.1、手动操作 redis

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RedisController {

    //引入 redis
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    /**
     * 存储
     * @return
     */
    @RequestMapping("/set")
    public String setRedis() {
        //存储 key-value 键值对: "username"-"jaychou"
        stringRedisTemplate.opsForValue().set("username", "jaychou");
        return "redis 存储成功!";
    }

    /**
     * 读取
     * @return
     */
    @RequestMapping("/get")
    public String getRedis() {
        //通过 key 值读取 value
        String result = stringRedisTemplate.opsForValue().get("username");
        return result;
    }

}

执行结果如下:

 快速入门 - Spring Boot 集成 Redis 配置及使用

2.2、使用注解操作 redis 

使用注解操作 redis 总共需要两个步骤:

  1. 在启动类上添加全局注解缓存。
  2. 使用 @Cacheable 、@CachePut、@CacheEvict 注解操作 Redis。

具体的如下:

首先,在 DemoApplication 类下加注释如下:

@SpringBootApplication
@EnableCaching //开启全局注解缓存

2.2.1、存储缓存

使用 @Cacheable 注解实现缓存的存储和读取,并搭配以下连个属性一起使用

  • value: 这个参数是必须要的,是存储缓存数据的包名。
  • key: 可选。要使用SpEL表达式(”#参数名”表示你要进行缓存的参数,”+”是参数之间的分割符),这就表明了你要缓存的数据是什么。

例如我要存储用户名和用户 id 到缓存中

    /**
     * 存入或读取缓存
     * @param id
     * @param username
     * @return
     */
    @RequestMapping("/get")
    @Cacheable(value = "spring.cache", key = "#id+#username")
    public String get(String id, String username) {
        //非空校验
        if(!StringUtils.hasLength(id) || !StringUtils.hasLength(username)) {
            return null;
        }
        System.out.println("执行了 get 方法");
        return "id: " + id + ", username: " + username;
    }

执行后可以观察到缓存已被存入:

快速入门 - Spring Boot 集成 Redis 配置及使用

 

2.2.2、读取缓存

实际上读取和存储缓存都是一样的代码,当第一次存储缓存后,再次调用此方法时,就不会调用此方法了,而是直接拿到缓存的数据填充到方法对应的参数中,接着直接执行 return 语句。

怎么证明上述过程呢?再执行一遍刚刚存储(读取)缓存的代码即可,因为刚刚我在代码中加上了打印代码,如果执行了方法,就会打印信息到控制台上,如果是直接从缓存中读取代码,就不会打印信息到控制台上。

2.2.3、更新缓存

使用注解 @CachePut 即可将当前方法的返回值更新到缓存中

如下代码:

    /**
     * 更新缓存
     * 将当前方法的返回值更新到缓存中
     * @param id
     * @param username
     * @return
     */
    @RequestMapping("/put")
    @CachePut(value = "spring.cache", key = "#id+#username")
    public String put(String id, String username)  {
        //非空校验
        if(!StringUtils.hasLength(id) || !StringUtils.hasLength(username)) {
            return null;
        }
        System.out.println("执行了 put 方法");
        return "id: " + id + ", username: " + username;
    }

2.3.4、删除缓存

使用 @CacheEvict 即可删除缓存

如下代码:

    /**
     * 删除缓存
     * @param id
     * @param username
     */
    @RequestMapping("/del")
    @CacheEvict(value = "spring.cache", key = "#id+#username")
    public void del(String id, String username) {
        System.out.println("执行了删除缓存");
    }

快速入门 - Spring Boot 集成 Redis 配置及使用

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/129773.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!