SpringBoot依赖之Spring Data Redis 一 String类型

Spring Data Redis(一)

概念

Spring Data Redis (Access+Driver)
  • 依赖名称: Spring Data Redis (Access+Driver)
  • 功能描述: Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs and much more.
  • 中文释义:用于同步、异步和反应式使用的高级且线程安全的 Java Redis 客户端。支持集群、哨兵、管道、自动重新连接、编解码器等。

项目学习代码地址

操作演示:

在 IntelliJ IDEA 中创建一个 Spring Boot 项目并使用 Spring Data Redis 依赖,可以分为以下几个步骤进行。这个过程中会详细讲解如何配置 Redis 连接、如何使用 Spring Data Redis 操作 Redis 数据库,以及如何在应用中集成和测试这些操作。

项目创建步骤前面的很多文章都很详细,这里直接简写。有疑问的可以私信我,我会第一时间回复。

1. 创建 Spring Boot 项目

1.1 使用 Spring Initializr 创建项目
  1. 打开 IntelliJ IDEA。
  2. 点击 New Project -> 选择 Spring Initializr
  3. 配置项目的 Group(如 com.dependencies)和 Artifact(如 springdataredis),然后选择 Java 作为编程语言,Spring Boot 版本可以选择最新稳定版 目前我这边使用的事3.3.2 ,JDK版本是17。
  4. 点击 Next,在 Dependencies 部分,搜索并添加 Spring Data Redis 、以及 spring-web 依赖。
  5. 点击 Finish,IDEA 将自动创建项目。

2. 配置 Redis 连接

2.1 修改 application.properties

src/main/resources/application.properties 文件中配置 Redis 的连接信息:

properties 复制代码
spring.redis.host=127.0.1
spring.redis.port=6379
# 如果 Redis 没有设置密码可以留空
spring.redis.password= 
spring.redis.database=0

此配置假设你在本地使用默认端口 6379 运行 Redis。如果 Redis 服务在其他位置运行或端口不同,请调整 hostport

2.2 可选的 Redis 配置类

如果需要自定义 Redis 的配置,可以创建一个配置类。例如,自定义 RedisTemplate 的序列化方式:

java 复制代码
package com.dependencies.springdataredis;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * @author zhizhou   2024/8/17 12:03
 */
@Configuration
public class RedisConfig {
    
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new StringRedisSerializer());
        return template;
    }
}

3. 创建 Redis 服务类

创建一个服务类,用于封装 Redis 的操作逻辑。这个类将使用 RedisTemplate 来与 Redis 交互。

java 复制代码
package com.dependencies.springdataredis;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

/**
 * @author zhizhou   2024/8/17 12:01
 */
@Service
public class RedisService {
    private final RedisTemplate<String, Object> redisTemplate;
    
    public RedisService(RedisTemplate<String, Object> redisTemplate) {
        this.redisTemplate = redisTemplate;
    }
    
    public void saveValue(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }
    
    public String getValue(String key) {
        return (String) redisTemplate.opsForValue().get(key);
    }
}

在这里,RedisTemplate 用于执行 Redis 操作。opsForValue() 方法处理与字符串相关的 Redis 操作。

4. 创建控制器类

为了能够通过 HTTP 请求与 Redis 进行交互,我们创建一个简单的 REST 控制器。使用@RestController注解需要引入spring

java 复制代码
package com.dependencies.springdataredis;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author zhizhou   2024/8/17 12:02
 */
@RestController
public class RedisController {
    private final RedisService redisService;
    
    public RedisController(RedisService redisService) {
        this.redisService = redisService;
    }
    
    @GetMapping("/set")
    public String setKey(@RequestParam String key, @RequestParam String value) {
        redisService.saveValue(key, value);
        return "保存成功";
    }
    
    @GetMapping("/get")
    public String getKey(@RequestParam String key) {
        return redisService.getValue(key);
    }
}

这个控制器类包含两个端点:

  • /set:将键值对保存到 Redis 中。
  • /get:从 Redis 中获取指定键的值。

5. 编写 Main 类启动应用

src/main/java/com/example/redis 目录下创建一个 Main 类用于启动 Spring Boot 应用:

java 复制代码
package com.dependencies.springdataredis;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringDataRedisApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(SpringDataRedisApplication.class, args);
    }   
}

6. 运行项目并测试

6.1 启动 Redis 服务

启动本地redis-server 或者 链接远程redis配置信息,同步在 application.properties 中配置的连接信息即可。

6.2 运行 Spring Boot 项目

在 IntelliJ IDEA 中运行项目。

6.3 测试 Redis 操作

使用浏览器或 Postman 等工具,访问以下 URL 来测试:

  • 设置值 : http://localhost:8080/set?key=myKey&value=myValue

    • 这会在 Redis 中保存一个键值对,键为 myKey,值为 myValue
  • 获取值 : http://localhost:8080/get?key=myKey

    • 这会从 Redis 中获取键 myKey 对应的值,并在浏览器中显示。

项目学习代码地址


7. 进一步扩展

在这个基础上,我们可以进一步扩展项目,比如:

  • 操作其他类型的数据:除了字符串,还可以操作 Redis 的哈希(Hash)、列表(list)、集合(Set)、有序集合(Sorted Set)、位图(Bitmap)、HyperLogLog、地理空间(Geospatial)、Stream 等。
  • 添加更多 Redis 操作:比如删除键、设置键过期时间等。
  • 集成更多功能:比如使用 Redis 缓存数据库查询结果等。

总结

项目学习代码地址

通过这些步骤,我们可以在 IntelliJ IDEA 中创建一个简单的 Spring Boot 项目,并成功集成和使用 Spring Data Redis 依赖进行 Redis 操作。这个例子展示了基本的键值操作,以及如何通过 REST 控制器进行简单的交互。到此redis string 格式已经完成demo,扩展中的功能我们下一次再分享。

相关推荐
洋洋技术笔记1 小时前
Spring Boot配置管理最佳实践
spring boot
用户83071968408219 小时前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide19 小时前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
玹外之音21 小时前
Spring AI MCP 实战:将你的服务升级为 AI 可调用的智能工具
spring·ai编程
来一斤小鲜肉1 天前
Spring AI入门:第一个AI应用跑起来
spring·ai编程
NE_STOP1 天前
springMVC-常见视图组件与RESTFul编程风格
spring
大道至简Edward1 天前
Spring Boot 2.7 + JDK 8 升级到 Spring Boot 3.x + JDK 17 完整指南
spring boot·后端
洋洋技术笔记1 天前
Spring Boot启动流程解析
spring boot·后端
怒放吧德德2 天前
Spring Boot 实战:RSA+AES 接口全链路加解密(防篡改 / 防重放)
java·spring boot·后端
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端