条件

  l 基于redis5.0.*版本进行集群的搭建

  l 集群要求至少六个节点,即每个主节点配置1个从节点,本集群是使用了3个主节点并每个下面挂一个从节点,三个主节点分布在3台服务器上

  l 集群配置信息如下:

服务器

Master

Slave

172.16.114.52

7001

7002

172.16.239.95

7003

7004

172.16.239.89

7005

7006

集群配置

在第一台服务器(172.16.114.52)上操作

1. 下载redis源码包并解压

  

wget  -c  http://download.redis.io/releases/redis-5.0.7.tar.gz

tar  -zxvf  redis-5.0.7.tar.gz

2. 新建集群配置目录

mkdir  -p  /usr/local/redis-cluster/7001   /usr/local/redis-cluster/7002

3. 将解压后的文件中的redis.conf配置文件拷贝到集群目录之下 并执行redis安装命令

cd  redis-5.0.7

cp redis.conf  /usr/local/redis-cluster

make  install  PREFIX=/usr/local/redis2  # 注意 这里PREFIX一定是大写

4. 进入/usr/local/redis2,复制bin文件到7001,7002目录下

cd  /usr/local/redis2

cp  -r  bin  /usr/local/redis-cluster/7001

cp  -r  bin  /usr/local/redis-cluster/7002

5.  进入redis-cluster目录,修改redis.conf并分别拷贝到7001,7002

修改配置文件内容如下:

   1) 屏蔽限制本地访问, 将bind 127.0.0.1 修改为 bind  0.0.0.0

  2) protected-mode保护模式从yes改为no

  3) daemonize后的no改为yes

  4) 去掉cluster-enabled yes 前面的注释

  5) 去掉cluster-node-timeout 前面的注释

  6) port后的端口改为7001, 将redis.conf文件,复制到对应的目录下.

cp  redis.conf  7001

  7)  再次编辑redis.conf  将port参数修改 7001 ==> 7002,复制到对应目录下.

sed  -i  's/7001/7002/g'  redis.conf

cp  redis.conf  7002

  8)修改pidfile参数

pidfile /var/run/redis_7001.pid

  9)修改node

cluster-config-file nodes-7001.conf

# 修改为对应的节点ID

6. 启动redis服务

/usr/local/redis-cluster/7001/bin/redis-server /usr/local/redis-cluster/7001/redis.conf

 /usr/local/redis-cluster/7002/bin/redis-server /usr/local/redis-cluster/7002/redis.conf

注意点: 在启动服务之前要修改配置文件中对应的dump dir目录,否则默认目录是  ./  需要改成对应的绝对路径,否则会造成路径冲突,导致启动失败

查看启动的服务:

7.  在另外两台机器上重复以上的操作,需要注意的是,需要设置对应的端口与目录

效果:

第一台(172.16.114.52)

第二台(172.16.239.95):

第三台(172.16.239.89):

集群搭建

使用Redis客户端执行命令:

/usr/local/redis-cluster/7001/bin/redis-cli --cluster create --cluster-replicas 1 172.16.114.52:7001 172.16.114.52:7002 172.16.239.95:7003 172.16.239.95:7004 172.16.239.89:7005 172.16.239.89:7006

参数说明:

--cluster  集群管理命令 后面可以执行集群相关的命令

--cluster-replicas 1 代表每个Master携带一个Slave

create  创建集群命令

至此已经配置成功

客户端测试

  开启客户端 链接任意一个Master节点

/usr/local/redis2/bin/redis-cli -h 172.16.114.52 -c -a 密码 -p 端口

参数:

-c: 连接到集群

我们可以看到,当我们set一个键值对的时候,Redis会自动为我们的key计算CRC16值,然后对16384取模,获取key对应的hash slot,然后通过判断该槽被那个Master所占用,帮我们重定向到那个Master节点,将键值对存入。

查看集群信息:

cluster  nodes

常见问题:

  

  1. 出现节点的状态为handshake并且无法使用cluster  forget 删除掉该节点,节点的唯一ID一直发生变化

解决: 这是因为集群所有的节点都持有该节点的信息,不停的再发起重新连接操作,需要在所有节点上(包括从节点)执行 cluster  forget  xxx操作, 才能彻底移除掉无效节点

  1. 集群中出现无用节点

例如:76e6fb6341fd43aaa1be5b2f8bb68a8c8a0572ae :0@0 slave,fail,noaddr - 1585662914903 1585662914903 6 disconnected

可以将其移除  cluster  forget  76e6fb6341fd43aaa1be5b2f8bb68a8c8a0572ae

Redis集群搭建-多服务器的更多相关文章

  1. Redis集群搭建,伪分布式集群,即一台服务器6个redis节点

    Redis集群搭建,伪分布式集群,即一台服务器6个redis节点 一.Redis Cluster(Redis集群)简介 集群搭建需要的环境 二.搭建集群 2.1Redis的安装 2.2搭建6台redi ...

  2. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

  3. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

  4. redis 集群搭建: redis-cluster

    前言 redis数据存储在内存中, 就会受到内存的限制, 大家都知道, 一台电脑, 硬盘可以有1T, 但是内存, 没有听说有1T的内存吧. 那如果数据非常多, 超过一台电脑的内存空间, 怎么办呢? 正 ...

  5. centos redis集群搭建

    说明: 10.0.0.111部署6500,6501,6502三个主节点 10.0.0.222部署6500,6501,6502三个备份节点 1.安装redis:略 2.配置内核参数 # 配置 vm.ov ...

  6. 分享知识-快乐自己:redis集群搭建

    Redis介绍: 1.开源的NoSql数据库 2.C语言编写 3.基于内存运行,并且支持持久化 4.Key value存储 5.是主流的Nosql数据库之一 Redis优点: 1.内存使用方面,表现优 ...

  7. redis集群搭建踩坑笔记

    推荐参考教程:https://blog.csdn.net/pucao_cug/article/details/69250101 错误: from /usr/lib/ruby/2.3.0/rubygem ...

  8. redis集群搭建(简单简单)一台机器多redis

      redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件: 进入到解压缩后的redis文件目录(此时可以看到Makef ...

  9. 新手redis集群搭建

    redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件:进入到解压缩后的redis文件目录(此时可以看到Makefile文 ...

  10. Redis集群搭建及选举原理

    redis集群简述 哨兵模式中如果主从中master宕机了,是通过哨兵来选举出新的master,在这个选举切换主从的过程,整个redis服务是不可用的.而且哨兵模式中只有一个主节点对外提供服务,因此没 ...

随机推荐

  1. ubuntu 20.04安装GCC G++ 6.2,支持c++ 14

    1. 下载源码包 wget http://ftp.gnu.org/gnu/gcc/gcc-6.2.0/gcc-6.2.0.tar.bz2 2. 解压 tar jxf gcc-6.2.0.tar.bz2 ...

  2. 基于语义增强的少样本检测,突破新类别偏见 | ICIP'24

    Few-shot目标检测(FSOD)旨在在有限标注实例的情况下检测新颖对象,在近年取得了显著进展.然而,现有方法仍然存在偏见表示问题,特别是在极低标注情况下的新颖类别.在微调过程中,一种新颖类别可能会 ...

  3. MySQL 用户、权限管理,C/C++连接与使用

    目录 用户 用户管理 查询所有用户 查看当前用户 查看当前连接数 创建用户 删除用户 修改密码规则 查看规则/策略 规则说明 临时设置 持久设置 修改密码 权限 数据库提供的 权限列表 查看权限 给用 ...

  4. MySQL配置缓存查询和维护

    配置文件设置缓存 query_cache_size = 20M #缓存大小 query_cache_type = ON #开启缓存 table_cache=256 #用于限制缓存表的最大数目,如果当前 ...

  5. 八字五行强弱喜用神测算api免费接口_json数据格式_可计算五行打分强弱

    八字以木.火.土.金.水去分析其旺弱,而分析之法以月令地支最为有力,其次为时支,再次为日支,最弱为年支,而天干必须见地支有同类或有生自己的五行才有用,因为只有天干一个单独的五行,其力会弱至无用.这个接 ...

  6. ZRAM的Swap功能和 SWAP分区有什么区别

    ZRAM(压缩内存块设备)和传统的SWAP分区都是Linux系统中用来增加可用内存的方法,但它们的工作原理和实现方式有很大的区别: ZRAM 压缩内存:ZRAM使用压缩算法将数据存储在内存中.这样,当 ...

  7. 第三方的开源库FluentVaidation校验字段的

    内置的 using System.ComponentModel.DataAnnotations; 基本使用: 1. 安装包 FluentValidation.AspNetCOre 2. 注册服务 bu ...

  8. yarn serve 不能开启vue项目 the project seem to require yarn but isnot install

    error: answer: 删除 yarn.lock 或者使用 npm run serve 替换 ; ps: yarn.lock 是锁定第三方包版本的文件:

  9. 0404-Tensor的持久化和向量化

    0404-Tensor的持久化和向量化作 目录 一.持久化 1.1 保存模型 1.2 加载模型 二.向量化 三.注意事项 四.第四章总结 pytorch完整教程目录:https://www.cnblo ...

  10. rocketmq安全漏洞

    漏洞内容 服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)[原理扫描] 该漏洞存在于SSL renegotiation的过程中.对于使用SSL重协商功能的 ...