优点:
哨兵模式也是一种主从,主从的优点都有,具有监控的功能,当主节点宕机之后哨兵会推选一个健康的从节点做主节点,提高了可用性。
缺点:
需要多维护一套哨兵模式,比较麻烦,在重新选举主节点期间,无法确定主从,无法工作。并且较难支持在线扩容。
优点:
哨兵模式也是一种主从,主从的优点都有,具有监控的功能,当主节点宕机之后哨兵会推选一个健康的从节点做主节点,提高了可用性。
缺点:
需要多维护一套哨兵模式,比较麻烦,在重新选举主节点期间,无法确定主从,无法工作。并且较难支持在线扩容。
优点:
采用多主多从,去中心化。按照一定的规则进行分片,将数据分别存储,一定程度上解决了哨兵模式下单机存储有限的问题。
分片原理:
数据分片使用的是hash slot, redis集群有16384个哈希槽,每个Key通过CRC16校验后对16384取模来决定放置哪一个槽。当存取redis key时候,redis会根据CRC16算法得到一个结果,然后把结果和16384求余,通过这个值去对应得节点获取数据。这个时候,应用客户端实际上只需要连接其中任意一个节点即可,然后Redis Cluster 中每个节点都保存了其他节点得槽信息,这样当存取key计算完槽之后,通过保存槽信息从配置中获取节点信息,然后再去对应得节点获取数据。
1. 安装ruby环境
yum -y install ruby
2. 安装gcc
yum install -y gcc g++ gcc-c++ make
3. 安装tcl
yum install -y tcl
二、安装集群1. 在 /usr/local 目录创建redis文件夹
mkdir /usr/local/redis
2. 在 /usr/local/redis 目录创建redis-cluster文件夹
mkdir /usr/local/redis/redis-cluster
3. 进入 /usr/local/redis 目录下载redis-6.2.1.tar.gz压缩包
wget https://download.redis.io/releases/redis-6.2.1.tar.gz
4. 解压压缩包
tar -zxvf redis-6.2.1.tar.gz
5. 进入 /usr/local/redis/redis-6.2.1/src 目录进行编译安装
cd /usr/local/redis/redis-6.2.1/src/
make
make install
6. 进入 /usr/local/redis/redis-cluster 目录,创建文件夹 7001 7002 7003 7004 7005 7006
cd /usr/local/redis/redis-cluster/
mkdir 7001 7002 7003 7004 7005 7006
7. 将 /usr/local/redis/redis-6.2.1 目录下的redis.conf文件分别复制到 7001 7002 7003 7004 7005 7006 中,并修改以下配置,其中700X代表各自目录
# 端口
port 700X
# 绑定服务器IP地址
bind 192.168.31.240
# 开启集群功能
cluster-enabled yes
# 让redis后台运行
daemonize yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file nodes-700X.conf
# 日志
lo gfile /usr/local/redis/redis-cluster/700X/node-700X.log
#启动AOF增量持久化策略
appendonly yes
8. 分别启动6个Redis实例,并通过 ps -ef | grep redis 查看redis实列
redis-server /usr/local/redis/redis-cluster/7001/redis.conf
redis-server /usr/local/redis/redis-cluster/7002/redis.conf
redis-server /usr/local/redis/redis-cluster/7003/redis.conf
redis-server /usr/local/redis/redis-cluster/7004/redis.conf
redis-server /usr/local/redis/redis-cluster/7005/redis.conf
redis-server /usr/local/redis/redis-cluster/7006/redis.conf
9. 通过 redis-cli 命令创建集群
命令说明:
redis-cli --cluster或者./redis-trib.rb:代表集群操作命令
create:代表是创建集群
--replicas 1或者--cluster-replicas 1 :指定集群中每个master的副本个数为1,此时节点总数 ÷ (replicas + 1) 得到的就是master的数量。因此节点列表中的前n个就是master,其它节点都是slave节点,随机分配到不同master
redis-cli --cluster create --cluster-replicas 1 192.168.31.240:7001 192.168.31.240:7002 192.168.31.240:7003 192.168.31.240:7004 192.168.31.240:7005 192.168.31.240:7006
输入yes
创建成功
三、测试集群1. 连接7001节点
redis-cli -c -h 192.168.31.240 -p 7001
2. 通过 Cluster Nodes 查看集群信息,7001-7004,7002-7005,7003-7006
3. 存取值测试
4. 选举机制测试
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧