Discussion of implementing missing (and undocumented) Redis Cluster commands

107 views
Skip to first unread message

임정택

unread,
Mar 6, 2014, 5:42:51 PM3/6/14
to jedis...@googlegroups.com

Objective : I'd love to discuss with us what Redis Cluster commands (including undocumented) would we choose and implement.


This is recent Redis unstable (9b40181) cluster commands and availability to Jedis.

First, recent Jedis supports these cluster commands. (Amazing Job Jonathan and Marcos!)

  • CLUSTER MEET
  • CLUSTER NODES
  • CLUSTER ADDSLOTS [slot]
  • CLUSTER DELSLOTS [slot]
  • CLUSTER SETSLOT MIGRATING
  • CLUSTER SETSLOT IMPORTING
  • CLUSTER SETSLOT NODE
  • CLUSTER INFO
  • CLUSTER GETKEYSINSLOT

And, recent Jedis Cluster doesn't support these cluster commands.
(Most of all are undocumented, but actually all cluster commands are undocumented in point of view tohttp://redis.io/commands.)

  • CLUSTER FLUSHSLOTS
  • CLUSTER SETSLOT STABLE
  • CLUSTER SAVECONFIG
  • CLUSTER KEYSLOT
  • CLUSTER COUNTKEYSINSLOT
  • CLUSTER FORGET
  • CLUSTER REPLICATE
  • CLUSTER SLAVES
  • CLUSTER FAILOVER

If we would like to make user implement anything, we would try to provide cluster commands as many as possible.
But we would like to restrict cluster commands, we may need to decide what commands will be supported to Jedis.
(For example, informational / operational / etc?)

Btw, I would like to implement these commands because it could help somethings.

  • FLUSHSLOTS : JedisClusterTest.tearDown() will be simplificated.
  • REPLICATE : It's mandatory if we decide to open possibilities to setup cluster with Master/Slave.
  • SLAVES : It would be good to use from unit test with REPLICATE.
  • FAILOVER : It would be good to use from unit test with REPLICATE. Maybe JedisCluster failover test can be simpler if this command works perfectly (similar to JedisSentinelTest)

Please share your thought to moving on next!
Thanks!

Sincerely.

Jungtaek Lim (HeartSaVioR)

Jonathan Leibiusky

unread,
Mar 6, 2014, 5:59:51 PM3/6/14
to jedis...@googlegroups.com
I think we should implements all the commands available to redis. Jedis is a redis client. It shouldn't prevent you from running any command.

The rule of thumb is: "if you can do it with redis-cli, you should be able to do it with jedis" :)


--
You received this message because you are subscribed to the Google Groups "Jedis" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jedis_redis...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

임정택

unread,
Mar 7, 2014, 5:28:37 AM3/7/14
to jedis...@googlegroups.com
Hello!

I agree your opinion, and I'm ready to respect rule of thumb. ;)

The only thing I'm afraid of is Redis Cluster is beta state, so Salvatore(@antirez) could change undocumented commands without being notified.
Would I ask @antirez to check current commands' stabilities?

Thanks for sharing your opinion, and thank again to your effort!

Sincerely.
Jungtaek Lim (HeartSaVioR)


2014년 3월 7일 금요일 오전 7시 59분 51초 UTC+9, Jonathan L. 님의 말:

임정택

unread,
Mar 11, 2014, 4:53:53 AM3/11/14
to jedis...@googlegroups.com
I finished implementing commands!

Please see https://github.com/xetorthio/jedis/pull/581 and comment if somethings are wrong or have suggestions.

Thanks!

Sincerely.
Jungtaek Lim (HeartSaVioR)

2014년 3월 7일 금요일 오후 7시 28분 37초 UTC+9, 임정택 님의 말:
Reply all
Reply to author
Forward
0 new messages