明明连接的是Redis的DB0,为什么能查到DB3的数据?
Redis Single开发过程中图简单省事Redis 一般会采用单机模式部署Spring Boot 应用连接 Redis 配置很简单spring: redis: database: 8 port: 6379 password: ****** timeout: 1000 host: 10.106.22.184如上配置连接的是 Redis 的DB8数据库。有些时候为了节省资源开发环境与测试环境会共用 Redis用不同的库进行隔离比如开发环境用DB8测试环境用DB9#测试环境 spring: redis: database: 9 port: 6379 password: ****** timeout: 1000 host: 10.106.22.184我们用同个应用用开发配置启动一个实例用测试配置也启动一个实例看彼此之间是否做到数据隔离了开发环境配置application-dev.ymlspring: redis: database: 8 port: 6379 password: ****** timeout: 1000 host: 10.106.22.184 server: port: 8081测试环境配置application-test.ymlspring: redis: database: 9 port: 6379 password: ****** timeout: 1000 host: 10.106.22.184 server: port: 8082新增两个接口一个往 Redis 的 List 中写数据一个从 Redis 的List 中读数据/** * author 青石路 */ RestController RequestMapping(db) public class DBController { private static final String LIST_KEY qsl:elem:list; Resource private RedisTemplateString, Object redisTemplate; GetMapping(add) public String listAdd(RequestParam(elem) String elem) { redisTemplate.opsForList().leftPush(LIST_KEY, elem); return elem; } GetMapping(rangeAll) public ListObject rangeAll() { return redisTemplate.opsForList().range(LIST_KEY, 0, -1); } }我们先调开发环境的add接口http://localhost:8081/db/add?elem123再调测试环境的rangeAll接口http://localhost:8082/db/rangeAll并未查询到开发环境的数据是不是开发环境数据写入 Redis 失败了呢我们再调下开发环境的rangeAll接口http://localhost:8081/db/rangeAll说明开发环境的 Redis 数据是写入成功的也说明Redis 的数据库之间是彼此隔离的其实我们验证的时候没必要这么麻烦直接通过 Redis 客户端连接 Redis 进行操作验证即可在DB8上添加的数据并不会在DB9查到Redis Cluster生产环境会追求 Redis 高性能的同时还会要求其高可用往往会采用集群模式部署。为了各个环境一致那么开发环境与测试环境的 Redis 也采用集群模式部署开发、测试、生产环境尽量保持一致因为环境不一致导致的问题排查起来真的很头疼但有时候服务器资源确实不充裕那么开发环境与测试环境往往会共用一套 Redis 集群用数据库隔离应用配置稍微调整下即可开发环境配置application-dev.ymlspring: redis: database: 8 password: hello-#redis timeout: 10000 cluster: nodes: 10.106.0.219:26379,10.106.0.220:26379,10.106.0.221:26379 server: port: 8081测试环境配置application-test.ymlspring: redis: database: 9 password: hello-#redis timeout: 10000 cluster: nodes: 10.106.0.219:26379,10.106.0.220:26379,10.106.0.221:26379 server: port: 8082是不是 so easy 我们先调测试环境的rangeAll接口http://localhost:8082/db/rangeAll此时测试环境是没有数据的我们再调开发环境的add接口http://localhost:8081/db/add?elemcluster123添加成功后我们再调测试环境的rangeAll接口对你们没看错查出数据了直接用 Redis 客户端看看我们选DB8会报错ERR SELECT is not allowed in cluster mode不只是DB8除了DB0之外的库都不能选莫非 Redis 集群模式只支持DB0 我们去翻一下官方说明cluster-spec里面有这么一段说明明确指出Redis 集群不像单机它不支持多数据库不允许使用 SELECT 命令也就是说集群模式下配置文件中的spring: redis: database: 9无效连接的始终是DB0库还隔离个毛的数据集群模式为什么只支持DB0跟 Redis 的设计理念有关Redis 设计上最求简单性和一致性集群模式下如果还支持多数据库你们觉得还会简单一致性还容易保证吗更细致的原因我们可以问问大模型以下是 DeepSeek 的回答

相关新闻

Web安全攻防:RCE与文件包含漏洞原理、利用与防御实战

Web安全攻防:RCE与文件包含漏洞原理、利用与防御实战

1. 项目概述:从“黑盒”到“白盒”的必经之路刚入行那会儿,听到“RCE”和“文件包含”这些词,总觉得是高手才能玩转的东西,带着一层神秘面纱。后来自己上手做项目,才发现它们其实是Web安全测试里最基础、也最致命的“敲…

2026/6/25 23:47:13阅读更多 →
(论文速读)PFGM++:释放受物理启发的生成模型的潜力

(论文速读)PFGM++:释放受物理启发的生成模型的潜力

论文题目:PFGM: Unlocking the Potential of Physics-Inspired Generative Models(PFGM:释放受物理启发的生成模型的潜力) 会议:ICML2023 摘要:我们介绍了一类新的受物理启发的生成模型,称为PF…

2026/6/25 23:47:13阅读更多 →
3步解锁Roblox帧率限制:完整教程与优化指南

3步解锁Roblox帧率限制:完整教程与优化指南

3步解锁Roblox帧率限制:完整教程与优化指南 【免费下载链接】rbxfpsunlocker FPS Unlocker for Roblox 项目地址: https://gitcode.com/gh_mirrors/rb/rbxfpsunlocker 还在为Roblox游戏的60帧限制而烦恼吗?想要在高性能显示器上享受更流畅的游戏体…

2026/6/25 23:47:13阅读更多 →
大语言模型推理加速:SPEQ位共享量化技术解析

大语言模型推理加速:SPEQ位共享量化技术解析

1. 大语言模型推理加速的困境与突破 大语言模型(LLM)在各类任务中展现出惊人能力的同时,其庞大的参数量也带来了显著的推理延迟。以Llama3.1-8B模型为例,在1024个token的预填充和1024个token的解码场景下,权重加载操作…

2026/6/26 1:07:22阅读更多 →
2026必看|AI编程软件功能深度实测:从权限踩坑到全链路开发

2026必看|AI编程软件功能深度实测:从权限踩坑到全链路开发

AI编程工具轮流用,看谁的介入感最自然。作为大厂后端组长,我在SaaS订阅系统(项目代号:SaaS-Sub V4.0)的开发中,深度试用了TRAE、Amazon Q Developer、CodeBuddy、JetBrains AI Assistant、Google Gemini Co…

2026/6/26 1:07:22阅读更多 →
Python项目依赖URL安全实践:基于git-crypt的透明加密方案

Python项目依赖URL安全实践:基于git-crypt的透明加密方案

1. 项目概述:为什么Python项目中的依赖URL需要“终极安全”?如果你在团队里维护过一个稍微有点规模的Python项目,尤其是涉及私有包、内部服务API或者需要特定认证的依赖源时,大概率遇到过这个头疼的问题:requirements.…

2026/6/26 1:07:22阅读更多 →
LinkSwift网盘直链解析技术:重新定义云存储下载体验

LinkSwift网盘直链解析技术:重新定义云存储下载体验

LinkSwift网盘直链解析技术:重新定义云存储下载体验 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…

2026/6/26 1:07:22阅读更多 →
2026年个人AI编程免费工具深度实测推荐

2026年个人AI编程免费工具深度实测推荐

我的代码仓库有 30 万行,AI 编程工具能不能索引这么大的项目是个硬指标。5 款工具在大项目上的表现差距很大。我上周刚把做了一半的在线表单收集SaaS副业项目迁到TRAE里,它的基础版免费,我之前测过好几款工具,中文需求理解准确率行…

2026/6/26 1:07:22阅读更多 →
界面控件DevExpress v26.1 正式发布!跨平台基建全面升级 + 全栈 AI 能力重磅更新

界面控件DevExpress v26.1 正式发布!跨平台基建全面升级 + 全栈 AI 能力重磅更新

DevExpress 2026 年第一个重磅版本 v26.1 现已全面上线,本次更新一改以往单组件小迭代模式,优先完成全产品线跨平台底层基建重构,同时打通 WinForms/WPF/Blazor/DevExtreme Web 全平台统一 AI 开发体系,大幅降低多端项目维护成本、…

2026/6/26 1:02:22阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/25 2:52:24阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/25 9:01:34阅读更多 →
HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

HPE (慧与) 服务器专用 ESXi 9 全套官方定制资源详解 + 完整部署升级教程

一、前言:企业运维痛点与资源价值自博通收购 VMware 之后,原 VMware 公开免费下载渠道全面关闭,企业运维人员想要获取适配 HPE 慧与服务器的 ESXi 9 原厂镜像,必须注册博通账号、绑定有效授权才能下载,无授权账号无法获…

2026/6/26 0:02:15阅读更多 →
Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin的@JvmStatic与@JvmField:与Java互操作的注解

Kotlin作为一门现代编程语言,与Java的互操作性一直是其核心优势之一。为了让Kotlin代码能够无缝对接Java,Kotlin提供了多种注解来优化互操作体验,其中JvmStatic和JvmField是两个关键注解。它们分别用于解决静态成员和字段在Java中的访问问题&…

2026/6/26 0:02:15阅读更多 →
深入解析musl libc中的mmap实现源码

深入解析musl libc中的mmap实现源码

最近在阅读musl libc源码时,发现其mmap的实现非常精妙,特分享给大家。 一、代码整体结构 这段代码实现了__mmap函数,并通过weak_alias导出为mmap。这是典型的musl libc风格——提供弱符号以便用户可以重写。 weak_alias(__mmap, mmap); 二…

2026/6/26 0:02:15阅读更多 →