当前位置: 首页 > news >正文

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.1
    port: 6379
    password: 123456
    database: 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: 1
      password: 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

相关文章:

  • Excel处理控件Aspose.Cells指南:如何在不使用 Microsoft Excel 的情况下解锁 Excel 工作表
  • 4.6js面向对象
  • github使用
  • K8S学习之基础五十九:部署gitlab服务
  • 学校安全用电管理,还得是CET高校综合能源管理系统解决方案
  • 科技推动下,楼宇自控技术在建筑节能领域如何大放异彩
  • Flutter视频播放优化
  • 通过外网访问局域网内某台电脑的共享文件夹(Win10/11)
  • 【数学建模】动态规划算法(Dynamic Programming,简称DP)详解与应用
  • PrimeTime生成.lib竟暗藏PG添加Bug
  • JavaScript模板字符串:
  • ​​解锁 JavaScript DOM:节点操作的核心方法与最佳实践
  • CSS之盒子模型
  • 数据库----单表、多表
  • 【QT5 多线程示例】条件变量
  • WPF TemplateBinding与TemplatedParent区别
  • CSS3:现代Web设计的魔法卷轴
  • 【深度学习总结】多模态推理分割:LISA代码详解
  • JVM中的垃圾回收算法
  • 模拟电子技术-基本放大电路
  • 如何做不同域名跳转同一个网站/网站建设推广公司
  • 大学生建设网站/网站关键词seo优化公司
  • 高端网站建设 企业网站建站/网站推广的方式和方法
  • angularjs 网站开发/百度推广关键词怎么设置好
  • 专门做相声的网站/什么网站可以发布广告
  • 如何进行一个网站建设/建立企业网站步骤