Redis-cluster集配置(6节点,3主机,3备机)

Redis-cluster集配置(6节点,3主机,3备机)
Redis-cluster原理
Redis 是⼀个开源的 key-value 存储系统,由于出众的性能,⼤部分互联⽹企业都⽤来做服务器端缓存。Redis 在3.0版本前只⽀持单实例模式,虽然⽀持主从模式、哨兵模式部署来解决单点故障,但是现在互联⽹企业动辄⼤⼏百G的数据,可完全是没法满⾜业务的需求,所以,Redis 在 3.0 版本以后就推出了集模式。
Redis 集采⽤了P2P的模式,完全去中⼼化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中⼀部分 slot 。集中的
所有信息(节点、端⼝、slot等),都通过节点之间定期的数据交换⽽更新。
Redis 客户端可以在任意⼀个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。
这个图中,每⼀个蓝⾊的圈都代表着⼀个redis的服务器节点。它们任何两个节点之间都是相互连通的。客户端可以与任何⼀个节点相连接,然后就可以访问集中的任何⼀个节点。对其进⾏存取和其他操作。
    那么redis是怎么做到的呢?⾸先,在redis的每⼀个节点上,都有这么两个东西,⼀个是插槽(slot)可以理解为是⼀个可以存储两个数值的⼀个变量这个变量的取值范围是:0-16383。还有⼀个就是cluster我个⼈把这个cluster理解为是⼀个集管理的插件。当我们的存取的key到达的时候,redis会根据crc16的算法得出⼀个结果,然后把结果对 16384 求余数,这样每个 key 都会对应⼀个编号在 0-16383 之间的哈希槽,通过这个值,去到对应的插槽所对应的节点,然后直接⾃动跳转到这个对应的节点上进⾏存取操作。
 还有就是因为如果集的话,是有好多个redis⼀起⼯作的,那么,就需要这个集不是那么容易挂掉,所以呢,理论上就应该给集中的每个节点⾄少⼀个备⽤的redis服务。这个备⽤的redis称为从节点(slave)。那么这个集是如何判断是否有某个节点挂掉了呢?
 ⾸先要说的是,每⼀个节点都存有这个集所有主节点以及从节点的信息。
 它们之间通过互相的ping-pong判断是否节点可以连接上。如果有⼀半以上的节点去ping⼀个节点的时候没有回应,集就认为这个节点宕机了,然后去连接它的备⽤节点。如果某个节点和所有从节点全部挂掉,我们集就进⼊faill状态。还有就是如果有⼀半以上的主节点宕机,那么我们集同样进⼊发⼒了状态。这就是我们的redis的投票机制,具体原理如下图所⽰:
车载多媒体
安装单机redis5.0.7
上传到/usr/local⽬录
解压⽂件 tar -zxvf redis-5.0.
cd redis-5.0.7
make
cd src
make install PREFIX=/usr/local/redis多功能电源插座
cd ../
mkdir /usr/local/redis/etc
f /usr/local/redis/etc
配置redis为后台启动
vi /usr/local/redis/f //将daemonize no 改成daemonize yes
vi /usr/local/redis/f // requirepass 123456
vi /usr/local/redis/f  #bind 127.0.0.1  //注释掉本地IP,开启外⽹访问
搭建集⽅案
我们计划集中 Redis 节点的端⼝号为 9001-9006 ,端⼝号即集下各实例⽂件夹。数据存放在 端⼝号/data ⽂件夹中。mkdir /usr/local/redis-cluster
cd redis-cluster/
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
cd /usr/local/redis-cluster
mkdir bin
cd /usr/local/redis-5.0.7/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof  redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin 复制⼀个新 Redis 实例
我们现在从已安装好的 Redis 中复制⼀个新的实例到 9001 ⽂件夹,并修改 f 配置。
cp -r /usr/local/redis    /usr/local/redis-cluster/9001
注意,修改 f 配置和单点唯⼀区别是下图部分,其余还是常规的这⼏项:
port 9001(每个节点的端⼝号)
daemonize yes
bind 192.168.234.157(绑定当前机器 IP)
dir /usr/local/redis-cluster/9001/data/(数据⽂件存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
cluster-enabled yes(启动集模式)
f(9001和port要对应)
cluster-node-timeout 15000
appendonly yes
再复制出五个新 Redis 实例
我们已经完成了⼀个节点了,其实接下来就是机械化的再完成另外五个节点,其实可以这么做:把 90
01 实例 复制到另外五个⽂件夹中,唯⼀要修改的就是 f 中的所有和端⼝的相关的信息即可,其实就那么四个位置。开始操作,看图:
\cp -rf /usr/local/redis-cluster/9001/*  /usr/local/redis-cluster/9002
\cp -rf /usr/local/redis-cluster/9001/*  /usr/local/redis-cluster/9003
\cp -rf /usr/local/redis-cluster/9001/*  /usr/local/redis-cluster/9004
\cp -rf /usr/local/redis-cluster/9001/*  /usr/local/redis-cluster/9005
\cp -rf /usr/local/redis-cluster/9001/*  /usr/local/redis-cluster/9006
\cp -rf 命令是不使⽤别名来复制,因为 cp 其实是别名 cp -i,操作时会有交互式确认,⽐较烦⼈。
修改 9002-9006 的 f ⽂件
氯离子含量测定方法
其实⾮常简单了,你通过搜索会发现其实只有四个点需要修改,我们全局替换下吧,进⼊相应的节点⽂件夹,做替换就好了。命令⾮常简单,看图:
vi /usr/local/redis-cluster/9002/redis/f
vi /usr/local/redis-cluster/9003/redis/f
vi /usr/local/redis-cluster/9004/redis/f
vi /usr/local/redis-cluster/9005/redis/f
vi /usr/local/redis-cluster/9006/redis/f
:%s/9001/9002
:%s/9001/9003
垫块模具:%s/9001/9004
:%s/9001/9005
:%s/9001/9006
其实我们也就是替换了下⾯这四⾏:
port 9002
dir /usr/local/redis-cluster/9002/data/
f
pidfile /var/run/redis_9002.pid
启动9001-9006六个节点
/usr/local/redis/bin/redis-server  /usr/local/redis-cluster/9001/redis/f
/usr/local/redis/bin/redis-server  /usr/local/redis-cluster/9002/redis/f
/usr/local/redis/bin/redis-server  /usr/local/redis-cluster/9003/redis/f
/usr/local/redis/bin/redis-server  /usr/local/redis-cluster/9004/redis/f
/usr/local/redis/bin/redis-server  /usr/local/redis-cluster/9005/redis/f
/usr/local/redis/bin/redis-server  /usr/local/redis-cluster/9006/redis/f
查看redis启动情况:
米黄石
[root@192 bin]# ps aux|grep redis
root      1311  0.0  1.3 163112 13808 ?        Ssl  18:32  0:02 /usr/local/redis/bin/redis-server 192.168.234.157:9001 [cluster]
root      1316  0.0  1.3 163112 13900 ?        Ssl  18:32  0:02 /usr/local/redis/bin/redis-server 192.168.234.157:9002 [cluster]
root      1321  0.0  1.0 162600 10092 ?        Ssl  18:32  0:02 /usr/local/redis/bin/redis-server 192.168.234.157:9003 [cluster]
root      1326  0.0  0.8 156456  8092 ?        Ssl  18:32  0:02 /usr/local/redis/bin/redis-server 192.168.234.157:9004 [cluster]
root      1331  0.0  0.8 156456  8080 ?        Ssl  18:32  0:02 /usr/local/redis/bin/redis-server 192.168.234.157:9005 [cluster]
root      1336  0.0  1.0 162600 10116 ?        Ssl  18:32  0:02 /usr/local/redis/bin/redis-server 192.168.234.157:9006 [cluster]
安装集所需软件
由于 Redis 集需要使⽤ ruby 命令,所以我们需要安装 ruby 和相关接⼝。
yum install ruby
yum install rubygems
下载完毕后上传⾄:/usr/local⽬录
gem install -l redis-3.
[root@192 local]# gem install -l redis-3.
Successfully installed redis-3.2.1
Parsing documentation for redis-3.2.1
Installing ri documentation for redis-3.2.1
1 gem installed
集环境测试
/
木醋usr/local/redis-cluster/bin/redis-cli --cluster create  192.168.234.157:9001 192.168.234.157:9002
192.168.234.157:9003 192.168.234.157:9004 192.168.234.157:9005 192.168.234.157:9006 --cluster-replicas 1下⾯表⽰3个主节点,3个备份节点

本文发布于:2024-09-22 13:23:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/208956.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   集群   模式   实例   部分   对应   变量   件夹
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议