redis 集群创建
我这里用了 2 台机器, 创建伪集群, 大家可根据自己需要, 稍微调整即可
- ## 安装配置 redis 集群
- [root@master1 redis]# cat redis.sls
- redis-installed:
- archive.extracted:
- - name: /ane/soft/
- - source: salt://redis/files/redis-3.2.1.tar.gz
- - archive_format: tar
- - if_missing: /ane/soft/redis-3.2.1
- - unless: test -d /ane/redis
- pkg.installed:
- - pkgs:
- - gcc
- - tcl
- - gcc-c++
- cmd.run:
- - name: cd /ane/soft/redis-3.2.1 && make && make install
- redis-6379conf:
- file.managed:
- - name: /ane/redis/6379/redis.conf
- - source: salt://redis/files/redis.conf
- - makedirs: True
- - template: jinja
- host: {{ grains['fqdn_ip4'][0] }}
- port: 6379
- redis-6380conf:
- file.managed:
- - name: /ane/redis/6380/redis.conf
- - source: salt://redis/files/redis.conf
- - makedirs: True
- - template: jinja
- host: {{ grains['fqdn_ip4'][0] }}
- port: 6380
- redis-6381conf:
- file.managed:
- - name: /ane/redis/6381/redis.conf
- - source: salt://redis/files/redis.conf
- - makedirs: True
- - template: jinja
- host: {{ grains['fqdn_ip4'][0] }}
- port: 6381
- redis-cluster:
- pkg.installed:
- - pkgs:
- - ruby
- - ruby-devel
- - rubygems
- file.managed:
- - name: /ane/soft/redis-3.2.1.gem
- - source: salt://redis/files/redis-3.2.1.gem
- cmd.run:
- - name: gem install /ane/soft/redis-3.2.1.gem
- redis-service:
- file.managed:
- - name: /ane/script/startredis.sh
- - source: salt://redis/files/startredis.sh
- - makedirs: True
- - mode: 655
- cmd.run:
- - name: /ane/script/startredis.sh
上面采用了 jinja 模版, 其中 host 和 port 是定义的两个模版变量, 可以传不同的值进去
- ## 创建集群
- [root@master1 redis]# salt 'master1' cmd.run 'echo yes|/ane/soft/redis-3.2.1/src/redis-trib.rb create --replicas 1 172.16.77.160:6379 172.16.77.160:6380 172.16.77.160:6381 172.16.77.162:6379 172.16.77.162:6380 172.16.77.162:6381'
- master1:
- >>> Creating cluster
- >>> Performing hash slots allocation on 6 nodes...
- Using 3 masters:
- 172.16.77.160:6379
- 172.16.77.162:6379
- 172.16.77.160:6380
- Adding replica 172.16.77.162:6380 to 172.16.77.160:6379
- Adding replica 172.16.77.160:6381 to 172.16.77.162:6379
- Adding replica 172.16.77.162:6381 to 172.16.77.160:6380
- M: 1ef26e8ddcd56d22f66b1270e0f29cf319b6305c 172.16.77.160:6379
- slots:0-5460 (5461 slots) master
- M: 0cd4d5ecdecc538e76c6b3d0cfa689cb40f7e573 172.16.77.160:6380
- slots:10923-16383 (5461 slots) master
- S: 07b6124f057e12fc78833be31757413de01f6368 172.16.77.160:6381
- replicates e4d5bdc8815126789cc8935cec5be3380f7e68d4
- M: e4d5bdc8815126789cc8935cec5be3380f7e68d4 172.16.77.162:6379
- slots:5461-10922 (5462 slots) master
- S: 6cafd239cff892c4e587b14d5cc5619cb3a97277 172.16.77.162:6380
- replicates 1ef26e8ddcd56d22f66b1270e0f29cf319b6305c
- S: cb31f41ffe6ff356b65727b1dc3d5fdc14378c45 172.16.77.162:6381
- replicates 0cd4d5ecdecc538e76c6b3d0cfa689cb40f7e573
- Can I set the above configuration? (type 'yes' to accept):>>> 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 172.16.77.160:6379)
- M: 1ef26e8ddcd56d22f66b1270e0f29cf319b6305c 172.16.77.160:6379
- slots:0-5460 (5461 slots) master
- M: 0cd4d5ecdecc538e76c6b3d0cfa689cb40f7e573 172.16.77.160:6380
- slots:10923-16383 (5461 slots) master
- M: 07b6124f057e12fc78833be31757413de01f6368 172.16.77.160:6381
- slots: (0 slots) master
- replicates e4d5bdc8815126789cc8935cec5be3380f7e68d4
- M: e4d5bdc8815126789cc8935cec5be3380f7e68d4 172.16.77.162:6379
- slots:5461-10922 (5462 slots) master
- M: 6cafd239cff892c4e587b14d5cc5619cb3a97277 172.16.77.162:6380
- slots: (0 slots) master
- replicates 1ef26e8ddcd56d22f66b1270e0f29cf319b6305c
- M: cb31f41ffe6ff356b65727b1dc3d5fdc14378c45 172.16.77.162:6381
- slots: (0 slots) master
- replicates 0cd4d5ecdecc538e76c6b3d0cfa689cb40f7e573
- [OK] All nodes agree about slots configuration.
- >>> Check for open slots...
- >>> Check slots coverage...
- [OK] All 16384 slots covered.
- ## 测试 redis 集群
- [root@master1 redis]# redis-cli -h 172.16.77.160 -p 6379
- 172.16.77.160:6379> set hello world
- OK
- 172.16.77.160:6379> get hello
- "world"
- 172.16.77.160:6379>
- [root@master1 redis]# redis-cli -h 172.16.77.160 -p 6379
- 172.16.77.160:6379> set hello world
- OK
- 172.16.77.160:6379> get hello
- "world"
- 172.16.77.160:6379> cluster info
- cluster_state:ok
- cluster_slots_assigned:16384
- cluster_slots_ok:16384
- cluster_slots_pfail:0
- cluster_slots_fail:0
- cluster_known_nodes:6
- cluster_size:3
- cluster_current_epoch:6
- cluster_my_epoch:1
- cluster_stats_messages_sent:232
- cluster_stats_messages_received:232
- 172.16.77.160:6379> cluster nodes
- 1ef26e8ddcd56d22f66b1270e0f29cf319b6305c 172.16.77.160:6379 myself,master - 0 0 1 connected 0-5460
- cb31f41ffe6ff356b65727b1dc3d5fdc14378c45 172.16.77.162:6381 slave 0cd4d5ecdecc538e76c6b3d0cfa689cb40f7e573 0 1517560583831 6 connected
- 6cafd239cff892c4e587b14d5cc5619cb3a97277 172.16.77.162:6380 slave 1ef26e8ddcd56d22f66b1270e0f29cf319b6305c 0 1517560578775 5 connected
- e4d5bdc8815126789cc8935cec5be3380f7e68d4 172.16.77.162:6379 master - 0 1517560580795 4 connected 5461-10922
- 07b6124f057e12fc78833be31757413de01f6368 172.16.77.160:6381 slave e4d5bdc8815126789cc8935cec5be3380f7e68d4 0 1517560579785 4 connected
- 0cd4d5ecdecc538e76c6b3d0cfa689cb40f7e573 172.16.77.160:6380 master - 0 1517560582817 2 connected 10923-16383
- 172.16.77.160:6379>
来源: http://www.bubuko.com/infodetail-2667640.html