当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数据结构入门】二叉树之堆的实现
  • 百日筑基第五十七天-虚拟线程
  • 前端框架(三件套)
  • git cherry-pick命令使用分享
  • Android UI:PopupWindow:API
  • 《机器学习》 逻辑回归 大批量数据的下采样 <8>
  • git本地仓库同步到远程仓库
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
  • EasyExcel_通过模板导出(多sheet、列表、图片)
  • Linux ps命令详解
  • 【NI国产替代】NI‑9235四分之一桥应变计,8通道C系列应变/桥输入模块
  • 基于LSTM的交通流量预测算法及Python实现
  • ECMAScript性能优化技巧与陷阱(上)
  • 上门搬家小程序源码开发:打造便捷高效的搬家新体验
  • Triplet Loss解析及示例计算
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • DataBase in Android
  • ESLint简单操作
  • python学习笔记 - ThreadLocal
  • rabbitmq延迟消息示例
  • v-if和v-for连用出现的问题
  • webpack4 一点通
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 阿里云购买磁盘后挂载
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分类模型——Logistics Regression
  • 关于for循环的简单归纳
  • 关于Java中分层中遇到的一些问题
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 什么是Javascript函数节流?
  • 微服务核心架构梳理
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 【干货分享】dos命令大全
  • elasticsearch-head插件安装
  • linux 淘宝开源监控工具tsar
  • 大数据全解:定义、价值及挑战
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (分类)KNN算法- 参数调优
  • (转)JAVA中的堆栈
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core引入性能分析引导优化
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 依赖注入和配置系统
  • .net连接MySQL的方法
  • .net下的富文本编辑器FCKeditor的配置方法
  • :not(:first-child)和:not(:last-child)的用法
  • @Async注解的坑,小心
  • @Autowired 和 @Resource 区别的补充说明与示例
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [012-1].第12节:Mysql的配置文件的使用