前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转 Spring Boot 集成篇(Redis)

玩转 Spring Boot 集成篇(Redis)

作者头像
一猿小讲
发布2022-02-25 09:41:40
3.2K0
发布2022-02-25 09:41:40
举报
文章被收录于专栏:一猿小讲一猿小讲一猿小讲

Redis 应用场景?在实际项目研发中,经常把 Redis 用做热数据缓存,例如省份、地市、卡 bin 信息等;在 Web 项目里经常用作 Session 共享存储;还会用作短信验证码、Token 等有效期验证等场景。

Redis 之所以在这么多项目场景中使用,得益于其是一个高性能的 key-value 数据库,支持高并发访问的可用于缓存的 NoSQL 数据库。

Redis 的 Java 客户端有哪些?Redis 官方推荐的 Java 客户端有 Jedis、lettuce 和 Redisson。

Jedis:Spring Boot 1.X 版本默认客户端,Jedis 提供了比较全面的 Redis 命令的支持。 Lettuce:Spring Boot 2.X 版本默认客户端,Lettuce 底层基于 Netty,用于线程安全同步,异步和响应使用,支持集群、Sentinel、管道和编码器等高级特性。 Redisson:提供了使用 Redis 的最简单便捷的方法,提供了某些分布式的操作。

Spring Boot 很好地支持了 Redis,可以在项目中使用 SpringData 进行 Redis 数据操作。

本文将重点分享 Spring Boot 与 Redis 如何集成?

1. Spring Boot 集成 Redis

Spring Boot 提供了 Redis 集成启动器(Starter),依赖于 spring-data-redis 和 lettuce 库。

spring-data-redis:对 Reids 底层开发包高度封装,让开发者对 Redis 的 CRUD 操作起来更加方便。

Spring Boot 集成 Redis,只需简单引入 spring-boot-starter-data-redis 依赖包,就可轻松使用(开箱即用)。

1.1. 引入依赖

在 pom.xml 中引入 Redis 所需的 Maven 依赖,依赖配置如下。

<!-- 引入 Redis 依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

1.2. 添加配置

在 application.properties文件中加入 redis 连接配置,可依据实际项目需要进行配置。

## Redis 缓存配置信息
# 主机名称
spring.redis.host=127.0.0.1
# 端口号
spring.redis.port=6379
# 认证密码
spring.redis.password=
# 连接超时时间
spring.redis.timeout=500
# 默认数据库
spring.redis.database=0
# 最大连接数
spring.redis.jedis.pool.max-active=100
# 最大等待连接超时时间
spring.redis.jedis.pool.max-wait=-1
# 最大维持连接数
spring.redis.jedis.pool.max-idle=8
# 最小维持连接数
spring.redis.jedis.pool.min-idle=0

1.3. 编写代码

RedisTemplate 是 Spring 针对 Redis 操作封装的一个比较实用的模板,代码只需注入 RedisTemplate,无须其它额外的配置,开箱即用。

package com.example.demo; 
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import javax.sql.DataSource;
import java.sql.SQLException;

@SpringBootTest
class RedisTemplateTests {

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Test
    public void redisTest() {
        String key = "slogan";
        // 操作 String 类型
        redisTemplate.opsForValue().set(key, "grow up");
        System.out.println("slogan 在 redis 中创建完毕");
        String value = redisTemplate.opsForValue().get(key);
        System.out.println("从 redis 中获得 2022 slogan 是:" + value);

        // 操作 List 类型
        redisTemplate.opsForList().leftPush("list", "vvv");
        System.out.println("List 类型的数据操作:" + redisTemplate.opsForList().leftPop("list"));

        // 操作 Set 类型
        redisTemplate.opsForSet().add("set", "v_v_v");
        System.out.println("Set 类型的数据操作:" + redisTemplate.opsForSet().pop("set"));

        // 操作 Hash 类型
        redisTemplate.opsForHash().put("hash", "test", "hello");
        System.out.println("Hash 类型的数据操作:" + redisTemplate.opsForHash().get("hash", "test"));

        // 操作 ZSet 类型
        redisTemplate.opsForZSet().add("zset", "z_v", 1);
        redisTemplate.opsForZSet().add("zset", "z_v_v", 2);
        System.out.println("ZSet 类型的数据操作:" + redisTemplate.opsForZSet().range("zset", 0, 2));
    }
}

1.4. 测试集成

执行单元测试类,控制台输出如下:

至此,Spring Boot 集成 Redis 缓存已大功告成,只需注入 RedisTemplate 就可以了,可谓是简单、真简单,真是快哉!

2. 例行回顾

本文是 Spring Boot 项目集成 Redis 缓存篇的讲解,主要分享了如下部分:

  • Redis 应用场景有哪些?
  • Redis 的 Java 客户端有哪些?
  • Spring Boot 如何集成 Redis 缓存数据库?

玩转 Spring Boot 集成 Redis 篇,就写到这里,希望大家能够喜欢。

通过近几篇的分享,着实体会到 Spring Boot 的开箱即用,组件高度封装,代码量极少,开发成本降低,势必有很多铁子已按奈不住想探究 Spring Boot 的背后原理。此时,客官莫急,再好体验、用一用 Spring Boot,待时机成熟时,会一起解剖分析。

参考资料:

https://spring.io/

https://start.spring.io/

https://spring.io/projects/spring-boot

https://github.com/spring-projects/spring-boot

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

https://stackoverflow.com/questions/tagged/spring-boot

《Spring Boot从入门到实战》《深入浅出Spring Boot 2.x》

《一步一步学Spring Boot:微服务项目实战(第二版)》

《Spring Boot揭秘:快速构建微服务体系》

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一猿小讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档