Valkey Cluster Demo 
[acool@localhost ~]$ date
Fri Jul 5 01:48:53 PM PDT 2024
[acool@localhost ~]$ cat /etc/redhat-release
Fedora release 38 (Thirty Eight)
[acool@localhost ~]$ sudo dnf install valkey
...
[acool@localhost ~]$ valkey-cli --version
valkey-cli 7.2.4
[acool@localhost ~]$
[acool@localhost ~]$ # just in case...
[acool@localhost ~]$ systemctl stop valkey.service
[acool@localhost ~]$ systemctl status valkey.service
...
[acool@localhost ~]$ which valkey-server
/usr/bin/valkey-server
[acool@localhost ~]$
[acool@localhost ~]$ mkdir valkey-cluster-demo
[acool@localhost ~]$ cd valkey-cluster-demo/
[acool@localhost valkey-cluster-demo]$ vim valkey.conf
...
[acool@localhost valkey-cluster-demo]$ cat valkey.conf
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
[acool@localhost valkey-cluster-demo]$
[acool@localhost valkey-cluster-demo]$ mkdir cluster-test
[acool@localhost valkey-cluster-demo]$ cd cluster-test/
[acool@localhost cluster-test]$ mkdir -p {7000..7005}
[acool@localhost cluster-test]$ for i in {7000..7005}; do cp ../valkey.conf $i; done
[acool@localhost cluster-test]$ # open 7 tabs, update ports and start servers
[acool@localhost cluster-test]$ # TIP to update ports: for i in {0..5}; do sed -i 's/7000/700'"$i"'/g' "700$i/redis.conf" ; done
[acool@localhost cluster-test]$ cd 7000/
[acool@localhost 7000]$ /usr/bin/valkey-server ./valkey.conf
...
[acool@localhost valkey-cluster-demo] # create cluster
[acool@localhost valkey-cluster-demo]$ valkey-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 --cluster-replicas 1
...
[acool@localhost valkey-cluster-demo]$ valkey-cli -p 7000 cluster nodes
384d585df521f8588a03b57a38e871549c0e58c4 127.0.0.1:7001@17001 master - 0 1720214911355 2 connected 5461-10922
5d2edcbba8f394a612df5253bd19a9399f97f4ff 127.0.0.1:7002@17002 master - 0 1720214912358 3 connected 10923-16383
4cf4150f20ae444422f0dabbc29b0a75878b1a2d 127.0.0.1:7004@17004 slave c88d6bea070f64023a2c7f27831bbbd113b2ff03 0 1720214912000 1 connected
e40a58e318f277ce2d420f7cb77480d5643c28c4 127.0.0.1:7005@17005 slave 384d585df521f8588a03b57a38e871549c0e58c4 0 1720214913362 2 connected
c88d6bea070f64023a2c7f27831bbbd113b2ff03 127.0.0.1:7000@17000 myself,master - 0 1720214912000 1 connected 0-5460
5b13cd8e34b47890e88fb48e30a99174ba19b751 127.0.0.1:7003@17003 slave 5d2edcbba8f394a612df5253bd19a9399f97f4ff 0 1720214911354 3 connected
[acool@localhost valkey-cluster-demo]$
[acool@localhost valkey-cluster-demo]$
[acool@localhost valkey-cluster-demo]$ # To connect to Valkey Cluster, you'll need a cluster-aware Valkey client...
[acool@localhost valkey-cluster-demo]$ # ...store some keys
[acool@localhost valkey-cluster-demo]$ valkey-cli -c -p 7000
127.0.0.1:7000> set firstname Angel
-> Redirected to slot [7108] located at 127.0.0.1:7001
OK
127.0.0.1:7001> set lastname Cool
OK
127.0.0.1:7001>exit
[acool@localhost valkey-cluster-demo]$
[acool@localhost valkey-cluster-demo]$ # Retrive some keys
[acool@localhost valkey-cluster-demo]$ valkey-cli -c -p 7005
127.0.0.1:7005> get lastname
-> Redirected to slot [7726] located at 127.0.0.1:7001
"Cool"
127.0.0.1:7001> get firstname
"Angel"
127.0.0.1:7001>exit
[acool@localhost valkey-cluster-demo]$
[acool@localhost valkey-cluster-demo]$


TIP: Easy way to start all servers:
acool@acool-HP-EliteBook-8440p:~/redis-cluster$ for i in {0..5}; do  cd /home/acool/redis-cluster/700$i && /usr/bin/redis-server redis.conf --daemonize yes; done


Bonus: Pub/Sub demo

[acool@localhost valkey-cluster-demo]$ # TERMINAL 1
[acool@localhost valkey-cluster-demo]$ valkey-cli -c -p 7001
127.0.0.1:7001> SUBSCRIBE channel-a
...
[acool@localhost valkey-cluster-demo]$ # TERMINAL 2
[acool@localhost valkey-cluster-demo]$ valkey-cli -c -p 7002
127.0.0.1:7002> SUBSCRIBE channel-b
...

[acool@localhost valkey-cluster-demo]$ # TERMINAL 3
[acool@localhost valkey-cluster-demo]$ valkey-cli -c -p 7000
127.0.0.1:7000> PUBLISH channel-a "Hello channel a!"
(integer) 0
127.0.0.1:7000> PUBLISH channel-b "Hello channel b!"
(integer) 0
127.0.0.1:7000>
127.0.0.1:7000> exit
[acool@localhost valkey-cluster-demo]$ # Monitor output in TERMINAL 1 and 2


Comments
Comments are not available for this entry.
2024 By Angel Cool