Redis Cluster集群配置

背景:Redis Cluster 提供了一种运行 Redis 安装的方法,其中数据 在多个 Redis 节点之间自动分片

一、下载安装

1.下载安装redis

wget https://download.redis.io/releases/redis-3.2.0.tar.gz
tar zxf redis-3.2.0.tar.gz
cd redis-3.2.0
make
make install PREFIX=/usr/local/redis-cluster

2.集群配置文件

cd /usr/local/redis-cluster
mkdir 6379 6380 6381 6382 6383 6384
#redis.conf配置文件,端口6379需要和目录保持一致
bind 0.0.0.0
daemonize yes
port 6379
cluster-enabled yes
cluster-config-file "nodes.conf"
cluster-node-timeout 15000
cluster-require-full-coverage no
appendonly yes
masterauth "***"
requirepass "***"

3.安装ruby

yum remove ruby
yum install ruby
yum install rubygems
gem install redis
#会提示ERROR:  Error installing redis redis #requires Ruby version >= 2.2.2.
#需要用rvm 安装ruby指定版本
curl -L get.rvm.io | bash -s stable
rvm install 2.3.0
rvm use 2.3.0
rvm remove 2.0.0 #删除掉系统旧的ruby2.0.0
ruby --version #查看版本
#如果还没有变更过来的话,直接将源码ruby命令cp到/usr/bin/下
cp /usr/local/rvm/src/ruby-2.3.0/ruby /usr/bin/ruby
再次执行确认ruby --version

二、配置集群

1.启动redis所有节点

目前总计6个节点,启动脚本入下:

start-all.sh脚本内容:
cd 6379
redis-server redis.conf &
cd ..
cd 6380
redis-server redis.conf &
cd ..
cd 6381
redis-server redis.conf &
cd ..
cd 6382
redis-server redis.conf &
cd ..
cd 6383
redis-server redis.conf &
cd ..
cd 6384
redis-server redis.conf &
cd ..

2.修改client.rb文件,创建带认证密码集群

vim /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/redis-4.3.1/lib/redis/client.rbDEFAULTS = {url: -> { ENV["REDIS_URL"] },scheme: "redis",host: "127.0.0.1",port: 6379,path: nil,read_timeout: nil,write_timeout: nil,connect_timeout: nil,timeout: 5.0,username: nil,password: "*****",db: 0,driver: nil,id: nil,tcp_keepalive: 0,reconnect_attempts: 1,reconnect_delay: 0,reconnect_delay_max: 0.5,inherit_socket: false,logger: nil,sentinels: nil,role: nil
}.freeze修改如上的password内容

3.创建集群

./redis-trib.rb create --replicas 1 10.0.0.1:6379 10.0.0.1:6380 10.0.0.1:6381 10.0.0.1:6382 10.0.0.1:6383 10.0.0.1:6384 -a ***
结果入下:
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
10.0.0.1:6379
10.0.0.1:6380
10.0.0.1:6381
Adding replica 10.0.0.1:6382 to 10.0.0.1:6379
Adding replica 10.0.0.1:6383 to 10.0.0.1:6380
Adding replica 10.0.0.1:6384 to 10.0.0.1:6381
M: a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb 10.0.0.1:6379slots:0-5460 (5461 slots) master
M: 9ffcc65c57a4e6909937c468ed011fd27285b01e 10.0.0.1:6380slots:5461-10922 (5462 slots) master
M: fc7a9badfaaffc11a9519504467515010cf5a934 10.0.0.1:6381slots:10923-16383 (5461 slots) master
S: 6ababf944d4bd0e81a25b805a5a3e8c24225cfdb 10.0.0.1:6382replicates a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb
S: 51012b44e11a6bc23c4283c59bede25433844c9b 10.0.0.1:6383replicates 9ffcc65c57a4e6909937c468ed011fd27285b01e
S: 60650186bad3c5814ac768302dc5038df3c56c51 10.0.0.1:6384replicates fc7a9badfaaffc11a9519504467515010cf5a934
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 10.0.0.1:6379)
M: a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb 10.0.0.1:6379slots:0-5460 (5461 slots) master
M: 9ffcc65c57a4e6909937c468ed011fd27285b01e 10.0.0.1:6380slots:5461-10922 (5462 slots) master
M: fc7a9badfaaffc11a9519504467515010cf5a934 10.0.0.1:6381slots:10923-16383 (5461 slots) master
M: 6ababf944d4bd0e81a25b805a5a3e8c24225cfdb 10.0.0.1:6382slots: (0 slots) masterreplicates a0c2a7a48ccceb5c6ed7c78c80f2966cc38cfbfb
M: 51012b44e11a6bc23c4283c59bede25433844c9b 10.0.0.1:6383slots: (0 slots) masterreplicates 9ffcc65c57a4e6909937c468ed011fd27285b01e
M: 60650186bad3c5814ac768302dc5038df3c56c51 10.0.0.1:6384slots: (0 slots) masterreplicates fc7a9badfaaffc11a9519504467515010cf5a934
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

三、集群测试

1.命令行测试-c参数表示集群模式

# ./redis-cli -p 6379 -c -a adminadmin
127.0.0.1:6379> get v
-> Redirected to slot [7761] located at 10.0.0.1:6380
(nil)
10.0.0.1:6380> get c
"vv"
10.0.0.1:6380> get we
-> Redirected to slot [11725] located at 10.0.0.1:6381
"12"
10.0.0.1:6381> get bb
-> Redirected to slot [8620] located at 10.0.0.1:6380
(nil)
10.0.0.1:6380> get we
-> Redirected to slot [11725] located at 10.0.0.1:6381
"12"
10.0.0.1:6381> keys *
1) "we"
2) "a"

Redis Cluster集群配置相关推荐

  1. Redis Cluster集群知识学习总结

    Redis集群解决方案有两个: 1)  Twemproxy: 这是Twitter推出的解决方案,简单的说就是上层加个代理负责分发,属于client端集群方案,目前很多应用者都在采用的解决方案.Twem ...

  2. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

  3. Redis cluster集群原理与配置

    Redis cluster集群原理与配置 一.cluster集群原理 1.数据迁移 过程 2.复制以及故障转移 故障检测 故障转移 二.配置cluster集群 1.创建文件夹 2.编辑 7001.co ...

  4. redis cluster集群选主

    redis 选主过程分析  当slave发现自己的master变为FAIL状态时,便尝试进行Failover,以期成为新的master.由于挂掉的master可能会有多个slave.Failover的 ...

  5. Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)

    前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...

  6. centos7 docker-compose安装_Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  7. rediscluster全局数据_redis迁移,从redis cluster集群迁移数据到另外一个redis cluster集群...

    redis迁移,redis集群迁移$ yum install automake libtool autoconf bzip2 -y $ git clone https://github.com/vip ...

  8. redis集群扩容和缩容_深入理解Redis Cluster集群

    一.背景 前面的文章<深入理解Redis哨兵机制>一文中介绍了Redis哨兵集群的工作原理,哨兵集群虽然满足了高可用的特性,但是依然存在这样的问题:即数据只能往一个主节点上进行写入. 只能 ...

  9. Redis Cluster集群的搭建与实践[转]

    Redis Cluster集群的搭建与实践 Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后 ...

最新文章

  1. Windows Server 2008与2012建立林信任关系
  2. linux安装显卡驱动的run文件,Linux系统下安装NVIDIA显卡驱动(run格式文件)
  3. Algorithm Gossip (22) 中序式转后序式(前序式)
  4. 数据结构--图(Graph)详解(三)
  5. 前端学习(733):函数的参数
  6. VS Code 主题配置
  7. JavaScript学习(二十九)—JS常用的事件
  8. kernel oops_Java中的OOPS概念– OOPS概念示例
  9. linux 英汉词典程序shell+postgresql版
  10. hdwiki 学习笔记 01
  11. python调用 ole:win32com用法详解
  12. MacBook没声音
  13. 从键盘上输入以下的数据:TOM:89|JERRY:90|TONY:95,数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将结果按成绩由高到低排序。
  14. java robot 游戏_JAVA制作游戏脚本(1)---Robot机器人
  15. 关于MMORPG多人对战中热点问题的解决思路讨论
  16. Android Unable to delete file: build\intermediates\manifests\full\debug\AndroidManifest.xm
  17. 傅里叶变换经滤波处理及傅里叶逆变换
  18. f1签证计算机专业容易拒签吗,美国签证F1被拒,拒签调档出来原来是这个原因...
  19. java在文件中输出换行符
  20. APUE学习的经验(引以为戒)

热门文章

  1. 批量提取多个excel文件指定单元格内容,并汇总到一个新excel文件里
  2. dotnetty java netty,『神坑』DotNetty 内存泄漏 解决办法
  3. svn服务端的安装与使用方式简介(一)
  4. 《滚石》评出最伟大100首英文歌!!!
  5. 最新高性能RISC-V开发板-LicheePi4A尝鲜开箱笔记
  6. 浅析Java堆内存和栈内存的区别
  7. codevs1174 靶形数独 dfs+剪枝
  8. 七十二个小时 (打一字)
  9. html之表格属性 cellpadding、cellspacing
  10. 黄河金岸诗词大赛八月一日落幕