redis安装以及cluster构筑心得

项目要用Redis,事先调查构筑一下cluster,上网一通查找,最后总结一下流程。

首先下载下面三个东西,我选的都是最新的版本。

忘了说了,是在linux下安装构筑的。

1.redis-6.2.6.tar.gz

①tar xzf redis-6.2.6.tar.gz 解压

②cd redis-6.2.6 到指定目录中

③make

④make install PREFIX=指定路径

PS:也可以不指定,默认安装到·usr,但是给我的linux用户没有权限,只给了一个文件夹的权限,我只能安装到那里。

⑤redis-server -v

PS:如果不是默认usr文件夹的话,redis-server命令要加你的实际路径

2.ruby-2.3.1.tar.gz

①tar -zxvf ruby-2.3.1.tar.gz

②./configure –-prefix=指定路径

③make && make install

④ruby -v 同上,非默认路径,ruby命令前面要加实际路径

redis5.0以后,就不需要ruby运行了,所以这个不用装了。

3.redis-3.3.0.gem

ruby不要了,当然这个gem也不需要了。

好了装完了,下面开始构筑cluster

①mkdir cluster-test 建一个专用文件夹

②cd cluster-test

③mkdir 7000 7001 7002 7003 7004 7005 7006   下面建7个文件夹

目标构筑三主四从

 /etc/redis.conf复制七份,改下面的参数,红字部分是七份不同的,分别放到刚才七个文件夹里

port 7000
cluster-enabled yes
cluster-node-timeout 5000
appendonly yes
daemonize yes
loglevel debug
logfile /home/ec2-user/cluster-test/7000/redis.log
cluster-config-file /home/ec2-user/cluster-test/7000/nodes-7000.conf

启动这七个,

$ sudo redis-server ./7000/redis.conf
$ sudo redis-server ./7001/redis.conf
$ sudo redis-server ./7002/redis.conf
$ sudo redis-server ./7003/redis.conf
$ sudo redis-server ./7004/redis.conf
$ sudo redis-server ./7005/redis.conf
$ sudo redis-server ./7006/redis.conf

确认一下启动情况:$ ps aux | grep redis | grep -v grep

构筑cluster的三个主

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002

然后构筑四个从 

$ ./redis-trib.rb add-node --slave --master-id 8437edc8825ef2cb0d33fcaff028ad6eb13ed5bf 127.0.0.1:7003 127.0.0.1:7000
$ ./redis-trib.rb add-node --slave --master-id 8437edc8825ef2cb0d33fcaff028ad6eb13ed5bf 127.0.0.1:7003 127.0.0.1:7000
$ ./redis-trib.rb add-node --slave --master-id 8437edc8825ef2cb0d33fcaff028ad6eb13ed5bf 127.0.0.1:7004 127.0.0.1:7000
$ ./redis-trib.rb add-node --slave --master-id eb6c6a4924cd449dcac420159cab592bc7dc8a4e 127.0.0.1:7005 127.0.0.1:7001

$ ./redis-trib.rb add-node --slave --master-id 6082772a27ae6465b9f3d26959e1de5991b41356 127.0.0.1:7006 127.0.0.1:7002

如图构筑完成。

看一下7000

$ redis-cli -p 7000 cluster nodes 

结果如下:

004e547e24fbdede970cd95a8801fdef6c51ee3c 127.0.0.1:7006 slave 6082772a27ae6465b9f3d26959e1de5991b41356 0 1458647137056 3 connected
00697c7f90fc0d5a3d1c55bf51b2790881b6c36a 127.0.0.1:7003 slave 8437edc8825ef2cb0d33fcaff028ad6eb13ed5bf 0 1458647136055 1 connected
8437edc8825ef2cb0d33fcaff028ad6eb13ed5bf 127.0.0.1:7000 myself,master - 0 0 1 connected 0-5460
eb7278d6b3018e321d1fdb4a79e630d295776e63 127.0.0.1:7005 slave eb6c6a4924cd449dcac420159cab592bc7dc8a4e 0 1458647141066 2 connected
f0784fa504d9a64ba3cedf8a66d2c23cea9f6e16 127.0.0.1:7004 slave 8437edc8825ef2cb0d33fcaff028ad6eb13ed5bf 0 1458647139061 1 connected
eb6c6a4924cd449dcac420159cab592bc7dc8a4e 127.0.0.1:7001 master - 0 1458647140064 2 connected 5461-10922
6082772a27ae6465b9f3d26959e1de5991b41356 127.0.0.1:7002 master - 0 1458647138058 3 connected 10923-16383

测试一下,杀掉7002,sudo kill 23217

 

 如上图,7002的仆从7006自动上位变成主,同时仆从自动平均分配,7000有两个仆从,其中一个7003给了刚上位的7006当仆从。

再杀掉刚上位的7006 

 7006的仆从7003自动上位,没有多余仆从分给他了

最后测试一下,在7001存了一个andy,自动存到7002了,从7002成功取到。

1. [root@localhost redis01]# ./redis-cli -c -p 7001  
2. 127.0.0.1:7001> set name andy  
3. -> Redirected to slot [5798] located at 127.0.0.1:7002  
4. OK  
5. 127.0.0.1:7002> get name  
6. "andy"  

头一回写文章,有点混乱,看不懂的直接私信我。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值