Required OS: Ubuntu 18.04 LTS
Target redis version: 3.0.6
1. Install required softwares and tools
sudo apt update
sudo apt install redis-server ruby redis-tools
Master Nodes:
- redis-master1 – 192.168.1.101
- redis-master2 – 192.168.1.102
- redis-master3 – 192.168.1.103
2. IP Address of the nodes
Slave Nodes
- redis-slave1 – 192.168.1.104
- redis-slave2 – 192.168.1.105
- redis-slave3 – 192.168.1.106
3. To Create Redis Cluster (master-master-master) download following ruby tool ( so install redis library from gem repo)
wget https://github.com/seekasia/redis/raw/master/src/redis-trib-pass.rb
chmod +x redis-trib-pass.rb
sudo gem install redis -v 3.0.6
sudo ./redis-trib-pass.rb help
grep requirepass /etc/redis/redis.conf
requirepass mypassword
sudo ./redis-trib-pass.rb create –auth <cluter-password> MASTER1-IP:PortNo MASTER2-IP:PortNo …
sudo ./redis-trib-pass.rb create –auth mypassword 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379
4. Create slave for each master (master-slave):
In-order to create a master-slave cluster, you need to findout the master nodes ID, here is how to find
sudo redis-cli
auth mypassword
OK
> cluster nodes
note down the master-id and use it for master-slave creation
./redis-trib-pass.rb add-node –auth <cluster-password> –slave –master-id <master-node-uuid> SALVE-IP:PortNo MasterIP:PortNo
./redis-trib-pass.rb add-node –auth mypassword –slave –master-id 71d9ebaf2fb102959a3110a875800afb8472c747 192.168.1.104:6379 192.168.1.101:6379
./redis-trib-pass.rb add-node –auth mypassword –slave –master-id 53b90750c271adadb7934d36bb8e5f23fb3f4896 192.168.1.105:6379 192.168.1.102:6379
./redis-trib-pass.rb add-node –auth mypassword –slave –master-id d680676797c6c6bfae3a7d86e8a298e5fd9338c2 192.168.1.106:6379 192.168.1.103:6379
Here
71d9ebaf2fb102959a3110a875800afb8472c747 => redis-master1 ID
53b90750c271adadb7934d36bb8e5f23fb3f4896 => redis-master2 ID
d680676797c6c6bfae3a7d86e8a298e5fd9338c2 => redis-master3 ID
5. Verify cluster setup
sudo redis-cli
auth mypassword
OK
> cluster nodes
You must be logged in to post a comment.