iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Redis集群(cluster模式)搭建
  • 804
分享到

Redis集群(cluster模式)搭建

redis数据库javalinux 2023-09-05 07:09:42 804人浏览 泡泡鱼
摘要

目录 1、什么是集群 2、为什么使用 3、集群连接 4、redis cluster 如何分配这六个节点? 5、集群搭建: 1、什么是集群 Redis 集群(包括很多小集群)实现了对Redis的水平扩容,即启动N个redis节点,将整个

目录

1、什么是集群

2、为什么使用

3、集群连接

4、redis cluster 如何分配这六个节点?

5、集群搭建:


1、什么是集群

  1. Redis 集群(包括很多小集群)实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N,即一个小集群存储1/N的数据,每个小集群里面维护好自己的1/N的数据。
  2. Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。
  3. 该模式的redis集群特点是:分治、分片。

2、为什么使用

  1. 容量不够,redis如何进行扩容?

  2. 并发写操作, redis如何分摊?

  3. 另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息。

  4. 之前通过代理主机来解决,但是redis3.0中提供了解决方案。就是无中心化集群配置。

3、集群连接

  1. 普通方式登录:可能直接进入读主机,存储数据时,会出现MOVED重定向操作,所以,应该以集群方式登录。
  2. 集群登录:redis-cli -c -p 6379 采用集群策略连接,设置数据会自动切换到相应的写主机。

4、redis cluster 如何分配这六个节点?

  1. 一个集群至少要有三个主节点。

  2. 选项 –cluster-replicas 1 :表示我们希望为集群中的每个主节点创建一个从节点。

  3. 分配原则尽量保证每个主数据库运行在不同的IP地址,每个从库和主库不在一个IP地址上。

5、集群搭建:

1)  通过redis中utils路径下 ./install_server.sh 执行文件创建6个不同的redis节点,端口号分别为6379、6380、6381、8362、6383、6384

2)如果各个节点原本有存储数据,则先将各个节点的数据文件清空。将6个文件夹内的文件全部删除。

清空数据目录。删除 Redis 数据目录下的所有文件。使用命令:  rm -rf /path/to/redis/data/*

3)修改6个redis节点的配置文件

在 /etc/redis 文件中,找到每一个端口号对应的配置文件:

例如修改的内容如下:
bind 0.0.0.0
port 6380 # 设置成对应服务专属的端口号
daemonize yes
dbfilename "dump6380.rdb"  # 设置成对应服务专属的名字
appendonly yes
cluster-enabled yes
cluster-config-file nodes-6380.conf  # 设置成对应服务专属的

 4)启动六个节点

[root@boGon src]# ./redis-server /etc/redis/6379.conf[root@bogon src]# ./redis-server /etc/redis/6380.conf[root@bogon src]# ./redis-server /etc/redis/6381.conf[root@bogon src]# ./redis-server /etc/redis/6382.conf[root@bogon src]# ./redis-server /etc/redis/6383.conf[root@bogon src]# ./redis-server /etc/redis/6384.conf

5)查看各个节点是否启动成功  

[root@bogon src]# ps -ef | grep redisroot        3889       1  0 09:56 ?        00:00:03 ./redis-server 0.0.0.0:6379 [cluster]root        3895       1  0 09:56 ?        00:00:03 ./redis-server 0.0.0.0:6380 [cluster]root        3901       1  0 09:57 ?        00:00:03 ./redis-server 0.0.0.0:6381 [cluster]root        3907       1  0 09:57 ?        00:00:02 ./redis-server *:6382 [cluster]root        3913       1  0 09:57 ?        00:00:02 ./redis-server 0.0.0.0:6383 [cluster]root        3919       1  0 09:57 ?        00:00:02 ./redis-server 0.0.0.0:6384 [cluster]root        4247    2418  0 10:22 pts/0    00:00:00 grep --color=auto redis

6)配置集群

命令格式: --cluster-replicas 1 表示为每个master创建一个slave节点

注意:这里的IP为每个节点所在机器的真实IP  

[root@localhost src]# ./redis-cli --cluster create 192.168.177.128:6379 192.168.177.128:6380 192.168.177.128:6381 192.168.177.128:6382 192.168.177.128:6383 192.168.177.128:6384 --cluster-replicas 1>>> Performing hash slots allocation on 6 nodes...Master[0] -> Slots 0 - 5460Master[1] -> Slots 5461 - 10922Master[2] -> Slots 10923 - 16383Adding replica 192.168.177.128:6383 to 192.168.177.128:6379Adding replica 192.168.177.128:6384 to 192.168.177.128:6380Adding replica 192.168.177.128:6382 to 192.168.177.128:6381>>> Trying to optimize slaves allocation for anti-affinity[WARNING] Some slaves are in the same host as their masterM: ae77569d28f01657d9e3e04810e8562abdb3f5dd 192.168.177.128:6379   slots:[0-5460] (5461 slots) masterM: 5ccafb9ee2f223c987c740d3d8282f200e4892dd 192.168.177.128:6380   slots:[5461-10922] (5462 slots) masterM: dcd5d5066cd9aa5e3f2830ce985395acb978d764 192.168.177.128:6381   slots:[10923-16383] (5461 slots) masterS: 8849bb5437931a3fd8510ffa4c0f755f4e26d1eb 192.168.177.128:6382   replicates ae77569d28f01657d9e3e04810e8562abdb3f5ddS: b00800f65775c52519bd6e9f398f916ffe46fed8 192.168.177.128:6383   replicates 5ccafb9ee2f223c987c740d3d8282f200e4892ddS: 6e7a1ae63691267b000363f6528b620a656e03e7 192.168.177.128:6384   replicates dcd5d5066cd9aa5e3f2830ce985395acb978d764Can I set the above configuration? (type 'yes' to accept): yes>>> Nodes configuration updated>>> Assign a different config epoch to each node>>> Sending CLUSTER MEET messages to join the clusterWaiting for the cluster to join..>>> Performing Cluster Check (using node 192.168.177.128:6379)M: ae77569d28f01657d9e3e04810e8562abdb3f5dd 192.168.177.128:6379   slots:[0-5460] (5461 slots) master   1 additional replica(s)M: dcd5d5066cd9aa5e3f2830ce985395acb978d764 192.168.177.128:6381   slots:[10923-16383] (5461 slots) master   1 additional replica(s)M: 5ccafb9ee2f223c987c740d3d8282f200e4892dd 192.168.177.128:6380   slots:[5461-10922] (5462 slots) master   1 additional replica(s)S: 8849bb5437931a3fd8510ffa4c0f755f4e26d1eb 192.168.177.128:6382   slots: (0 slots) slave   replicates ae77569d28f01657d9e3e04810e8562abdb3f5ddS: b00800f65775c52519bd6e9f398f916ffe46fed8 192.168.177.128:6383   slots: (0 slots) slave   replicates 5ccafb9ee2f223c987c740d3d8282f200e4892ddS: 6e7a1ae63691267b000363f6528b620a656e03e7 192.168.177.128:6384   slots: (0 slots) slave   replicates dcd5d5066cd9aa5e3f2830ce985395acb978d764[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.

7)查看主从关系

命令格式:redis-cli --cluster check 【本台redis自己的IP】:【本台redis自己的端口】

[root@localhost src]# ./redis-cli --cluster check 192.168.177.128:6379192.168.177.128:6379 (ae77569d...) -> 0 keys | 5461 slots | 1 slaves.192.168.177.128:6381 (dcd5d506...) -> 0 keys | 5461 slots | 1 slaves.192.168.177.128:6380 (5ccafb9e...) -> 0 keys | 5462 slots | 1 slaves.[OK] 0 keys in 3 masters.0.00 keys per slot on average.>>> Performing Cluster Check (using node 192.168.177.128:6379)M: ae77569d28f01657d9e3e04810e8562abdb3f5dd 192.168.177.128:6379   slots:[0-5460] (5461 slots) master   1 additional replica(s)M: dcd5d5066cd9aa5e3f2830ce985395acb978d764 192.168.177.128:6381   slots:[10923-16383] (5461 slots) master   1 additional replica(s)M: 5ccafb9ee2f223c987c740d3d8282f200e4892dd 192.168.177.128:6380   slots:[5461-10922] (5462 slots) master   1 additional replica(s)S: 8849bb5437931a3fd8510ffa4c0f755f4e26d1eb 192.168.177.128:6382   slots: (0 slots) slave   replicates ae77569d28f01657d9e3e04810e8562abdb3f5ddS: b00800f65775c52519bd6e9f398f916ffe46fed8 192.168.177.128:6383   slots: (0 slots) slave   replicates 5ccafb9ee2f223c987c740d3d8282f200e4892ddS: 6e7a1ae63691267b000363f6528b620a656e03e7 192.168.177.128:6384   slots: (0 slots) slave   replicates dcd5d5066cd9aa5e3f2830ce985395acb978d764[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.

查看下图即可发现,一主对一从: 

8) 主节点数据写测试

加参数 -c ,防止路由失效

[root@bogon src]# ./redis-cli -p 6381 -c127.0.0.1:6381> get name-> Redirected to slot [5798] located at 192.168.109.149:6380(nil)192.168.109.149:6380> get name(nil)192.168.109.149:6380>

9)从节点读数据测试

情况:redis cluster集群中slave节点能成功复制master节点数据槽数据,但是无法get数据,显示只能到对应的master节点读取

原因:Redis Cluster集群中的从节点,官方默认设置的是不分担读请求的、只作备份和故障转移用,当有请求读向从节点时,会被重定向对应的主节点来处理

解决办法:在get数据之前先使用命令readonly,这个readonly告诉 Redis Cluster 从节点客户端愿意读取可能过时的数据并且对写请求不感兴趣

注意:断开连接后readonly就失效了,再次连接需要重新使用该命令。

[root@bogon src]# ./redis-cli -p 6379 -c127.0.0.1:6379> set name zhangsan-> Redirected to slot [5798] located at 192.168.109.149:6380OK192.168.109.149:6380> get name"zhangsan"192.168.109.149:6380>[root@bogon src]# ./redis-cli -p 6383 -c127.0.0.1:6383> get name-> Redirected to slot [5798] located at 192.168.109.149:6380"zhangsan"192.168.109.149:6380>[root@bogon src]# ./redis-cli -p 6383 -c127.0.0.1:6383> readonlyOK127.0.0.1:6383> get name"zhangsan"127.0.0.1:6383>

来源地址:https://blog.csdn.net/Microhoo_/article/details/130561088

--结束END--

本文标题: Redis集群(cluster模式)搭建

本文链接: https://www.lsjlt.com/news/394902.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis集群(cluster模式)搭建
    目录 1、什么是集群 2、为什么使用 3、集群连接 4、redis cluster 如何分配这六个节点 5、集群搭建: 1、什么是集群 Redis 集群(包括很多小集群)实现了对Redis的水平扩容,即启动N个redis节点,将整个数...
    99+
    2023-09-05
    redis 数据库 java linux
  • Redis Cluster 集群搭建你会吗
    三台机器 201、202、203,每台机器装两个 redis 实例,构建 redis cluster 集群。 1. 安装 添加 redis-cluster 目录,将 redis 压缩...
    99+
    2024-04-02
  • Redis 6.X Cluster集群如何搭建
    这篇文章将为大家详细讲解有关Redis 6.X Cluster集群如何搭建,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 Part1Redis 6.X Cluster 集群搭建1下载解压可直接到...
    99+
    2023-06-15
  • Redis6.0搭建集群Redis-cluster的方法
    此处以三台服务器部署为例,IP地址分别为192.168.124.23,192.168.124.24,192.168.124.25 使用普通用户ubuntu登录 总共三个主节点和三个从...
    99+
    2024-04-02
  • 分布式Redis Cluster集群搭建与Redis基本用法
    目录Redis 集群搭建Redis 是啥集群(Cluster)Redis Cluster 说明Redis Cluster 节点Redis Cluster 集群模式不能保证一致性创建和...
    99+
    2024-04-02
  • 怎么安装搭建redis cluster 4.0.9集群
    本篇内容主要讲解“怎么安装搭建redis cluster 4.0.9集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么安装搭建redis cluster 4...
    99+
    2024-04-02
  • Redis cluster集群模式的原理解析
    redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放...
    99+
    2024-04-02
  • Redis集群(Cluster)
    Redis集群 集群解决的问题代理主机和无中心化集群Redis集群的特点Redis集群环境搭建slots(插槽)在集群中录入值查询集群中的值故障恢复Redis集群的优缺点 集群解决的问...
    99+
    2023-08-31
    redis 数据库 服务器
  • Redis的Cluster集群搭建的实现步骤
    目录一、引言二、Redis的Cluster模式介绍1、Redis群集101 2、Redis群集TCP端口 3、Redis集群和Docker 4、Redis集群数据分片 5、Redis...
    99+
    2024-04-02
  • redis 3.0 cluster 集群
    周氏一族,整理技术文档,给下一代留点教程......redis 3.0 cluster 安装篇,请看 http://zhoushouby.blog.51cto.com/9150272/1560400 本篇,是在 "redis 3.0 clu...
    99+
    2023-01-31
    集群 redis cluster
  • SpringBoot Redis 多数据源集成支持哨兵模式和Cluster集群模式
    Redis 从入门到精通【应用篇】之SpringBoot Redis 多数据源集成支持哨兵模式Cluster集群模式、单机模式 文章目录 Redis 从入门到精通【应用篇】之SpringBoot Redis 多数据源集成支持哨兵模式...
    99+
    2023-08-17
    spring boot redis 后端 java 缓存 sentinel
  • Redis集群搭建的三种方式
    Redis集群搭建的三种方式@TOC 1.Redis主从 1.1 Redis主从原理 和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,...
    99+
    2023-09-15
    redis java linux
  • 【Redis】Redis高可用之Redis Cluster集群模式详解(Redis专栏启动)
    📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公司后端高级...
    99+
    2023-09-01
    java 面试 开发语言 redis 集群
  • mariadb集群搭建---Galera Cluster+ProxySQL教程
    目录前言一、Galera Cluster二、基础环境搭建三、加入配置参数启动集群四、 测试五、ProxySql总结前言 本篇主要用于记录mariadb环境下Galera Cluster模式集群环境的搭建过程,只做演示中间...
    99+
    2023-03-19
    mariadb集群搭建
  • redis集群如何搭建
    这篇文章给大家分享的是有关redis集群如何搭建的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。介绍安装环境与版本用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master...
    99+
    2024-04-02
  • 如何搭建redis集群
    这篇文章主要讲解了“如何搭建redis集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何搭建redis集群”吧!redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redi...
    99+
    2023-06-25
  • Redis集群搭建的方式有哪些
    这篇文章主要介绍Redis集群搭建的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、单节点实例单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个Redis 还是很轻松的,做为...
    99+
    2023-06-15
  • windows怎么搭建Redis分布式集群
    要搭建Redis分布式集群,您可以按照以下步骤进行操作:1. 下载Redis的稳定版本,并解压到不同的目录,例如:redis1、re...
    99+
    2023-09-11
    windows redis
  • Redis中的Cluster集群介绍
    这篇文章主要介绍“Redis中的Cluster集群介绍”,在日常操作中,相信很多人在Redis中的Cluster集群介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redi...
    99+
    2024-04-02
  • docker怎么搭建redis集群
    要搭建Redis集群,可以使用Docker来简化部署过程。下面是一些搭建Redis集群的步骤: 首先,确保已经安装了Docker...
    99+
    2023-10-26
    docker redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作