Skip to content

HeCG95/docker-redis-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-redis-cluster

Redis cluster with Docker Compose

Using Docker Compose to create a redis cluster.

Prerequisite

  • Install Docker and Docker Compose in your testing environment

  • Modify .env file to set current host address:

HOST=192.168.2.113

Start with following steps

  • (1) Start the redis cluster
docker-compose up -d

The result is

Creating docker-redis-cluster_redis-7003_1 ... done
Creating docker-redis-cluster_redis-7005_1 ... done
Creating docker-redis-cluster_redis-7006_1 ... done
Creating docker-redis-cluster_redis-7004_1 ... done
Creating docker-redis-cluster_redis-7002_1 ... done
Creating docker-redis-cluster_redis-7001_1 ... done   
  • (2) Check the status of redis nodes
docker-compose ps

The result is

              Name                             Command               State   Ports
----------------------------------------------------------------------------------
docker-redis-cluster_redis-7001_1   docker-entrypoint.sh redis ...   Up           
docker-redis-cluster_redis-7002_1   docker-entrypoint.sh redis ...   Up           
docker-redis-cluster_redis-7003_1   docker-entrypoint.sh redis ...   Up           
docker-redis-cluster_redis-7004_1   docker-entrypoint.sh redis ...   Up           
docker-redis-cluster_redis-7005_1   docker-entrypoint.sh redis ...   Up           
docker-redis-cluster_redis-7006_1   docker-entrypoint.sh redis ...   Up
  • (3) Create cluster with nodes above and check cluster status

Using redis-trib to create cluster:

docker run --rm --net=host -it inem0o/redis-trib create --replicas 1 192.168.2.113:7001 192.168.2.113:7002 192.168.2.113:7003 192.168.2.113:7004 192.168.2.113:7005 192.168.2.113:7006

The result is

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.2.113:7001
192.168.2.113:7002
192.168.2.113:7003
Adding replica 192.168.2.113:7004 to 192.168.2.113:7001
Adding replica 192.168.2.113:7005 to 192.168.2.113:7002
Adding replica 192.168.2.113:7006 to 192.168.2.113:7003
M: a2eec59ef7a78a553e19e135366b5e3f1a15ddd7 192.168.2.113:7001
   slots:0-5460 (5461 slots) master
M: 42435824a608c548a00ad80b003f5d173f0ad332 192.168.2.113:7002
   slots:5461-10922 (5462 slots) master
M: 1b3967106aca6e1012475b87c294cd8fd1717d0a 192.168.2.113:7003
   slots:10923-16383 (5461 slots) master
S: 5ddada55a080000a373de84d61500bdad78d8ec1 192.168.2.113:7004
   replicates a2eec59ef7a78a553e19e135366b5e3f1a15ddd7
S: 3b471b6d90174d657f8a216500a9b2b62346faf3 192.168.2.113:7005
   replicates 42435824a608c548a00ad80b003f5d173f0ad332
S: 560fcef35978dbc60b8ed073d87024ee29ad57b0 192.168.2.113:7006
   replicates 1b3967106aca6e1012475b87c294cd8fd1717d0a
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 192.168.2.113:7001)
M: a2eec59ef7a78a553e19e135366b5e3f1a15ddd7 192.168.2.113:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 42435824a608c548a00ad80b003f5d173f0ad332 192.168.2.113:7002@17002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: 1b3967106aca6e1012475b87c294cd8fd1717d0a 192.168.2.113:7003@17003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 560fcef35978dbc60b8ed073d87024ee29ad57b0 192.168.2.113:7006@17006
   slots: (0 slots) slave
   replicates 1b3967106aca6e1012475b87c294cd8fd1717d0a
S: 5ddada55a080000a373de84d61500bdad78d8ec1 192.168.2.113:7004@17004
   slots: (0 slots) slave
   replicates a2eec59ef7a78a553e19e135366b5e3f1a15ddd7
S: 3b471b6d90174d657f8a216500a9b2b62346faf3 192.168.2.113:7005@17005
   slots: (0 slots) slave
   replicates 42435824a608c548a00ad80b003f5d173f0ad332
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

Check cluster result with Redis Desktop Manager :

>CLUSTER NODES
42435824a608c548a00ad80b003f5d173f0ad332 192.168.2.113:7002@17002 master - 0 1566657326177 2 connected 5461-10922
1b3967106aca6e1012475b87c294cd8fd1717d0a 192.168.2.113:7003@17003 master - 0 1566657325000 3 connected 10923-16383
a2eec59ef7a78a553e19e135366b5e3f1a15ddd7 192.168.2.113:7001@17001 myself,master - 0 1566657324000 1 connected 0-5460
560fcef35978dbc60b8ed073d87024ee29ad57b0 192.168.2.113:7006@17006 slave 1b3967106aca6e1012475b87c294cd8fd1717d0a 0 1566657323170 6 connected
5ddada55a080000a373de84d61500bdad78d8ec1 192.168.2.113:7004@17004 slave a2eec59ef7a78a553e19e135366b5e3f1a15ddd7 0 1566657325174 4 connected
3b471b6d90174d657f8a216500a9b2b62346faf3 192.168.2.113:7005@17005 slave 42435824a608c548a00ad80b003f5d173f0ad332 0 1566657324171 5 connected

License

Apache 2.0 license

About

Redis Cluster with Redis v4 by Docker Compose.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published