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

相关推荐
ketil275 分钟前
Ubuntu 安装 redis
redis
狂放不羁霸32 分钟前
idea | 搭建 SpringBoot 项目之配置 Maven
spring boot·maven·intellij-idea
成富1 小时前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
计算机学长felix1 小时前
基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·毕业设计·交友
码农派大星。1 小时前
Spring Boot 配置文件
java·spring boot·后端
王佑辉1 小时前
【redis】redis缓存和数据库保证一致性的方案
redis·面试
江深竹静,一苇以航1 小时前
springboot3项目整合Mybatis-plus启动项目报错:Invalid bean definition with name ‘xxxMapper‘
java·spring boot
Karoku0662 小时前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
鹿屿二向箔2 小时前
基于SSM(Spring + Spring MVC + MyBatis)框架的汽车租赁共享平台系统
spring·mvc·mybatis
豪宇刘2 小时前
SpringBoot+Shiro权限管理
java·spring boot·spring