Redis四种模式在Spring Boot框架下的配置

1. 单机模式

application.properties 配置:
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=yourpassword
  • spring.redis.host: 该配置指定 Redis 服务器的主机地址。在单机模式下,通常是本地 Redis 实例(127.0.0.1)。
  • spring.redis.port: 该配置指定 Redis 实例的端口号,默认情况下 Redis 使用的是 6379 端口。
  • spring.redis.password: 如果 Redis 配置了密码,您可以在此处指定密码。否则,可以省略此项。

作用:
这些配置会自动被 Spring Boot 中的 RedisTemplate 使用,以连接到 Redis 单机实例。当您启动应用时,Spring Boot 会自动根据这些配置初始化一个 RedisTemplate 实例来与 Redis 交互。

RedissonClient 配置:
 @Beanpublic RedissonClient redissonClient() {try {Config config = new Config();config.useSingleServer().setAddress("redis://127.0.0.1:6379");return Redisson.create(config);} catch (RedisConnectionException e) {throw new RuntimeException( "redis配置错误,请检查redis配置");}}
  • useSingleServer(): 这是 Redisson 中用于单机模式的配置方法,它表明 Redisson 将连接到一个单独的 Redis 实例。
  • setAddress("redis://127.0.0.1:6379"): 设置 Redis 服务器的地址。前缀 redis:// 用来指定协议,后面是 Redis 的主机和端口。
  • setPassword("yourpassword"): 配置 Redis 密码,如果 Redis 设置了密码,那么必须在此指定。

作用:
Redisson 使用这种方式连接到 Redis 单机实例,与 RedisTemplate 配置类似,但是在 Redisson 中,您需要手动创建一个 RedissonClient 实例,并指定连接的配置。


2. 主从模式

application.properties 配置:

Spring Boot 默认不支持 Redis 主从模式的自动配置。您需要手动配置 LettuceConnectionFactory,在 RedisTemplate 中使用。

示例配置:

spring.redis.master=master
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.2:26379
spring.redis.password=yourpassword
  • spring.redis.master: 该配置指定 Redis 哨兵模式中的主节点名称(通常为 mymaster)。
  • spring.redis.sentinel.nodes: 这是 Redis 哨兵节点的地址列表,用逗号分隔。每个地址指定了一个哨兵节点的位置,通常是多个冗余的 Redis 哨兵节点。
  • spring.redis.password: 如果 Redis 设置了密码,您可以在此处指定。

作用:
通过这些配置,Spring Boot 可以配置连接到 Redis 哨兵,并通过哨兵节点动态管理 Redis 的主从切换,确保高可用性。

RedissonClient 配置:
@Bean
public RedissonClient redissonClient() {Config config = new Config();config.useMasterSlaveServers().setMasterAddress("redis://127.0.0.1:6379").addSlaveAddress("redis://127.0.0.2:6379", "redis://127.0.0.3:6379").setPassword("yourpassword");return Redisson.create(config);
}
  • useMasterSlaveServers(): 这是 Redisson 中用于主从模式的配置方法。它会指定 Redis 主节点的地址(setMasterAddress)和从节点的地址(addSlaveAddress)。Redisson 会在主节点不可用时自动切换到从节点。
  • setMasterAddress("redis://127.0.0.1:6379"): 设置主节点的地址。
  • addSlaveAddress("redis://127.0.0.2:6379", "redis://127.0.0.3:6379"): 设置从节点的地址。您可以添加多个从节点以实现负载均衡。
  • setPassword("yourpassword"): 设置 Redis 密码。

作用:
Redisson 会使用主从模式连接到 Redis,自动处理主从切换,并提供高可用性。与 RedisTemplate 配置相比,RedissonClient 提供了更强大的分布式功能,例如分布式锁和队列等。


3. 哨兵模式

application.properties 配置:
spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.2:26379
spring.redis.password=yourpassword
  • spring.redis.sentinel.master: 该配置指定 Redis 哨兵模式中的主节点名称。
  • spring.redis.sentinel.nodes: 配置 Redis 哨兵的节点列表。每个哨兵节点的 IP 地址和端口号,Spring Boot 会根据这个配置来发现主从节点,并管理主从切换。
  • spring.redis.password: 如果 Redis 设置了密码,则在此处指定。

作用:
Spring Boot 会根据配置自动连接到 Redis 哨兵,并使用动态的主从切换来实现高可用性。

RedissonClient 配置:
@Bean
public RedissonClient redissonClient() {Config config = new Config();config.useSentinelServers().setMasterName("mymaster").addSentinelAddress("redis://127.0.0.1:26379", "redis://127.0.0.2:26379").setPassword("yourpassword");return Redisson.create(config);
}
  • useSentinelServers(): 配置 Redisson 使用哨兵模式进行连接。它会自动从哨兵节点获取 Redis 主节点的信息,并进行主从切换。
  • setMasterName("mymaster"): 指定主节点名称(和 Spring Boot 配置中的 spring.redis.sentinel.master 一致)。
  • addSentinelAddress("redis://127.0.0.1:26379", "redis://127.0.0.2:26379"): 设置 Redis 哨兵节点的地址。
  • setPassword("yourpassword"): 设置 Redis 密码。

作用:
Redisson 使用 Redis 哨兵模式来提供高可用性,支持自动的故障切换和重新连接。


4. 集群模式

application.properties 配置:
spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379
spring.redis.password=yourpassword
  • spring.redis.cluster.nodes: 配置 Redis 集群的节点列表。每个节点都是 Redis 集群的一部分,集群中的节点会协同工作提供分片和高可用性。
  • spring.redis.password: 如果 Redis 集群配置了密码,您可以在此处指定。

作用:
Spring Boot 会根据配置自动连接到 Redis 集群,并提供分片和高可用性支持。通过 RedisClusterConfiguration,Spring Boot 能够管理 Redis 集群的连接。

RedissonClient 配置:
@Bean
public RedissonClient redissonClient() {Config config = new Config();config.useClusterServers().addNodeAddress("redis://127.0.0.1:6379", "redis://127.0.0.2:6379", "redis://127.0.0.3:6379").setPassword("yourpassword");return Redisson.create(config);
}
  • useClusterServers(): 配置 Redisson 使用 Redis 集群模式。它会自动发现 Redis 集群的节点,并连接到集群中的各个节点。
  • addNodeAddress("redis://127.0.0.1:6379", "redis://127.0.0.2:6379", "redis://127.0.0.3:6379"): 设置 Redis 集群节点的地址。通常配置多个节点地址以支持 Redis 集群中的所有分片。
  • setPassword("yourpassword"): 配置 Redis 集群的密码。

作用:
Redisson 使用 Redis 集群模式提供分片和高可用性支持,可以处理更大的数据量和更高的负载。


总结

部署模式RedisTemplate 配置RedissonClient 配置
单机模式使用 spring.redis.hostspring.redis.port 配置使用 useSingleServer() 配置单机 Redis 地址
主从模式默认不支持,需通过 LettuceConnectionFactory 手动配置使用 useMasterSlaveServers() 配置主从节点地址
哨兵模式使用 spring.redis.sentinel 配置主从节点使用 useSentinelServers() 配置哨兵节点和主节点
集群模式使用 spring.redis.cluster.nodes 配置集群节点使用 useClusterServers() 配置集群节点地址

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

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

相关文章

Docker 入门:如何使用 Docker 容器化 AI 项目(一)

引言 在人工智能(AI)项目的开发和部署过程中,环境配置和依赖管理往往是开发者遇到的挑战之一。开发者通常需要在不同的机器上运行同样的代码,确保每个人使用的环境一致,才能避免 “在我的机器上可以运行”的尴尬问题。…

ExcelVBA编程输出ColorIndex与对应颜色色谱

标题 ExcelVBA编程输出ColorIndex与对应颜色色谱 正文 解决问题编程输出ColorIndex与对应色谱共56,打算分4纵列输出,标题是ColorIndex,Color,Name 1. 解释VBA中的ColorIndex属性 在VBA(Visual Basic for Applications)中&#xff…

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题(选择题) 题目总数:5 总分数:50 选择题 第 1 题 单选题 Scratch运行以下程宇后,小兔子会( )。 A. 变小 B. 变大 C. 变色 D. …

springboot470基于协同过滤算法的东北特产销售系统的实现(论文+源码)_kaic

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

37. Three.js案例-绘制部分球体

37. Three.js案例-绘制部分球体 实现效果 知识点 WebGLRenderer WebGLRenderer 是Three.js中的一个渲染器类,用于将3D场景渲染到网页上。 构造器 WebGLRenderer( parameters : Object ) 参数类型描述parametersObject渲染器的配置参数,可选。 常用…

leetcode 面试经典 150 题:长度最小的子数组

链接长度最小的子数组题序号209题型数组解题方法滑动窗口难度中等 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件…

【游戏设计原理】22 - 石头剪刀布

一、游戏基础:拳头、掌心、分指 首先,石头剪刀布(又名“Roshambo”)看似简单,实际上可是个“深藏玄机”的零和博弈(听起来很高深,其实就是输赢相抵消的意思)。游戏中有三种手势&…

五、windows上vscode构建c/c++环境

1、安装vscode 官网下载界面:https://code.visualstudio.com/Download 请根据电脑系统安装所需版本点击下载链接(一般情况下点击windows按钮即可)鼠标左键双击,即可运行安装程序,点击【确认】;选择安装路径…

三格电子——新品IE103转ModbusTCP网关

型号:SG-TCP-IEC103 产品概述 IE103转ModbusTCP网关型号SG-TCP-IEC103,是三格电子推出的工业级网关(以下简称网关),主要用于IEC103数据采集、DLT645-1997/2007数据采集,IEC103支持遥测和遥信,可…

数据结构---------二叉树前序遍历中序遍历后序遍历

以下是用C语言实现二叉树的前序遍历、中序遍历和后序遍历的代码示例&#xff0c;包括递归和非递归&#xff08;借助栈实现&#xff09;两种方式&#xff1a; 1. 二叉树节点结构体定义 #include <stdio.h> #include <stdlib.h>// 二叉树节点结构体 typedef struct…

UE5仿漫威争锋灵蝶冲刺技能

这两天玩了一下漫威争锋Marvel Rivals&#xff0c;发现是UE5做的&#xff0c;对里面一些角色技能挺感兴趣的&#xff0c;想简单复刻一下技能功能&#xff0c;顺便复习一下学过的知识 首先把摄像机设置调整一下 CameraBoom里搜索lag 把摄像机延迟关掉 &#xff0c;这样摄像机就…

常用类晨考day15

1.基本数据类型以及对应包装类 Byte Short Integer Long Float Double Boolean Character 2.什么是自动拆箱和装箱&#xff0c;jdk版本有什么要求&#xff1f;代码举 例并标明 Integer a 100; // 装箱 int b a; // 拆箱 从JDK1.5才开始支持 3.NumberFormatException是什么异常…

etcd+京东hotkey探测使用

qhotKey链接 京东hotkey把热点数据默认缓存在了本地缓存caffeine中&#xff0c;也可以存到redis中&#xff0c;但是京东hotkey的SDK没有redis的实现方法&#xff0c;因此需要自己实现。 官方目录结构下&#xff1a;分别是client客户端&#xff08;要打包引入到自己的项目&…

如何实现层叠布局

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了GirdView Widget,本章回中将介绍Stack这种Widget,闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 在Flutter中Stack主要用来叠加显示其它的Widget,类似我们日常生活中的楼层或者说PS中的图层,因此它也是一…

Java 上机实践11(组件及事件处理)

&#xff08;大家好&#xff0c;今天分享的是Java的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 Plug&#xff1a;程序实现 方法一&#xff08;记事本&#xff09; 方法二&#xff08;IDEA&#xff09; 实验一&am…

本地如何启动casdoor

1、下载代码 GitHub - casdoor/casdoor at v1.777.0 下载对应tag的代码&#xff0c;我这里选择的时v1.777.0版本 通过网盘分享的文件&#xff1a;casdoor-1.777.0.zip 链接: https://pan.baidu.com/s/1fPNqyJYeyfZnem_LtEc0hw 提取码: avpd 2、启动后端 1、使用goland编译…

CSDN外链失效3:

参考我之前的博客&#xff1a; 外链失效博客1&#xff1a;随想笔记1&#xff1a;CSDN写博客经常崩溃&#xff0c;遇到外链图片转存失败怎么办_csdn外链图片转存失败-CSDN博客 外链失效博客2&#xff1a;网络随想2&#xff1a;转语雀_md格式转语雀lake格式-CSDN博客 markdown…

Kubernates

kubernates是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kubernetes提供了应用部署&#xff0c;规划&#xff0c;更新&#xff0c;维护的一种机制。 架构…

Pycharm 更改字体大小

更改代码字体的大小 更改软件字体的大小

Ubuntu20.04解决docker安装后is the docker daemon running? 问题

Ubuntu20.04解决docker安装后is the docker daemon running? 问题 问题描述问题分析问题解决 问题描述 docker info后报错 ERROR: Cannot connect to the Docker daemon at unix:///root/.docker/desktop/docker.sock. Is the docker daemon running? errors pretty printi…