Redis 安装与 Spring Boot 集成指南

安装 Redis 和将其与 Spring Boot 应用集成是构建高效缓存解决方案的常见步骤。以下是详细的指南,帮助你在本地环境中安装 Redis,并在 Spring Boot 项目中配置和使用它。

1. 安装 Redis

Windows 环境

Redis 官方并不直接支持 Windows,但你可以通过以下几种方式在 Windows 上运行 Redis:

  • Chocolatey:如果已经安装了 Chocolatey 包管理器,可以通过命令行安装 Redis。

    choco install redis-64
  • Docker:推荐使用 Docker 来运行 Redis 容器,这样可以避免兼容性问题。

    docker pull redis
    docker run --name myredis -p 6379:6379 -d redis
  • MS Open Tech 版本:也可以从 MSOpenTech GitHub 下载适用于 Windows 的 Redis 版本。

macOS 环境

macOS 用户可以通过 Homebrew 安装 Redis:

brew install redis

启动 Redis 服务:

brew services start redis
Linux 环境

大多数 Linux 发行版自带 Redis 包,可以直接通过包管理器安装:

sudo apt-get update
sudo apt-get install redis-server

启动 Redis 服务:

sudo systemctl start redis.service

确保 Redis 正常运行后,可以通过 redis-cli 命令行工具测试连接:

redis-cli ping

如果返回 PONG,则表示 Redis 已经正确安装并正在运行。

2. 在 Spring Boot 中配置 Redis

添加依赖项

首先,在你的 build.gradlepom.xml 文件中添加必要的依赖项以启用对 Redis 的支持。

Gradle
dependencies {implementation 'org.springframework.boot:spring-boot-starter-data-redis'// 如果你打算使用 Lettuce 连接池implementation 'io.lettuce:lettuce-core'
}
Maven
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 如果你打算使用 Lettuce 连接池 -->
<dependency><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId>
</dependency>
配置 application.properties 或 application.yml

接下来,编辑 application.propertiesapplication.yml 文件来配置 Redis 连接信息。

application.properties
# Redis server address (default is localhost)
spring.redis.host=localhost
# Redis server port (default is 6379)
spring.redis.port=6379
# Redis password if any
# spring.redis.password=
# Database index used by the connection factory
# spring.redis.database=0
# Connection pool settings
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0
application.yml
spring:redis:host: localhostport: 6379# password: your_password_heredatabase: 0lettuce:pool:max-active: 8max-idle: 8min-idle: 0
编写 Redis 操作代码

最后,编写一些简单的 Java 类来进行 Redis 操作。Spring Data Redis 提供了 RedisTemplateStringRedisTemplate,它们简化了与 Redis 的交互。

示例:RedisConfig.java
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;@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(factory);template.setKeySerializer(new StringRedisSerializer());template.setValueSerializer(new StringRedisSerializer());return template;}
}
示例:RedisService.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;@Service
public class RedisService {private final RedisTemplate<String, Object> redisTemplate;@Autowiredpublic RedisService(RedisTemplate<String, Object> redisTemplate) {this.redisTemplate = redisTemplate;}public void set(String key, Object value) {redisTemplate.opsForValue().set(key, value);}public Object get(String key) {return redisTemplate.opsForValue().get(key);}public void delete(String key) {redisTemplate.delete(key);}
}

3. 测试 Redis 功能

创建一个简单的控制器或单元测试来验证 Redis 是否正常工作。

示例:RedisController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/api/redis")
public class RedisController {private final RedisService redisService;@Autowiredpublic RedisController(RedisService redisService) {this.redisService = redisService;}@PostMapping("/set/{key}/{value}")public String set(@PathVariable String key, @PathVariable String value) {redisService.set(key, value);return "Set key " + key + " with value " + value;}@GetMapping("/get/{key}")public Object get(@PathVariable String key) {return redisService.get(key);}@DeleteMapping("/delete/{key}")public String delete(@PathVariable String key) {redisService.delete(key);return "Deleted key " + key;}
}

总结

通过以上步骤,你应该能够在本地成功安装 Redis,并且将它与 Spring Boot 应用程序集成起来。这不仅有助于提高应用程序的性能,还能为开发者提供一个强大的工具来管理和优化数据存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3d打印材料是塑料么?pla petg

3D 打印材料不仅限于塑料&#xff0c;但塑料确实是最常见的材料类型之一。以下是一些常用的3D打印塑料材料的介绍&#xff1a; 1. PLA&#xff08;聚乳酸&#xff09; • 特点&#xff1a;可生物降解&#xff0c;环保&#xff0c;容易打印&#xff0c;表面光滑。 • 适用…

linux-磁盘io性能指标!

一. 引文&#xff1a; 平时查看或者监控磁盘io时&#xff0c;基本上都是用的现成的工具/脚本&#xff0c; 对其了解的还是很浅&#xff0c;特参考一些资料整理了下&#xff0c;留个随笔。 二.磁盘I/O性能指标: 磁盘 I/O 是 Unix/Linux 系统管理中一个非常重要的组成部分。磁盘…

Excel 技巧08 - 如何计算某类(比如红色背景色)单元格的总和? (★)

本文讲了如何在Excel中计算某类(比如红色背景色)单元格的总和。 1&#xff0c;如何计算某类(比如红色背景色)单元格的总和&#xff1f; 技巧就是先把它们给标记出来&#xff0c;然后就好统计了。 那么如何找出来呢&#xff1f; 对&#xff0c;就是通过红色。 按下Ctrl F 点…

awr报告无法生成:常见分析手段

awr报告无法生成:常见分析手段 STATISTICS_LEVEL和OPEN_MODEAWR快照是否能自动生成?AWR快照能否手动生成?日志有无ORA-12751或ORA-32701报错?MMON进程是否被挂起?排查数据库隐藏参数分析快照生成错误信息分析AWR Snapshot Tracing分析AWR Table Flush是否超时STATISTICS_L…

uni-app无限级树形组件简单实现

因为项目一些数据需要树形展示&#xff0c;但是官网组件没有。现在简单封装一个组件在app中使用&#xff0c;可以无线嵌套&#xff0c;展开&#xff0c;收缩&#xff0c;获取子节点数据等。 简单效果 组件TreeData <template><view class"tree"><te…

互联网架构变迁:从 TCP/IP “呼叫” 到 NDN “内容分发” 的逐浪之旅

本文将给出关于互联网架构演进的一个不同视角。回顾一下互联网的核心理论基础产生的背景&#xff1a; 左边是典型的集中控制通信网络&#xff0c;很容易被摧毁&#xff0c;而右边的网络则没有单点问题&#xff0c;换句话说它很难被全部摧毁&#xff0c;与此同时&#xff0c;分…

移远BC28_opencpu方案_pin脚分配

先上图&#xff0c;BC28模块的pin脚如图所示&#xff1a; 下面看看GPIO的复用管脚 然后我自己整理了一份完整的pin功能列表

Eureka缓存机制

一、Eureka的CAP特性 Eureka是一个AP系统&#xff0c;它优先保证可用性&#xff08;A&#xff09;和分区容错性&#xff08;P&#xff09;&#xff0c;而不保证强一致性&#xff08;C&#xff09;。这种设计使得Eureka在分布式系统中能够应对各种故障和分区情况&#xff0c;保…

2025年第三届“华数杯”国际赛A题解题思路与代码(Python版)

游泳竞技策略优化模型代码详解 第一题&#xff1a;速度优化模型 在这一部分&#xff0c;我们将详细解析如何通过数学建模来优化游泳运动员在不同距离比赛中的速度分配策略。 1. 模型概述 我们的模型主要包含三个核心文件&#xff1a; speed_optimization.py: 速度优化的核…

micro-app【微前端系列教程】禁用样式隔离

全局禁用样式隔离 所有应用的样式隔离都会停止 import microApp from micro-zoe/micro-appmicroApp.start({disableScopecss: true, // 默认值false })指定子应用取消禁用样式隔离 <micro-app namexx urlxx disableScopecssfalse></micro-app>指定子应用禁用样式…

深度学习笔记11-优化器对比实验(Tensorflow)

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 一、导入数据并检查 二、配置数据集 三、数据可视化 四、构建模型 五、训练模型 六、模型对比评估 七、总结 一、导入数据并检查 import pathlib,…

FFmpeg Muxer HLS

使用FFmpeg命令来研究它对HLS协议的支持程度是最好的方法&#xff1a; ffmpeg -h muxerhls Muxer HLS Muxer hls [Apple HTTP Live Streaming]:Common extensions: m3u8.Default video codec: h264.Default audio codec: aac.Default subtitle codec: webvtt. 这里面告诉我…

Apache和PHP:构建动态网站的黄金组合

在当今的互联网世界&#xff0c;网站已经成为了企业、个人和机构展示自己、与用户互动的重要平台。而在这些动态网站的背后&#xff0c;Apache和PHP无疑是最受开发者青睐的技术组合之一。这一组合提供了高效、灵活且可扩展的解决方案&#xff0c;帮助您快速搭建出强大的网站&am…

git相关操作笔记

git相关操作笔记 1. git init git init 是一个 Git 命令&#xff0c;用于初始化一个新的 Git 仓库。执行该命令后&#xff0c;Git 会在当前目录创建一个 .git 子目录&#xff0c;这是 Git 用来存储所有版本控制信息的地方。 使用方法如下&#xff1a; &#xff08;1&#xff…

Docker Desktop 构建java8基础镜像jdk安装配置失效解决

Docker Desktop 构建java8基础镜像jdk安装配置失效解决 文章目录 1.问题2.解决方法3.总结 1.问题 之前的好几篇文章中分享了在Linux(centOs上)和windows10上使用docker和docker Desktop环境构建java8的最小jre基础镜像&#xff0c;前几天我使用Docker Desktop环境重新构建了一个…

VUE + pdfh5 实现pdf 预览,主要用来uniappH5实现嵌套预览PDF

1. 安装依赖 npm install pdfh5 2. pdfh5 预览(移动端&#xff0c;h5) npm install pdfh5 , &#xff08;会报错&#xff0c;需要其他依赖&#xff0c;不能直接用提示的语句直接npm下载&#xff0c;依旧会报错&#xff0c;npm报错&#xff1a;These dependencies were not fou…

Node.js——fs(文件系统)模块

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

Microsoft Azure Cosmos DB:全球分布式、多模型数据库服务

目录 前言1. Azure Cosmos DB 简介1.1 什么是 Azure Cosmos DB&#xff1f;1.2 核心技术特点 2. 数据模型与 API 支持2.1 文档存储&#xff08;Document Store&#xff09;2.2 图数据库&#xff08;Graph DBMS&#xff09;2.3 键值存储&#xff08;Key-Value Store&#xff09;…

springboot项目读取resources目录下文件

要用以下这种方式读取 classPathResource new ClassPathResource("template/test.docx");不能用以下这种获取绝对路径的方式&#xff0c;idea调试正常&#xff0c;但是部署window和linux的目录结构不一样&#xff0c;部署后会找不到文件&#xff0c;另外window直接…

Ruby语言的软件开发工具

Ruby语言的软件开发工具概述 引言 Ruby是一种简单且功能强大的编程语言&#xff0c;它以优雅的语法和灵活性而闻名。自1995年首次发布以来&#xff0c;Ruby已经被广泛应用于各种开发领域&#xff0c;特别是Web开发。随着Ruby语言的普及&#xff0c;相关的开发工具也日益丰富。…