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 的连接信息:

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 的序列化方式:

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 交互。

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

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 应用:

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

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值