redis3.0集群安装步骤

安装redis集群的机器如下:
10.0.0.1
10.0.0.2
10.0.0.3

1,下载redis-3.0.0-rc1.tar.gz(目前的最新版)上传到以上三台机器的/data目录;

2,分别解压redis-3.0.0-rc1.tar.gz,命令:tar xzvf redis-3.0.0-rc1.tar.gz

3,分别:cd redis-3.0.0-rc1

4,make

5,make install

6,在/data下创建文件夹:mkdir dcp
   在dcp下创建文件夹:mkdir rediscluster
   在rediscluster下创建:
conf----------存放redis配置文件
data----------存放redis数据文件
log-----------存放日志文件
pid-----------存放pid文件
script--------存放启动停止脚本

7,把redis.conf_32001文件上传到conf目录下,然后:
-rw-r--r-- 1 root root 1236 Oct 14 15:14 redis.conf_32001
[root@hz_bjcm133 conf]# cp redis.conf_32001 redis.conf_32002
[root@hz_bjcm133 conf]# cp redis.conf_32001 redis.conf_32003
[root@hz_bjcm133 conf]# cp redis.conf_32001 redis.conf_32004
[root@hz_bjcm133 conf]# cp redis.conf_32001 redis.conf_32005

8,sed -i 's/192.168.7.198/10.0.0.1/g' redis.conf_*

9,sed -i 's/\/data\/dmap\/rediscluster/\/data\/dcp\/rediscluster/g' redis.conf_*

10,sed -i 's/32001/32005/g' redis.conf_32005
    sed -i 's/32001/32004/g' redis.conf_32004
    sed -i 's/32001/32003/g' redis.conf_32003
    sed -i 's/32001/32002/g' redis.conf_32002

11,启动redis
    [root@hz_bjcm133 conf]# /data/redis-3.0.0-rc1/src/redis-server /data/dcp/rediscluster/conf/redis.conf_32001 
    [root@hz_bjcm133 conf]# /data/redis-3.0.0-rc1/src/redis-server /data/dcp/rediscluster/conf/redis.conf_32002
    [root@hz_bjcm133 conf]# /data/redis-3.0.0-rc1/src/redis-server /data/dcp/rediscluster/conf/redis.conf_32003
    [root@hz_bjcm133 conf]# /data/redis-3.0.0-rc1/src/redis-server /data/dcp/rediscluster/conf/redis.conf_32004
    [root@hz_bjcm133 conf]# /data/redis-3.0.0-rc1/src/redis-server /data/dcp/rediscluster/conf/redis.conf_32005

12,查看进程:ps aux|grep redis
    root     22225  0.0  0.0 137408  7456 ?        Ssl  14:27   0:00 /data/redis-3.0.0-rc1/src/redis-server 10.0.0.1:32001 [cluster]             
    root     22230  0.0  0.0 137408  7456 ?        Ssl  14:27   0:00 /data/redis-3.0.0-rc1/src/redis-server 10.0.0.1:32002 [cluster]             
    root     22235  0.0  0.0 137408  7456 ?        Ssl  14:27   0:00 /data/redis-3.0.0-rc1/src/redis-server 10.0.0.1:32003 [cluster]             
    root     22239  0.0  0.0 137408  7456 ?        Ssl  14:27   0:00 /data/redis-3.0.0-rc1/src/redis-server 10.0.0.1:32004 [cluster]             
    root     22265  0.0  0.0 137408  7456 ?        Ssl  14:27   0:00 /data/redis-3.0.0-rc1/src/redis-server 10.0.0.1:32005 [cluster] 

13,在其它机器上也执行同样的操作;

14,把启动脚本(start.sh)和停止脚本(stop.sh)上传到各个机器的script目录下;

15,下载ruby,我下载的是ruby-2.1.3.tar.gz这个版本(ruby:程序员最要好的朋友 O(∩_∩)O~)
    下载地址:https://www.ruby-lang.org/zh_cn/downloads/
    以上三台机器只要安装一台就行,这里我选择的是:10.0.0.3
    把ruby-2.1.3.tar.gz上传到137/data目录下,解压:tar xzvf ruby-2.1.3.tar.gz
    
    ruby的安装参考:http://www.shangxueba.com/jingyan/97915.html
    
    a,进入ruby-2.1.3执行:./configure
    b,make
    c,make install

    OK,现在敲:ruby -v
    是不是出现了ruby的版本号了,恭喜,您已经成功安装了ruby!
    
    如果出现如下问题:
    -bash: ruby: command not found
    解决方法如下:
    ln -s /usr/local/bin/ruby /bin
    

16,把所有节点加到redis集群
    ./redis-trib.rb create --replicas 1 10.0.0.1:32001 10.0.0.1:32002 10.0.0.1:32003 10.0.0.1:32004 10.0.0.1:32005 10.0.0.2:32001 10.0.0.2:32002 10.0.0.2:32003 10.0.0.2:32004 10.0.0.2:32005 10.0.0.3:32001 10.0.0.3:32002 10.0.0.3:32003 10.0.0.3:32004 10.0.0.3:32005   

./redis-trib.rb create --replicas 1 118.26.150.166:32001 118.26.150.166:32002 118.26.150.166:32003 118.26.150.166:32004 118.26.150.166:32005  118.26.148.125:32001 118.26.148.125:32002 118.26.148.125:32003 118.26.148.125:32004 118.26.148.125:32005 118.26.150.165:32001 118.26.150.165:32002  118.26.150.165:32003 118.26.150.165:32004 118.26.150.165:32005
 

17,执行报错
/usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
        from /usr/local/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from ./redis-trib.rb:25:in `<main>'
那么说明Ruby的redis接口没有安装,可以通过sudo gem install redis或者gem install redis 进行安装。

gem install redis  可能由于网络原因下载失败
可以手动下载:
download地址:http://rubygems.org/gems/redis/versions/3.0.0
gem install -l /data/soft/redis-3.0.0.gem

18,重新执行16
>>> Creating cluster
Connecting to node 10.0.0.1:32001: OK
Connecting to node 10.0.0.1:32002: OK
Connecting to node 10.0.0.1:32003: OK
Connecting to node 10.0.0.1:32004: OK
Connecting to node 10.0.0.1:32005: OK
Connecting to node 10.0.0.2:32001: OK
Connecting to node 10.0.0.2:32002: OK
Connecting to node 10.0.0.2:32003: OK
Connecting to node 10.0.0.2:32004: OK
Connecting to node 10.0.0.2:32005: OK
Connecting to node 10.0.0.3:32001: OK
Connecting to node 10.0.0.3:32002: OK
Connecting to node 10.0.0.3:32003: OK
Connecting to node 10.0.0.3:32004: OK
Connecting to node 10.0.0.3:32005: OK
>>> Performing hash slots allocation on 15 nodes...
Using 7 masters:
10.0.0.1:32001
10.0.0.2:32001
10.0.0.3:32001
10.0.0.1:32002
10.0.0.2:32002
10.0.0.3:32002
10.0.0.1:32003
Adding replica 10.0.0.2:32003 to 10.0.0.1:32001
Adding replica 10.0.0.1:32004 to 10.0.0.2:32001
Adding replica 10.0.0.1:32005 to 10.0.0.3:32001
Adding replica 10.0.0.2:32004 to 10.0.0.1:32002
Adding replica 10.0.0.3:32003 to 10.0.0.2:32002
Adding replica 10.0.0.2:32005 to 10.0.0.3:32002
Adding replica 10.0.0.3:32004 to 10.0.0.1:32003
Adding replica 10.0.0.3:32005 to 10.0.0.1:32001
M: bca6171f8e6a53ca95e487b3e07d3e27e8d588c6 10.0.0.1:32001
   slots:0-2340 (2341 slots) master
M: ae44168e433c4b58f15f03987100eb95742892da 10.0.0.1:32002
   slots:7022-9361 (2340 slots) master
M: 0939b70560b2ece64642ba021cfaec8be621c17a 10.0.0.1:32003
   slots:14043-16383 (2341 slots) master
S: fa99bfc99d7e678ceeedd28242b69cd9e61ff05b 10.0.0.1:32004
   replicates e364a7fb06fe9922ea81e7fc41c2891370d5a2af
S: 7acdaa82e5d52db1ac1ba209324c30ea62b3b5c3 10.0.0.1:32005
   replicates f307234110ca4246c273f5a4eff3749eee6bd9b6
M: e364a7fb06fe9922ea81e7fc41c2891370d5a2af 10.0.0.2:32001
   slots:2341-4680 (2340 slots) master
M: a6182636a6dc7ba2339a425d85b7eabacdb55ed0 10.0.0.2:32002
   slots:9362-11702 (2341 slots) master
S: 2243eec692146889d850b153e6e54458085c49b9 10.0.0.2:32003
   replicates bca6171f8e6a53ca95e487b3e07d3e27e8d588c6
S: b4ef9345520868fa8a5b00355b3ef85a32821d56 10.0.0.2:32004
   replicates ae44168e433c4b58f15f03987100eb95742892da
S: ad224ac0015c2280a651443e5f780d19e0873db1 10.0.0.2:32005
   replicates f5fc306ac3e541e1539ca4345aa2fbdb493db787
M: f307234110ca4246c273f5a4eff3749eee6bd9b6 10.0.0.3:32001
   slots:4681-7021 (2341 slots) master
M: f5fc306ac3e541e1539ca4345aa2fbdb493db787 10.0.0.3:32002
   slots:11703-14042 (2340 slots) master
S: 937ddb1c9854a0168ca66b36d3fba0c9ef392024 10.0.0.3:32003
   replicates a6182636a6dc7ba2339a425d85b7eabacdb55ed0
S: e56edb5eb3b00c4192b49696722c850d44c8888b 10.0.0.3:32004
   replicates 0939b70560b2ece64642ba021cfaec8be621c17a
S: 5db54925bdfd92a2ac06a5e5326be82247e37b2a 10.0.0.3:32005
   replicates bca6171f8e6a53ca95e487b3e07d3e27e8d588c6
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:32001)
M: bca6171f8e6a53ca95e487b3e07d3e27e8d588c6 10.0.0.1:32001
   slots:0-2340 (2341 slots) master
M: ae44168e433c4b58f15f03987100eb95742892da 10.0.0.1:32002
   slots:7022-9361 (2340 slots) master
M: 0939b70560b2ece64642ba021cfaec8be621c17a 10.0.0.1:32003
   slots:14043-16383 (2341 slots) master
M: fa99bfc99d7e678ceeedd28242b69cd9e61ff05b 10.0.0.1:32004
   slots: (0 slots) master
   replicates e364a7fb06fe9922ea81e7fc41c2891370d5a2af
M: 7acdaa82e5d52db1ac1ba209324c30ea62b3b5c3 10.0.0.1:32005
   slots: (0 slots) master
   replicates f307234110ca4246c273f5a4eff3749eee6bd9b6
M: e364a7fb06fe9922ea81e7fc41c2891370d5a2af 10.0.0.2:32001
   slots:2341-4680 (2340 slots) master
M: a6182636a6dc7ba2339a425d85b7eabacdb55ed0 10.0.0.2:32002
   slots:9362-11702 (2341 slots) master
M: 2243eec692146889d850b153e6e54458085c49b9 10.0.0.2:32003
   slots: (0 slots) master
   replicates bca6171f8e6a53ca95e487b3e07d3e27e8d588c6
M: b4ef9345520868fa8a5b00355b3ef85a32821d56 10.0.0.2:32004
   slots: (0 slots) master
   replicates ae44168e433c4b58f15f03987100eb95742892da
M: ad224ac0015c2280a651443e5f780d19e0873db1 10.0.0.2:32005
   slots: (0 slots) master
   replicates f5fc306ac3e541e1539ca4345aa2fbdb493db787
M: f307234110ca4246c273f5a4eff3749eee6bd9b6 10.0.0.3:32001
   slots:4681-7021 (2341 slots) master
M: f5fc306ac3e541e1539ca4345aa2fbdb493db787 10.0.0.3:32002
   slots:11703-14042 (2340 slots) master
M: 937ddb1c9854a0168ca66b36d3fba0c9ef392024 10.0.0.3:32003
   slots: (0 slots) master
   replicates a6182636a6dc7ba2339a425d85b7eabacdb55ed0
M: e56edb5eb3b00c4192b49696722c850d44c8888b 10.0.0.3:32004
   slots: (0 slots) master
   replicates 0939b70560b2ece64642ba021cfaec8be621c17a
M: 5db54925bdfd92a2ac06a5e5326be82247e37b2a 10.0.0.3:32005
   slots: (0 slots) master
   replicates bca6171f8e6a53ca95e487b3e07d3e27e8d588c6
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.


恭喜!安装成功!








测试集群:
链接某一个节点:
redis-cli -c -p 32001 -h 192.168.7.166  


./redis-trib.rb check 10.0.0.3:32001

删除数据
redis-cli keys '*u_2548_*' | xargs -i  redis-cli del {}


查看节点分布信息
127.0.0.1:7000> cluster nodes

查看 slots 分布信息
127.0.0.1:7000> cluster slots






高级应用
eval "return redis.call('get',KEYS[1])" 1 u_11_5016_1408421658769317078330
redis-cli -p 32001 -h 118.26.148.125 EVAL "local msg = redis.call('get', KEYS[1]) return msg" 1 u_11_5016_1408421658769317078330
redis-cli -c -p 32001 -h 118.26.150.166 EVAL "$(cat hello.lua)" 0

Lua: 给 Redis 用户的入门指导
http://www.oschina.net/translate/intro-to-lua-for-redis-programmers?print

http://www.redis.cn/commands/hset.html







Redis 命令参考
http://redis.readthedocs.org/en/latest/index.html
Linux Shell之sed命令
http://blog.sina.com.cn/s/blog_a56ef5490101cgn2.html
通过Keepalived实现Redis Failover自动故障切换功能[实践分享]
http://heylinux.com/archives/1942.html

Redis主从自动failover
http://ylw6006.blog.51cto.com/470441/1086455


redis数据批量导入导出
http://my.oschina.net/u/937153/blog/133526





[root@host166 src]# redis-cli -c -p 32001 -h 118.26.150.166 cluster nodes |grep master
c735262a2e9867fe33b6cb4aa5ea9f0eec8ff8c3 118.26.150.166:32003 master - 0 1415591724660 3 connected 14043-16383
919374abb9cbe900554197abd29ffcdd71ee801c 118.26.150.166:32005 master - 0 1415591724660 17 connected 4681-7021
a7527428e82fb8c4c7d36012da5a1fe279e88c0f 118.26.150.166:32004 master - 0 1415591724660 22 connected 2341-4680
1f26d53ad0a3aa211367d0855b591ef84ab9f6b5 118.26.150.166:32002 master - 0 1415591724660 2 connected 7022-9361
8719792b7998042d699077d34d92b8c01cdce625 118.26.150.165:32002 master - 0 1415591724560 21 connected 11703-14042
803f32a027257aac4e598aee5e7075582a71292f 118.26.150.166:32001 myself,master - 0 0 1 connected 0-2340
516efe05a3067e6c1e81573b30300767c60e63c1 118.26.150.165:32003 master - 0 1415591724660 20 connected 9362-11702


[root@hz_bj137 src]# ./redis-cli -c -p 32001 -h 10.0.0.3 cluster nodes | grep master
0939b70560b2ece64642ba021cfaec8be621c17a 10.0.0.1:32003 master - 0 1415591951366 3 connected 14043-16383
bca6171f8e6a53ca95e487b3e07d3e27e8d588c6 10.0.0.1:32001 master - 0 1415591951466 1 connected 0-2340
f307234110ca4246c273f5a4eff3749eee6bd9b6 10.0.0.3:32001 myself,master - 0 0 11 connected 4681-7021
ae44168e433c4b58f15f03987100eb95742892da 10.0.0.1:32002 master - 0 1415591951366 2 connected 7022-9361
a6182636a6dc7ba2339a425d85b7eabacdb55ed0 10.0.0.2:32002 master - 0 1415591951366 7 connected 9362-11702
e364a7fb06fe9922ea81e7fc41c2891370d5a2af 10.0.0.2:32001 master - 0 1415591951466 6 connected 2341-4680
f5fc306ac3e541e1539ca4345aa2fbdb493db787 10.0.0.3:32002 master - 0 1415591951466 12 connected 11703-14042


[root@yz_dtcy125 src]# redis-cli -c -p 32001 -h 118.26.150.166 cluster nodes |grep slave
ee6c25030712b6f6aa5c944975cdb059d196e1a4 118.26.150.165:32001 slave 919374abb9cbe900554197abd29ffcdd71ee801c 0 1417770765560 17 connected
3adc8bdd0d3474cf44485b3b4e26bcf1dc1a4e1a 118.26.150.165:32004 slave c735262a2e9867fe33b6cb4aa5ea9f0eec8ff8c3 0 1417770765660 14 connected
3bdba65d8f1581a0859c1bad50abe3387ffb567f 118.26.148.125:32004 slave 1f26d53ad0a3aa211367d0855b591ef84ab9f6b5 0 1417770765660 9 connected
701e0048c0fca1cc26f8dbc0f62e25f80ed2b1ad 118.26.148.125:32002 slave 516efe05a3067e6c1e81573b30300767c60e63c1 0 1417770765660 20 connected
2ac966c31ac61f2f1c516a284a8e8f41c889bc2b 118.26.148.125:32005 slave 8719792b7998042d699077d34d92b8c01cdce625 0 1417770765660 21 connected
a7190177b6a8aa63eefd1c6076c6623513833362 118.26.150.165:32005 slave 803f32a027257aac4e598aee5e7075582a71292f 0 1417770765559 15 connected
a00aeb722f7c2f03b0d2c8d37c20afca0359fb71 118.26.148.125:32003 slave a7527428e82fb8c4c7d36012da5a1fe279e88c0f 0 1417770765560 22 connected
911f0440b08f6b8605331122344382c163a5e1ed 118.26.148.125:32001 slave a7527428e82fb8c4c7d36012da5a1fe279e88c0f 0 1417770765560 22 connected




while read line; do ip=`echo $line |awk -F":" '{print $1}'`; port=`echo $line |awk -F":" '{print $2}'`; redis-cli -c -p $port -h $ip dbsize; done < /tmp/cluster_master.137
redis-cli -c -h 10.0.0.3 -p 32001 cluster nodes |grep master |awk '{print $2}' > /tmp/cluster_master.137
先执行下面这个,生成master文件


[root@hz_bj137 src]# pwd
/data/redis-3.0.0-rc1/src
You have mail in /var/spool/mail/root
[root@hz_bj137 src]# while read line; do ip=`echo $line |awk -F":" '{print $1}'`; port=`echo $line |awk -F":" '{print $2}'`; ./redis-cli -c -p $port -h $ip dbsize; done < /tmp/cluster_master.137



redis-cli -c -p 32001 -h 118.26.148.125 cluster nodes | grep fail
./redis-cli -c -p 33001 -h 192.168.7.228 cluster nodes | grep fail



no reachable node in cluster
此问题为应用程序连不上redis集群中的cluster,因为系统部的人把redis集群机器的防火墙开了,
导致应用程序大量报这个错误



./redis-cli -c -p 33061 -h 118.26.150.231 cluster nodes |grep master

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值