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,扩展中的功能我们下一次再分享。

相关推荐
尘浮生16 分钟前
Java项目实战II基于Java+Spring Boot+MySQL的智慧养老中心管理系统(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·mysql·微信小程序·maven
克鲁德战士32 分钟前
【Java并发编程的艺术3】Java内存模型(下)
java·开发语言·redis
哎呦没44 分钟前
英语知识网站开发:Spring Boot框架技巧
spring boot·后端·性能优化
ZmyCoder44 分钟前
springboot项目使用maven打包,第三方jar问题
spring boot·maven
世间万物皆对象1 小时前
Spring Boot Web应用开发:数据访问
java·数据库·spring boot
顽疲1 小时前
springboot vue 开源 会员收银系统 (9) 库存管理 结算时扣库存
vue.js·spring boot·后端
2401_857600951 小时前
英语知识在线教学:Spring Boot网站构建
spring boot·后端·mfc
NiNg_1_2341 小时前
Redis中的数据结构详解
数据结构·数据库·redis
paterWang2 小时前
小程序-基于java+SpringBoot+Vue的铁路订票平台小程序设计与实现
java·spring boot·小程序
爱笑的源码基地2 小时前
基于springboot + vue-element-plus-admin开发的MES系统源码,制造执法系统MES源码;支持app,小程序,H5,后台
vue.js·spring boot·源码·制造·mes·制造执行系统·生产管理系统