Redis 单机16个db,集群只有一个的基本知识

目录

  • 前言
  • 1. 基本知识
  • 2. 配置

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

爬虫神器,无代码爬取,就来:bright.cn

Java基本知识:

  1. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
  2. 【Java项目】实战CRUD的功能整理(持续更新)

一个偶然的机会,突然发现Redis原来是好几个DB,原先背的八股文都抛之脑后了,接触下来才发现!

在这里插入图片描述

1. 基本知识

✅ 单机模式下的 Redis:
Redis 默认支持 16 个逻辑数据库,编号从 0 到 15,可以在 redis.conf 中看到:

databases 16

每个逻辑库之间是完全隔离的,可以通过命令切换:

SELECT 0  # 切换到 db0
SELECT 1  # 切换到 db1

启动 Redis 后所有客户端默认进入 db0

每个逻辑库内的 key-value 是独立的,不共享

🔗 二、Redis 集群没有逻辑数据库概念(db=0)

重点:Redis Cluster 模式下只能使用 db 0,其他逻辑数据库不可用

这是官方明确指出的:

When using Redis Cluster, the database number must be zero (db 0), because data is partitioned across multiple nodes.

原因:
Redis Cluster 的分布式设计是基于 key 的哈希槽进行数据分片存储(16384 个 slot),不再使用多逻辑数据库

🧠 三、Redis 数据分布机制(单机 vs 集群)

模式数据库数量数据存储方式key 分布
单机 Redis默认 16 个所有数据在一个实例内按逻辑数据库隔离
Redis Cluster仅 db0按 key 哈希分到多个节点按 slot 分布

📌 集群模式下的分布原理:(这一部分八股文常考,不过实际原理是这样的)
Redis 把 key 映射到 0~16383 共 16384 个 hash slot
每个节点负责一部分 slot。
比如:Node1 负责 0~ 5460,Node2 负责 5461~ 10922,Node3 负责 10923~16383
key 根据 CRC16 计算 slot,然后落在对应节点

2. 配置

🧾 Spring Boot 中 Redis 的配置方式(yaml)
✅ 单机版 YAML 示例:

spring:redis:host: 127.0.0.1port: 6379password: 123456database: 1   # 使用第1个逻辑数据库(db1)

截图如下:(生产环境 测试环境 如果是同一个服务器,可以专门区分下)

在这里插入图片描述

✅ 单机版 Java 配置(application.properties):

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=123456
spring.redis.database=2

说明:默认 database=0
设置 spring.redis.database=1 会在连接 Redis 后自动执行 SELECT 1

以下的集群模式(我是通过DeepSeek了解,后续还未进行验证):
🧾 Redisson 的配置说明(适用于单机与集群)
✅ 单机模式配置:

redisson:config: |singleServerConfig:address: "redis://127.0.0.1:6379"database: 1password: 123456

或者 Java 方式:

Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379").setDatabase(1).setPassword("123456");
RedissonClient redisson = Redisson.create(config);

✅ 集群模式配置(只支持 db0,不可设置 database):

redisson:config: |clusterServersConfig:nodeAddresses:- "redis://192.168.1.1:7000"- "redis://192.168.1.2:7001"- "redis://192.168.1.3:7002"password: 123456

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

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

相关文章

蓝桥杯C++基础算法-多重背包(优化)

这段代码实现了一个多重背包问题的动态规划解法,并且使用了二进制拆分(或称二进制优化)来优化物品的数量处理。这种方法可以显著减少状态转移的次数,提高算法的效率。以下是代码的详细思路解析: 1. 问题背景 给定 n 个…

FALL靶机攻略

1.下载靶机,导入靶机 下载地址:https://download.vulnhub.com/digitalworld/FALL.7z 开启靶机。 2. 靶机、kali设置NAT网卡模式 3. kali扫描NAT网卡段的主机 kali主机 nmap扫描:nmap 192.168.92.1/24 判断出靶机ip是192.168.92.133。开启…

notepad++代码查看器分享

文章目录 📝 Notepad 简介🔧 主要特点打开.c文件示意高亮语法展示全局替换功能展示 📝 Notepad 简介 Notepad 是一款 免费的开源文本编辑器和源代码编辑器,运行在 Windows 系统上。 它是对 Windows 自带“记事本”的增强版本&…

详细介绍Spring MVC的执行流程是怎么样的?

Spring MVC 是 Spring 框架的一部分,用于构建 Web 应用程序。它的执行流程如下: 前端控制器(DispatcherServlet)接收请求:用户通过浏览器发送 HTTP 请求到服务器,请求首先被前端控制器 DispatcherServlet 接…

MySQL中的内连接与外连接详解:基础与进阶应用

文章目录 表的内连和外连(重点)内连接外连接左外连接右外连接 简单回顾 表的内连和外连(重点) 表的连接分为内连和外连 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都…

动态内存分配与内存对齐

在C语言及其他低级编程语言中,内存管理是一个至关重要的主题。动态内存分配和内存对齐是确保程序高效和稳定运行的关键因素。本文将深入探讨动态内存分配的原理,内存对齐的概念,并解释它们如何共同影响程序的性能和资源利用。 一、动态内存分配简介 1.1 动态内存分配的概念…

Milvus×最新版DeepSeek v3:对标Claude,本地数据五分钟写网站

前言 就在昨晚,DeepSeek v3推出了新版本V3-0324,再次一夜爆火。 虽然官方表示“这只是一次小升级”“API接口和使用方式不变”,但经过Zilliz的第一时间实测,我们发现无论是逻辑能力,还是编程能力,相较原本的…

6.M-LAG专题

M-LAG 的作用及特点 能不能简单的描述以下M-LAG的工作原理? 跨设备链路聚合,将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担 M-LAG(跨设备链路聚合)是基于IEEEP802.1A协议的跨设备链路聚合技术。…

每日免费分享之精品wordpress主题系列~DAY16

主题介绍: 今日在网上寻找wordpress主题的时候逛到了大叔的网站,赶脚这个主题蛮不错的,于是百度一下,果然,这个主题很受欢迎。作为主题下载站追梦者也不甘落后,马上就发布出来了,希望对你们有用…

LeeCode 383. 赎金信

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1: 输入&#…

目标检测20年(一)

今天看的文献是《Object Detection in 20 Years: A Survey》,非常经典的一篇目标检测文献,希望通过这篇文章学习到目标检测的基础方法并提供一些创新思想。 论文链接:1905.05055 目录 一、摘要 1.1 原文 1.2 翻译 二、介绍 三、目标检测…

分割 / 合并大文件的简单 python 代码

使用方法 分割: python fs.py -n <分割后的文件个数> <要分割的文件> 合并: python fs.py -m <分割文件1> <分割文件2> ... 示例 PS C:\Users\Administrator\Desktop> python fs.py 使用方法: 分割: python fs.py -n <分割后的文件个数> &…

IDEA 快捷键ctrl+shift+f 无法全局搜索内容的问题及解决办法

本篇文章主要讲解IDEA、phpStrom、webStrom、pyCharm等jetbrains系列编辑器无法进行全局搜索内容问题的主要原因及解决办法。 日期&#xff1a;2025年3月22日 作者&#xff1a;任聪聪 现象描述&#xff1a; 1.按下ctrlshiftf 输入法转为了繁体。 2.快捷键ctrlshiftr 可以全局检…

树状数组【数据结构】

树状数组 简介 1.应用 1.单点修改区间查询 2.区间修改单点查询(差分) 3.区间修改区间查询(差分公式) 总而言之,就是动态维护前缀和。 2.树状结构图 3.lowbit函数 我们知道&#xff0c;任何一个正整数都可以被表示成一个二进制数。如&#xff1a; ( 2 ) 10 ( 10 ) 2 (2)_{10…

pytorch+maskRcnn框架训练自己的模型以及模型导出ONXX格式供C++部署推理

背景 maskrcnn用作实例分割时&#xff0c;可以较为精准的定位目标物体&#xff0c;相较于yolo只能定位物体的矩形框而言&#xff0c;优势更大。虽然yolo的计算速度更快。 直接开始从0到1使用maskrCNN训练自己的模型并并导出给C部署&#xff08;亲测可用&#xff09; 数据标注…

PCL配置

1、下载 打开GitHub网站&#xff0c;搜索pcl&#xff0c;选择第一个结果打开&#xff0c;按照下图步骤操作 下载PCL预编译安装程序PCL-1.13.1-AllInOne-msvc2022-win64.exe 和要安装的PCL组件&#xff08;例如pcl-1.13.1-pdb-msvc2022-win64.zip&#xff09; 2、安装 双击 P…

大模型tokenizer重构流程

大模型tokenizer层再训练&#xff08;选取Qwen7B试验&#xff0c;重构token层&#xff09; 最近公司可能想训练一个蛋白质大模型&#xff0c;需要了解一下大模型tokenizer重构&#xff0c;之后可能要训练&#xff0c;这里做了一定的总结。 文章目录 1. 首先查看Qwen2.5 7B基本…

Android设计模式之单例模式

一、定义&#xff1a;确保一个类只有一个实例&#xff0c;并且自动实例化&#xff0c;并向整个系统提供这个实例。 二、使用场景&#xff1a;避免重复创建对象&#xff0c;过多消耗系统资源。 三、使用方式 3.1饿汉式&#xff1a;类加载时立即初始化&#xff0c;线程安全&…

docker ssh远程连接

目录 操作命令&#xff1a; 确保 SSH 配置允许 root 登录&#xff1a; docker提交&#xff1a; 操作命令&#xff1a; # 进入容器 docker exec -ti lbg04 /bin/bash# 更新包管理并安装 SSH 服务&#xff08;Ubuntu/Debian 示例&#xff09; apt-get update apt-get install…

关于matlab和python谁快的问题

关于matlab和python谁快的问题&#xff0c;python比matlab在乘法上快10倍&#xff0c;指数计算快4倍&#xff0c;加减运算持平&#xff0c;略慢于matlab。或许matlab只适合求解特征值。 import torch import timen 50000 # 矩阵规模 M torch.rand(n, 31)start_time time.t…