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.gradle
或 pom.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.properties
或 application.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 提供了 RedisTemplate
和 StringRedisTemplate
,它们简化了与 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 应用程序集成起来。这不仅有助于提高应用程序的性能,还能为开发者提供一个强大的工具来管理和优化数据存储。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Redis 安装与 Spring Boot 集成指南
安装 Redis 和将其与 Spring Boot 应用集成是构建高效缓存解决方案的常见步骤。以下是详细的指南,帮助你在本地环境中安装 Redis,并在 Spring Boot 项目中配置和使用它。 1. 安装 Redis Windows 环境 Redis 官方并不直接支持 Windows,但你…...
![](https://www.ngui.cc/images/no-images.jpg)
Flink集成TDEngine来批处理或流式读取数据进行流批一体化计算(Flink SQL)拿来即用的案例
Flink 以其流批一体化的编程模型而备受青睐。它支持高吞吐、低延迟的实时流计算,同时在批处理方面也表现出色。Flink 提供了丰富的 API,如 DataStream API 和 DataSet API,方便开发者进行数据处理操作,包括转换、聚合、连接等,使得开发者能够轻松构建复杂的数据处理逻辑。…...
![](https://www.ngui.cc/images/no-images.jpg)
【STM32】利用SysTick定时器定时1s
1.SysTick简单介绍 SysTick定时器是一个24位的倒计数定时器,当计数到0时,将从RELOAD寄存器中自动重装载定时初值,开始新一轮计数。 SysTick定时器用于在每隔一定的时间产生一个中断,即使在系统睡眠模式下也能工作。 关于SysTic…...
![](https://www.ngui.cc/images/no-images.jpg)
Python中的format格式化、填充与对齐、数字格式化方式
文章目录 一、format语法二、format格式化的用法2.1、按照先后顺序替换{}2.2、按照索引进行匹配替换{0}2.3、按关键字索引进行匹配替换2.4、通过列表索引格式化字符串2.5、使用元组2.6、通过字典设置格式化字符串2.7、混合使用 三、字符串填充与对齐3.1、左对齐及填充3.2、右对…...
![](https://i-blog.csdnimg.cn/direct/9123f7352ec74d94951fa6a5cd29bf79.gif)
winform第三方界面开源库AntdUI的使用教程保姆级环境设置篇
1. AntdUI 1.1. 导入项目 1.1.1. 首先新建一个空白的基于.net的Winfrom项目1.1.2. 复制AntdUI中src目录到我们的解决方案下面1.1.3. 解决方案下添加现有项目1.1.4. 添加项目引用 1.2. 编写代码 1.2.1. 改写Form1类,让其继承自public partial class Form1 : AntdUI.W…...
![](https://www.ngui.cc/images/no-images.jpg)
如何使用Yarn Workspaces实现Monorepo模式在一个仓库中管理多个项目
Yarn Workspaces是Yarn提供的一种依赖管理机制,它支持在单个代码仓库中管理多个包的依赖。这种机制非常适合需要多个相互依赖的包的项目,能够减少重复依赖,加快依赖安装速度,并简化依赖管理。下面将详细介绍如何使用Yarn Workspac…...
![](https://i-blog.csdnimg.cn/direct/ef58403755634d819206da2e25521a35.png)
SpringCloud系列教程:微服务的未来(十一)服务注册、服务发现、OpenFeign快速入门
本篇博客将通过实例演示如何在 Spring Cloud 中使用 Nacos 实现服务注册与发现,并使用 OpenFeign 进行服务间调用。你将学到如何搭建一个完整的微服务通信框架,帮助你快速开发可扩展、高效的分布式系统。 目录 前言 服务注册和发现 服务注册 编辑 …...
![](https://www.ngui.cc/images/no-images.jpg)
物联网:七天构建一个闭环的物联网DEMO
我计划用七天的时间, 基于开源物联网平台, 打造一款物联网案例的闭环。 为了增加感观体验,欢迎大家与我保持亲密的沟通。 我们来看一段代码: Slf4j Component public class MqttSendManager {Resourceprivate MqttSendHandler m…...
![](https://i-blog.csdnimg.cn/direct/9e02eb20e85146ea92dd6d38ac9eb34b.png)
景联文科技提供高质量多模态数据处理服务,驱动AI新时代
在当今快速发展的AI时代,多模态数据标注成为推动人工智能技术进步的关键环节。景联文科技作为行业领先的AI数据服务提供商,专注于为客户提供高质量、高精度的多模态数据标注服务,涵盖图像、语音、文本、视频及3D点云等多种类型的数据。通过专…...
![](https://www.ngui.cc/images/no-images.jpg)
c#13新特性
C# 13 即 .NET 9 按照计划会在2024年11月发布,目前一些新特性已经定型,让我们来预览一个比较大型比较重要的新特性。 正文 扩展类型 Extension types 在5月份的微软 Build 大会中的 What’s new in C# 13 会议上,两位大佬花了很长的篇幅来…...
![](https://www.ngui.cc/images/no-images.jpg)
LeetCode LCP17速算机器人
速算机器人:探索字符指令下的数字变换 在编程的奇妙世界里,我们常常会遇到各种有趣的算法问题,这些问题不仅考验我们的逻辑思维,还能让我们感受到编程解决实际问题的魅力。今天,就让我们一同探讨一个关于速算机器人的…...
![](https://i-blog.csdnimg.cn/img_convert/78742b5d3a318d5c5baf88e8b2543c4a.png)
杭州铭师堂的云原生升级实践
作者:升学e网通研发部基建团队 公司介绍 杭州铭师堂,是一个致力于为人的全面发展而服务的在线教育品牌。杭州铭师堂秉持“用互联网改变教育,让中国人都有好书读”的使命,致力于用“互联网教育”的科技手段让更多的孩子都能享有优…...
![](https://www.ngui.cc/images/no-images.jpg)
计算机网络之---MAC协议
MAC协议的作用 在数据链路层中,MAC(媒介访问控制)协议负责控制设备如何访问共享的通信介质(如以太网、无线电波等),确保在多台设备共享同一传输媒介时能够有效地进行数据传输,避免冲突、控制流…...
![](https://i-blog.csdnimg.cn/direct/73b821d03f534538895701b62e782177.png)
微服务面试相关
Spring Cloud Spring Cloud五大组件 注册中心:Eureka、Nacos Ribbon负载均衡、负载均衡策略、自定义负载均衡 Ribbon负载均衡流程 Ribbon负载均衡策略 自定义负载均衡 服务雪崩、熔断降级 微服务监控-skywalking 业务相关 微服务限流(令牌桶、漏桶算法…...
![](https://i-blog.csdnimg.cn/img_convert/8f0e311f26ad591c8f06036668550c21.png)
Google发布图像生成新工具Whisk:无需复杂提示词,使用图像和人工智能将想法可视化并重新混合
Whisk 是 Google Labs 的一项新实验,可使用图像进行快速而有趣的创作过程。Whisk不会生成带有长篇详细文本提示的图像,而是使用图像进行提示。只需拖入图像,即可开始创建。 whisk总结如下: Whisk 是 Google 实验室最新的生成图像实…...
![](https://i-blog.csdnimg.cn/direct/ad6f2a4bcb644df6b982b2386291d018.png)
docker pull(拉取镜像)的时候,无法下载或者卡在Waiting的解决方法
docker pull的时候,卡在Waiting的解决方法 一般情况(大部分镜像都可以拉取)更换镜像源 进一步(如es等拉取不到)在镜像同步站搜索详细步骤 还可以在挂载的时候,让其下载对应的版本 一般情况(大部…...
![](https://i-blog.csdnimg.cn/img_convert/1d7febcf7482e814782a75775c7a60c8.png)
51c~Pytorch~合集4
我自己的原文哦~ https://blog.51cto.com/whaosoft/12311033 一、Pytorch~训练-使用 这里介绍了Pytorch中已经训练好的模型如何使用 Pytorch中提供了很多已经在ImageNet数据集上训练好的模型了,可以直接被加载到模型中进行预测任务。预训练模型存放在Pytorch的…...
![](https://www.ngui.cc/images/no-images.jpg)
windows下,golang+vscode+delve 远程调试
1 先在远程服务器安装golang和delve golang的安装,通过官网直接下载安装包安装接口 go install github.com/go-delve/delve/cmd/dlvlatest 如果dlv和golang版本不匹配,这里把latest换成匹配的版本,比如1.20.0 2 编译带调试信息的程序 go bu…...
![](https://i-blog.csdnimg.cn/blog_migrate/b96d0963d9f793aad7317d92a37f2b3c.png)
弥散张量分析开源软件 DSI Studio 简体中文汉化版可以下载了
网址: (63条消息) DSIStudio简体中文汉化版(2022年7月)-算法与数据结构文档类资源-CSDN文库...
![](https://i-blog.csdnimg.cn/img_convert/66ff7f5db225d2eed25b44fe6f78dcaf.jpeg)
视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp
文章链接:https://arxiv.org/pdf/2412.19761 项目链接:https://genprop.github.io 亮点直击 定义了一个新的生成视频传播问题,目标是利用 I2V 模型的生成能力,将视频第一帧的各种变化传播到整个视频中。 精心设计了模型 GenProp&…...
![](https://i-blog.csdnimg.cn/img_convert/ac7e9d3311640dee70c53c168c8001a1.png)
多维方向性增强分割通过大规模视觉模型实现|文献速递-视觉大模型医疗图像应用
Title 题目 Multidimensional Directionality-Enhanced Segmentation via large visionmodel 多维方向性增强分割通过大规模视觉模型实现 01 文献速递介绍 黄斑疾病影响全球约2亿人,已成为视力损害的主要原因之一。黄斑是视网膜中光感受器密度最高的区域&#…...
![](https://i-blog.csdnimg.cn/direct/032ac34683594082a2dce9b88d74f733.png)
【Linux探索学习】第二十五弹——动静态库:Linux 中静态库与动态库的详细解析
Linux学习笔记: https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言: 在 Linux 系统中,静态库和动态库是开发中常见的两种库文件类型。它们在编译、链接、内存管理以及程序的性能和可维护性方面有着…...
![](https://www.ngui.cc/images/no-images.jpg)
远程和本地文件的互相同步
文章目录 1、rsync实现类似git push pull功能1. 基础概念2. 示例操作3. 定制化和进阶用法4. 定时同步(类似自动化) 2 命令简化1. 动态传参的脚本2. Shell 函数支持动态路径3. 结合环境变量和参数(更简洁)4. Makefile 支持动态路径…...
![](https://i-blog.csdnimg.cn/direct/6127e45c34984198896de15e2c8822aa.png)
自然语言处理之jieba分词和TF-IDF分析
jieba分词和TF-IDF分析 目录 jieba分词和TF-IDF分析1 jieba1.1 简介1.2 终端下载1.3 基本语法 2 TF-IDF分析2.1 什么是语料库2.2 TF2.3 IDF2.4 TF-IDF2.5 函数导入2.6 方法 3 实际测试3.1 问题解析3.2 代码测试 1 jieba 1.1 简介 结巴分词(Jieba)是一个…...
![](https://i-blog.csdnimg.cn/direct/5d4a8a0614f344018f5b199a8730eb0e.png)
探索式测试
探索式测试是一种软件测试风格,它强调独立测试人员的个人自由和职责,为了持续优化其工作的价值,将测试学习、测试设计、测试执行和测试结果分析作为相互支持的活动,在整个项目实现过程中并行地执行。 选择合适的探索式测试方法我…...
![](https://i-blog.csdnimg.cn/direct/cf2b5baf26b146a0891493cb3953ca0f.jpeg)
服务器数据恢复—raid5故障导致上层ORACLE无法启动的数据恢复案例
服务器数据恢复环境&故障: 一台服务器上的8块硬盘组建了一组raid5磁盘阵列。上层安装windows server操作系统,部署了oracle数据库。 raid5阵列中有2块硬盘的硬盘指示灯显示异常报警。服务器操作系统无法启动,ORACLE数据库也无法启动。 服…...
![](https://i-blog.csdnimg.cn/img_convert/ddfc552460fbf47594bc369236b7097c.png)
ISP各模块功能介绍
--------声明,本文为转载整理------- ISP各个模块功能介绍: 各模块前后效果对比: 黑电平补偿(BLC) 在理想情况下,没有光照射的像素点其响应值应为0。但是,由于杂质、受热等其它原因的影响&…...
![](https://www.ngui.cc/images/no-images.jpg)
Python 数据建模完整流程指南
在数据科学和机器学习中,建模是一个至关重要的过程。通过有效的数据建模,我们能够从原始数据中提取有用的洞察,并为预测或分类任务提供支持。在本篇博客中,我们将通过 Python 展示数据建模的完整流程,包括数据准备、建…...
![](https://i-blog.csdnimg.cn/direct/104e94c0e16b4256afd62be49878c9ca.png)
深入学习RocketMQ
参考:RocketMQ从从入门到精通_rocketmq入门到精通-CSDN博客 1、消息的类型 普通消息 顺序消息 延时消息 批量消息 事务消息 2、在java中使用 2.1、pom.xml中加入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId…...
![](https://i-blog.csdnimg.cn/direct/68a5cbe53f2e4b52aea3cf4d6cc3db0c.png)
国产编辑器EverEdit - 扩展脚本:关闭所有未修改文档
1 扩展脚本:关闭所有未修改文档 1.1 应用场景 当用户打开过多文档时,部分文档已经修改,而大部分没有修改,为了减少在众多已打开文档中来回跳转的不便,可以将没有修改的文档全部关闭,但目前提供的快速关闭窗…...
![](https://img-blog.csdnimg.cn/915e2922bbd14ee58ac195b4f4b3d251.png)
html5响应式手机网站/百度官网入口
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] …...
![](/images/no-images.jpg)
荣泰建设集团网站/郑州seo优化
1)、在两台机子上面分别安装 mysql , keepalived2)、keepalived 主从:主:vim /etc/keepalived/keepalived.confvrrp_instance VI_1 {state BACKUP # 备用用 BACKUPinterface eth2 #用的是哪个网卡virtual_router_id 59 #虚拟路由地址必须一样&…...
![](/images/no-images.jpg)
广州网站建设哪家专业/今日新闻最新
模数转换芯片,输出的数据,通常用SPI通信送到处理器当中。这些数据通常是一定位数的补码,转换芯片你是几位的,数据就是几位,通常用12位,14位,16位,18位,20位,2…...
![](/images/no-images.jpg)
做网站的公司哪家强/关键词优化搜索排名
Topic modelling for humans 看着gensim这个标题都觉得霸气,从文本预处理,特征提出到主题聚类等,基本上包含了文本处理的所有功能。Corpora and Vector Spaces 语料与向量空间,这一节主要讲如何把文本从词变为bag-of-word。中文的…...
![](https://img-blog.csdnimg.cn/img_convert/5268f80b9b1e01f982625ef6fac83ca1.png)
做装修的网站怎么做好/杭州百度推广电话
这次给大家带来vue项目中如何使用ueditor,vue项目中使用ueditor的注意事项有哪些,下面就是实战案例,一起来看一下。以vue-cli生成的项目为例1.static文件夹下先放入ueditor文件2.index.html添加如下代码3.webpack.base.conf.js添加如下配置ex…...
![](https://img-blog.csdnimg.cn/img_convert/a3e4913e9cd11bd95bd1282b36a2b935.png)
做网站配置好了找不到服务器/长沙seo网络营销推广
简单是可靠的前提条件真正程序员从来不写代码的注释,如果代码非常难写,那么同样代码的注释也会非常难懂 看看当前计算机程序糟糕的事态,软件开发明显一直是一门妖术,其仍然不能被称为一个工程学。–比尔.克林顿 美国前总统...