您好,欢迎访问本站博客!登录后台查看权限
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
  • 网站所有资源均来自网络,如有侵权请联系站长删除!

redis集群搭建

redis admin 2019-08-18 149 次浏览 0个评论
网站分享代码

用1台服务器模拟7个节点

redis 采用 redis-3.2.4 版本。

服务器是 CentOS

安装过程

1. 下载并解压

 

wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2.4.tar.gz 

2. 编译安装

cd redis-3.2.4make && make install

3. 创建 Redis 节点

 首先在 机器上  redis-3.2.4 目录下创建 redis_cluster 目录

 

mkdir redis_cluster  

在 redis_cluster 目录下,创建名为7000、7001、7002  7003 7004 7005 7006的目录,并将 redis.conf 拷贝到这三个目录中

mkdir 7000 7001 7002 7003 7004 7005 7006  cp redis.conf redis_cluster/7000 cp redis.conf redis_cluster/7001 cp redis.conf redis_cluster/7002 cp redis.conf redis_cluster/7003 cp redis.conf redis_cluster/7004 cp redis.conf redis_cluster/7005  cp redis.conf redis_cluster/7006

分别修改这七个配置文件,修改内容如下

port  7000 //端口7000,7001,7002,7003 7004 7005 7006       
 bind 本机ip //默认ip为127.0.0.1 
 #需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,
 无法创建集群
 daemonize    yes                  
  //redis后台运行pidfile  /var/run/redis_7000.pid         
 //pidfile文件对应7000,7001,7002
cluster-enabled  yes //开启集群  
把注释#去掉cluster-config-file  nodes_7000.conf   
//集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000 //请求超时  默认15秒,
可自行设置appendonly  yes                           
//aof日志开启  有需要就开启,它会每次写操作都记录一条日志 

4. 启动各个节点

进入src目录 

redis-server redis_cluster/7000/redis.conf  依次执行就行 把7000-7006 全部启动
检查是否全部都启动  命令:ps aux | grep redis

5.创建集群

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006  --cluster-replicas 1
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006  --cluster-replicas 1
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006  --cluster-replicas 1

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006  --cluster-replicas 1

>>> Performing hash slots allocation on 7 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:7004 to 127.0.0.1:7000
Adding replica 127.0.0.1:7005 to 127.0.0.1:7001
Adding replica 127.0.0.1:7006 to 127.0.0.1:7002
Adding extra replicas...
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 32d24afee541b9f1b505b7ec7e622625697a8bfa 127.0.0.1:7000
   slots:[0-5460] (5461 slots) master
M: 47258d6f1581f86d5c7fb4f328b41842c847d7a3 127.0.0.1:7001
   slots:[5461-10922] (5462 slots) master
M: c6960d6a9e52ebef59431f24fb036b1782524b8d 127.0.0.1:7002
   slots:[10923-16383] (5461 slots) master
S: dc1edefd0c1a45f0dab418a3a952a01b2d9fa372 127.0.0.1:7003
   replicates 47258d6f1581f86d5c7fb4f328b41842c847d7a3
S: 3a8f761c264025f9b38f28ecabf97ca3d1ecb780 127.0.0.1:7004
   replicates c6960d6a9e52ebef59431f24fb036b1782524b8d
S: eed4ded18781d3eb313a370d3376d3eb93db1add 127.0.0.1:7005
   replicates 32d24afee541b9f1b505b7ec7e622625697a8bfa
S: 17787e890dd27bcedb86c358e3984371e8e48061 127.0.0.1:7006
   replicates 32d24afee541b9f1b505b7ec7e622625697a8bfa
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 127.0.0.1:7000)

>>> Performing hash slots allocation on 7 nodes...

Master[0] -> Slots 0 - 5460

Master[1] -> Slots 5461 - 10922

Master[2] -> Slots 10923 - 16383

Adding replica 127.0.0.1:7004 to 127.0.0.1:7000

Adding replica 127.0.0.1:7005 to 127.0.0.1:7001

Adding replica 127.0.0.1:7006 to 127.0.0.1:7002

Adding extra replicas...

Adding replica 127.0.0.1:7003 to 127.0.0.1:7000

>>> Trying to optimize slaves allocation for anti-affinity

[WARNING] Some slaves are in the same host as their master

M: 32d24afee541b9f1b505b7ec7e622625697a8bfa 127.0.0.1:7000

   slots:[0-5460] (5461 slots) master

M: 47258d6f1581f86d5c7fb4f328b41842c847d7a3 127.0.0.1:7001

   slots:[5461-10922] (5462 slots) master

M: c6960d6a9e52ebef59431f24fb036b1782524b8d 127.0.0.1:7002

   slots:[10923-16383] (5461 slots) master

S: dc1edefd0c1a45f0dab418a3a952a01b2d9fa372 127.0.0.1:7003

   replicates 47258d6f1581f86d5c7fb4f328b41842c847d7a3

S: 3a8f761c264025f9b38f28ecabf97ca3d1ecb780 127.0.0.1:7004

   replicates c6960d6a9e52ebef59431f24fb036b1782524b8d

S: eed4ded18781d3eb313a370d3376d3eb93db1add 127.0.0.1:7005

   replicates 32d24afee541b9f1b505b7ec7e622625697a8bfa

S: 17787e890dd27bcedb86c358e3984371e8e48061 127.0.0.1:7006

   replicates 32d24afee541b9f1b505b7ec7e622625697a8bfa

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 127.0.0.1:7000)

如果出现如上信息 代表集群创建成功

6.简单做个测试

在机器上连接集群 连接方式为 redis-cli -h 127.0.0.1 -c -p 7002  ,加参数 -C 可连接到集群,因为上面 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略。

127.0.0.1:7000> set zsb 123

127.0.0.1:7002> set zsb 123

127.0.0.1:7005> get  zsb 

输出了 123  

这样集群就正式搭建完成

已有 149 位网友参与,快来吐槽:

发表评论

站点统计