Redis-06.Cluster
Redis Cluster是一个高性能高可用的分布式系统。由多个Redis实例组成的整体,数据按照一致性哈希算法存储分布在多个Redis实例上,并对使用虚拟槽(Slot)对一致性哈希算法进行改进,通过Gossip协议来进行节点之间通信。
关于一致性哈希,可以看这篇文章 http://www.zsythink.net/archives/1182
Redis集群一般由多个节点组成,节点数量至少为6个(3主3从)才能保证组成完整高可用的集群。
具体操作步骤:
# 准备各节点配置文件
[root@VM_41_201_centos redis.d]# ls -l
总用量 344
-rw-r--r-- 1 root root 46748 5月 7 15:36 redis-6379.conf
-rw-r--r-- 1 root root 46748 5月 7 15:41 redis-6380.conf
-rw-r--r-- 1 root root 46748 5月 7 15:42 redis-6381.conf
-rw-r--r-- 1 root root 46748 5月 7 15:43 redis-6382.conf
-rw-r--r-- 1 root root 46748 5月 7 15:43 redis-6383.conf
-rw-r--r-- 1 root root 46748 5月 7 15:44 redis-6384.conf
-rw-r--r-- 1 root root 46730 5月 7 14:30 redis.conf
-rw-r--r-- 1 root root 7355 5月 7 14:30 redis-sentinel.conf
# 启动各redis节点
[root@VM_41_201_centos redis.d]# redis-server redis-6379.conf
[root@VM_41_201_centos redis.d]# redis-server redis-6380.conf
[root@VM_41_201_centos redis.d]# redis-server redis-6381.conf
[root@VM_41_201_centos redis.d]# redis-server redis-6382.conf
[root@VM_41_201_centos redis.d]# redis-server redis-6383.conf
[root@VM_41_201_centos redis.d]# redis-server redis-6384.conf
[root@VM_41_201_centos redis.d]# ps -ef | grep redis
root 475 1 0 15:44 ? 00:00:00 redis-server 127.0.0.1:6379 [cluster]
root 494 1 0 15:44 ? 00:00:00 redis-server 127.0.0.1:6380 [cluster]
root 498 1 0 15:44 ? 00:00:00 redis-server 127.0.0.1:6381 [cluster]
root 502 1 0 15:44 ? 00:00:00 redis-server 127.0.0.1:6382 [cluster]
root 506 1 0 15:44 ? 00:00:00 redis-server 127.0.0.1:6383 [cluster]
root 565 1 0 15:45 ? 00:00:00 redis-server 127.0.0.1:6384 [cluster]
root 576 31779 0 15:45 pts/1 00:00:00 grep --color=auto redis
root 28350 27811 0 14:35 pts/0 00:00:00 vim redis-6379.conf
# 各节点握手,建立集群(此时未分配slot,处于fail状态,还不能正常工作)
127.0.0.1:6379>cluster meet 127.0.0.1 6380
127.0.0.1:6379>cluster meet 127.0.0.1 6381
127.0.0.1:6379>cluster meet 127.0.0.1 6382
127.0.0.1:6379>cluster meet 127.0.0.1 6383
127.0.0.1:6379>cluster meet 127.0.0.1 6384
# 执行addslots.sh,手动为各节点添加slot
[root@VM_41_201_centos redis.d]# ./addslots.sh 6379 0 5461
...
[root@VM_41_201_centos redis.d]# ./addslots.sh 6380 5462 10922
...
[root@VM_41_201_centos redis.d]# ./addslots.sh 6381 10923 16383
...
# 再次查看cluster info信息
[root@VM_41_201_centos redis.d]# redis-cli -p 6379 cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:2
cluster_stats_messages_sent:24495
cluster_stats_messages_received:24495
# 再次查看cluster nodes信息
[root@VM_41_201_centos redis.d]# redis-cli -p 6379 cluster nodes
5a6b4ea16d2064c7298acda98fb2984eb3c784b6 127.0.0.1:6383 master - 0 1494155309857 4 connected
ac9c04d13e3c6fd8dbce0333679345da6583b1ca 127.0.0.1:6381 master - 0 1494155312871 3 connected 10923-16383
54d92a13eca6aeb2bd4a0c0a51a59250133d833a 127.0.0.1:6379 myself,master - 0 0 2 connected 0-5461
0d50552bab86a522937a7943f0843d86945e2894 127.0.0.1:6380 master - 0 1494155311864 1 connected 5462-10922
d0de26e8ec68996f404091e729688b41c5068231 127.0.0.1:6382 master - 0 1494155307847 5 connected
e3b11cd3ec0e4d6f67d010dd9cf2a3dabf6030f9 127.0.0.1:6384 master - 0 1494155313883 0 connected
# 简单测试
[root@VM_41_201_centos redis.d]# redis-cli -p 6379 set hello redis
OK
[root@VM_41_201_centos redis.d]# redis-cli -p 6379 get hello
"redis"
[root@VM_41_201_centos redis.d]#
至此,模拟的3主3从的cluster集群就创建成功了。
redis实例配置文件关于cluster的主要配置项:
#节点端口
port 6379
# 开启集群模式
cluster-enabled yes
# 节点超时时间, 单位毫秒
cluster-node-timeout 15000
# 集群内部配置文件
cluster-config-file "nodes-6379.conf"
addslots.sh:
#!/bin/bash
# cluster addslots(循环添加)
# $1:port
# $2:start
# $3:end
for((i=$2;i<=$3;i++))
do
redis-cli -h 127.0.0.1 -p $1 cluster addslots $i
done
Redis-06.Cluster的更多相关文章
- Redis进阶实践之十一 Redis的Cluster集群搭建
一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵 ...
- Redis进阶实践之十二 Redis的Cluster集群动态扩容
一.引言 上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境.当然,大家可以使用 Cluster info 命令查看Cl ...
- Redis的Cluster配置
Redis的Cluster配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装Redis并启动 1>.修改Redis的配置文件(本实验只有三个节点) [root@no ...
- Azure Redis Cache (5) Redis Cache Cluster集群模式
<Windows Azure Platform 系列文章目录> Redis Cluster 3.0之后的版本,已经支持Redis Cluster集群模式,Redis Cluster采用无中 ...
- Redis搭建(七):Redis的Cluster集群动态增删节点
一.引言 上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境.当然,大家可以使用 Cluster info 命令查看Cluste ...
- redis之(十七)自己实现redis的cluster集群环境的搭建
[一]创建不同节点的配置文件和目录.并将配置文件中的port,cluster-enable,daemonize项做修改. --->port:修改成redis实例对应的端口号 --->clu ...
- Redis sentinel & cluster 原理分析
1. Redis集群实现分析 1.1 sentinel 1. 功能 Sentinel实现如下功能: (1)monitoring--redis实例是否正常运行. (2)notification-- ...
- redis之(十六)redis的cluster集群环境的搭建,转载
最近redis已经比较火了,有关redis的详细介绍,网上有一大堆,我这里只作简单的介绍,然后跟大家一起学习Redis Cluster 3.0的搭建与使用.Redis是一款开源的.网络化的.基于内存的 ...
- redis之cluster(集群)
搭建redis cluster 1. 准备节点 2. 节点间的通信 3. 分配槽位给节点 redis-cluster架构 多个服务端,负责读写,彼此通信,redis指定了16384个槽. 多匹马儿,负 ...
- redis配置cluster分布式集群
#下载最新的redis5. wget http://download.redis.io/releases/redis-5.0.3.tar.gz .tar.gz cd redis- make make ...
随机推荐
- <web-view>中JSSDK
如果只是使用wx.miniProgram.navigateTo这种导航的接口,jssdk可以不用做配置,引用js后直接使用就行,如果chooseImage这种,就需要获取配置了,步骤如下: 先在后端通 ...
- 2018-2019-2 20175126谢文航 实验二《Java面向对象程序设计》实验报告
一.实验报告封面 课程:Java程序设计 班级:1751 班 姓名:谢文航 学号:20175126 指导教师:娄嘉鹏 实验日期:2019年4月17日 实验时间:--- 实验序号:实验二 实验名称:Ja ...
- Shell中sed----学习
sed原理及使用 目录 前言 一.简介 二.处理流程 三.命令选项options 四.pattern 1. 模式空间 2. 模式空间的转换 3. 地址匹配 五.procedure 1. 替换命令: s ...
- 解决在vscode中eslint在vue后缀文件中保存时无法自动格式化的问题
在setting.json中加入如下内容 { "eslint.autoFixOnSave": true, "eslint.validate": [ " ...
- ABP框架记录
1.先在Core项目中建立模型Models>Model.cs/ModelManager.cs 2.在Application中建立接口和具体类:IModelAppService.csModelAp ...
- jquery 全选、反选、获取值、背景行、隔行变色和鼠标略过变色变色全特效
好久没有写东西了,当然不是没东西可写,只是没有时间写.今天抽出点时间来把我最近使用的一些 Javascript 特效的东西贴出来,供自己或者别人查询使用.最近我在做一个新的 B/S 系统,由于没有专门 ...
- jango路由层
简单的路由配置: urls.py from django.contrib import admin from django.urls import path, re_path from book_ap ...
- 第一次面试经历(hr面)
经过介绍,我有幸去到一家国际背景的广告公司面试前端开发实习生.收到的邮件是复试通知,看来我已经跳过了第一轮面试. 来到hr请我进了一个小间坐下里填求职书,里面有各种个人信息,有兴趣爱好,有工作经历,以 ...
- 常用的三种json软件的使用
从几个角度比较三种软件 1. json操作 2 反解 3 性能 易用性还没有列出. 可以根据个人喜好进行取舍. package json; import com.alibaba.fastjson.JS ...
- hbase_存储模型
Hbase 是按列存储,所以每个列族存储在一个HDFS文件上. Hbase表中的行是按照rowkey字典序进行排列的,并且表格在行的方向上被分割为多个region(按照行进行分割的) region 是 ...