#下载最新的redis5.
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar -zxvf redis-5.0..tar.gz
cd redis-5.0.
make
make install /usr/local/src/redis/redis-cluster cd /usr/local/src/redis/redis-cluster
mv ./bin ./redis01
#把redis.conf 复制到redis01目录
cp redis-5.0./redis.conf /usr/local/src/redis/redis-cluster/redis01/redis.conf #修改redis.conf配置文件,注意一下bind 的地址
daemonize yes #后台启动
port #修改端口号,从6379到6384
cluster-enabled yes #开启cluster,去掉注释
cluster-config-file nodes.conf
cluster-node-timeout
appendonly yes #复制其他的目录作为节点
#redis02 redis03 redis04 redis05 redis06 ##最新的5.0不使用ruby,使用redis-cli来构建cluster
##yum install ruby
##yum install rubygems #在redis-cluster目录下,创建start.sh,启动redis,命令如下:
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd .. #启动start.sh redis全部 pkill - redis //该命令杀死进程
chmod start.sh
./start.sh #最新的配置,.0建议使用redis-cli来运行命令,启动任意节点的redis-cli
./redis01/redis-cli --cluster create 0.0.0.0: 0.0.0.0: 0.0.0.0: 0.0.0.0: 0.0.0.0: 0.0.0.0: --cluster-replicas ##该命令适用于低版本
##./redis-trib.rb create --replicas 0.0.0.0: 0.0.0.0: 0.0.0.0: 0.0.0.0: 0.0.0.0: 0.0.0.0:

关于redis-cluster集群

Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有 节点连接。
结构特点:
1.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。
2.节点的fail是通过集群中超过半数的节点检测失效时才生效。
3.客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
4.redis-cluster把所有的物理节点映射到[0-16383]slot上(不一定是平均分配),cluster 负责维护node<->slot<->value。
5.Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪个桶中。

新增一个主节点:
新增一个节点D,redis cluster的这种做法是从各个节点的前面各拿取一部分slot到D上,我会在接下来的实践中实验。大致就会变成这样:
节点A覆盖1365-5460
节点B覆盖6827-10922
节点C覆盖12288-16383
节点D覆盖0-1364,5461-6826,10923-12287

redis-cluster的主从模式
redis cluster 为了保证数据的高可用性,加入了主从模式,一个主节点对应一个或多个从节点,主节点提供数据存取,从节点则是从主节点拉取数据备份,当这个主节点挂掉后,
就会有这个从节点选取一个来充当主节点,从而保证集群不会挂掉。

最新文章

  1. ICSharpCode.SharpZipLib 压缩、解压文件 附源码
  2. 解决SVN更新代码是出现previous operation has not finished; run cleanup if it was interrupted这个错误
  3. C#之文本操作
  4. SQL跨项目查询语法
  5. 关于js的string的3个函数slice,substring,substr对比
  6. BADIP filter
  7. cordova在app内部指定浏览器打开链接插件:cordova-plugin-inappbrowser
  8. Interview-Harry Potter walk through matrix.
  9. 图像处理简单实例[OpenCV 笔记1]
  10. js 计算两个时间差
  11. Swift - 网络请求报App Transport Security has blocked a cleartext错
  12. adb 之android的神器am
  13. double和real型有什么区别 [
  14. (window,parent,opener,top).location.reload方法汇总
  15. Mac实用操作技巧(一)
  16. 深入理解Postgres中的cache
  17. genymotion中app不能安装问题
  18. 【心得】Lattice后端使用经验小结(ECP5UM,DDR3,Diamond3.10,Reveal逻辑分析)
  19. VIM批量缩进
  20. js string类型时间转换成Date类型

热门文章

  1. python学习之IO:
  2. php设计模式学习之工厂模式
  3. Negut 上传乱码
  4. [牛客网试题] Test.main() 函数执行后的输出是()
  5. 【学习笔记】js中undefined和null的区别和联系
  6. GetDC(),ReleaseDC()
  7. Android用Intent来启动Service报“java.lang.IllegalArgumentException: Service Intent must be explicit”错误的解决方法
  8. Jenkins结合ant传递参数
  9. Java文件操作系列[1]——PDFBox实现分页提取PDF文本
  10. 一样的Java,不一样的HDInsight大数据开发体验