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

Redis | 集群模式

Redis | 集群模式

随着互联网应用规模的不断扩大,单一节点的数据库性能已经无法满足大规模应用的需求。为了提高数据库的性能和可扩展性,分布式数据库成为了解决方案之一。Redis 作为一个高性能的内存数据库,自然也有了自己的分布式部署方式——Redis 集群模式。

1. 什么是 Redis 集群模式?

Redis 集群模式是 Redis 数据库的一种分布式部署方式,它通过数据分片(Sharding)将数据存储在多个节点上,从而实现数据的水平拆分和负载均衡。每个节点负责处理其中一部分数据,并支持主从复制以提供数据冗余和高可用性。

在 Redis 集群中,数据被分成 16384 个槽(slots),每个槽对应一个节点。数据根据一定的规则(通常是键的哈希值)被映射到不同的槽上,从而实现分布式存储。当集群中添加或移除节点时,Redis 会自动重新分片数据,无需手动迁移数据,大大简化了扩容和缩容操作。

2. Redis 集群的特点

  1. 高性能和低延迟:由于 Redis 是一个内存数据库,它能够提供高性能和低延迟的读写操作,适用于对响应速度有要求的应用场景。
  2. 高可用性:Redis 集群支持主从复制,每个节点都有一个或多个从节点用于数据备份。当主节点失效时,从节点可以自动切换成主节点,保障数据的可用性。
  3. 自动分片和负载均衡:Redis 集群在添加或移除节点时,会自动重新分片数据,无需手动干预。客户端可以直接连接到集群中的任意节点,并根据键的哈希值将请求发送到对应的节点,实现负载均衡。
  4. 无中心节点:Redis 集群没有单点故障,没有中心节点,所有节点都是平等的,减少了集群的单点故障风险。

3. 配置

启动参数方式

  • --cluster-enabled yes:开启集群
  • cluster-node-timeout 15000:集群节点间超时时间
  • --masterauth <master-node-password>:主节点密码

配置文件方式

redis.conf

cluster-enabled yes
cluster-node-timeout 15000
masterauth <master_node_password>

4. 演示

docker-compose.yaml

version: "3.8"
networks:network:ipam:driver: defaultconfig:- subnet: '192.168.200.0/24'
services:redis1:container_name: redis1image: redis:7.0networks:network:ipv4_address: 192.168.200.2command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis2:container_name: redis2image: redis:7.0networks:network:ipv4_address: 192.168.200.3command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis3:container_name: redis3image: redis:7.0networks:network:ipv4_address: 192.168.200.4command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis4:container_name: redis4image: redis:7.0networks:network:ipv4_address: 192.168.200.5command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis5:container_name: redis5image: redis:7.0networks:network:ipv4_address: 192.168.200.6command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*redis6:container_name: redis6image: redis:7.0networks:network:ipv4_address: 192.168.200.7command:- redis-server- --cluster-enabled yes- --cluster-node-timeout 15000- --requirepass 123456- --masterauth 123456- --bind * -::*
  1. 启动:docker compose up
  2. 创建集群:进入容器docker exec -it redis1 bash
    redis-cli \
    -a 123456 \
    --cluster \
    create \
    192.168.200.2:6379 192.168.200.3:6379 192.168.200.4:6379 \
    192.168.200.5:6379 192.168.200.6:6379 192.168.200.7:6379 \
    --cluster-replicas 1
    
  3. 进入集群操作

    注意:一定要添加-c参数。

    redis-cli -c -a 123456
    
  4. 测试
    127.0.0.1:6379> set name yimt
    -> Redirected to slot [5798] located at 192.168.200.7:6379
    OK
    192.168.200.7:6379> get name
    "yimt"
    
http://www.lryc.cn/news/114684.html

相关文章:

  • 8.3day04git+数据结构
  • 04-5_Qt 5.9 C++开发指南_QComboBox和QPlainTextEdit
  • Sqlserver_Oracle_Mysql_Postgresql不同关系型数据库之主从延迟的理解和实验
  • Clickhouse学习系列——一条SQL完成gourp by分组与不分组数值计算
  • 做好“关键基础设施提供商”角色,亚马逊云科技加快生成式AI落地
  • 如何使用 ChatGPT 规划家居装修
  • 题解 | #1002.Random Nim Game# 2023杭电暑期多校7
  • 篇九:组合模式:树形结构的力量
  • 【注册表】windows系统注册表常用修改方案
  • ant-design-vue 4.x升级问题-样式丢失问题
  • 【果树农药喷洒机器人】Part3:变量喷药系统工作原理介绍
  • GoogLeNet创新点总结
  • 不同路径1、2、3合集(980. 不同路径 III)
  • 【云原生】Yaml文件详解
  • ffmpeg下载安装教程
  • uniapp之当你问起“tab方法触发时eventchange也跟着触发了咋办”时
  • TS 踩坑之路(四)之 Vue3
  • 【音视频】edge与chrome在性能上的比较
  • Docker Compose编排部署LNMP服务
  • git使用(常见用法)
  • 用例拆分情况考虑方案
  • 一文搞懂IS-IS报文通用格式
  • 位置参数 关键字参数
  • 【果树农药喷洒机器人】Part5:基于深度相机与分割掩膜的果树冠层体积探测方法
  • 生活小妙招之UE custom Decal
  • DAY02_Spring—第三方资源配置管理Spring容器Spring注解开发Spring整合Mybatis和Junit
  • Icon图标有哪些在线设计的工具推荐
  • 深度学习环境安装依赖时常见错误解决
  • opencv基础47 查找图像轮廓cv2.findContours()详解
  • Splunk Enterprise for mac(可视化数据分析软件)详细安装教程