Redis Cluster - Part 3
Using Redis-CLI with a Redis Cluster
When you use redis-cli
to connect to a shard of a Redis Cluster, you are connected to that shard only, and cannot access data from other shards. If you try to access keys from the wrong shard, you will get a MOVED
error.
Let's say we have a key "a" on one of the redis cluster nodes
redis-cli -p 7002
127.0.0.1:7002> keys *
1) "a"
And we connect to some other redis cluster nodes, and try to access that key
redis-cli -p 7000
127.0.0.1:7000> keys *
(empty array)
127.0.0.1:7000>
127.0.0.1:7000> get a
(error) MOVED 15495 127.0.0.1:7002
There is a trick you can use with redis-cli
so you don’t have to open connections to all the shards, but instead you let it do the connect and reconnect work for you. It’s the redis-cli
cluster support mode, triggered by the -c
switch:
redis-cli -c -p 7000
127.0.0.1:7000> keys *
(empty array)
127.0.0.1:7000> get a
-> Redirected to slot [15495] located at 127.0.0.1:7002
"b"
127.0.0.1:7002>
Examples of clients that support Redis cluster:
- Java: Jedis, Lettuce
Some references:
Redis cluster specification | Redis
Redis Cluster: Architecture, Replication, Sharding and Failover
If you liked this blog, you can follow me on twitter, and learn something new with me.
Subscribe to my newsletter
Read articles from Nitin Kalra directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Nitin Kalra
Nitin Kalra
Working as a Principal Software Engineer. I have experience working on Java, Spring Boot, Go, Android Framework, OS, Shell scripting, and AWS. Experienced in creating scalable and highly available systems.