FAQ
Hi all!

As per http://redis.io/topics/cluster-spec, "Redis Cluster implements all
the single keys commands available in the non distributed version of Redis.
Commands performing complex multi key operations *like Set type unions or
intersections are not implemented*, and in general all the operations where
in theory keys are not available in the same node are not implemented."

However, I understand that it **will** in fact be possible to ensure that
certain keys are located on the same node, as per http://goo.gl/nfaY3P.

So my question: *is* it accurate to say that Cluster will not support set
ops even **when** all set keys are located on the same node? Why would that
be the case? What about running a Lua script against a Cluster node, given
set keys all located on that node?

Thanks a bunch for any assistance, cheers!

- Peter Taoussanis

--
You received this message because you are subscribed to the Google Groups "Redis DB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.
To post to this group, send email to redis-db@googlegroups.com.
Visit this group at http://groups.google.com/group/redis-db.
For more options, visit https://groups.google.com/groups/opt_out.

Search Discussions

  • Peter Taoussanis at Oct 12, 2013 at 6:44 am
    Bumping - anyone have any info on this? Salvatore?

    Thanks!

    --
    You received this message because you are subscribed to the Google Groups "Redis DB" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.
    To post to this group, send email to redis-db@googlegroups.com.
    Visit this group at http://groups.google.com/group/redis-db.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Josiah Carlson at Oct 13, 2013 at 7:43 am
    "all the operations where in theory keys are not available in the same node
    are not implemented"

    I might read that to mean, "If keys *might not* be on the same node for an
    operation to complete, we don't implement the operation in Redis Cluster."

    This would suggest that set/sorted set union, intersection, difference are
    out. So is list RPOPLPUSH, SORT with the "BY" and/or "GET" clauses, and
    perhaps others. I said before, and I'll say it again: assume the most
    strict interpretation of the rules, and if they are relaxed, that's a win.

    Whether or not Lua scripting is involved, you will still be able to use
    sets, you just may not be able to intersect, union, or difference them.
    That said, you can always check the source code to determine if the
    limitation on set operations has already been implemented, and if so, what
    those limitations are.

      - Josiah


    On Fri, Oct 11, 2013 at 11:44 PM, Peter Taoussanis wrote:

    Bumping - anyone have any info on this? Salvatore?

    Thanks!

    --
    You received this message because you are subscribed to the Google Groups
    "Redis DB" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to redis-db+unsubscribe@googlegroups.com.
    To post to this group, send email to redis-db@googlegroups.com.
    Visit this group at http://groups.google.com/group/redis-db.
    For more options, visit https://groups.google.com/groups/opt_out.
    --
    You received this message because you are subscribed to the Google Groups "Redis DB" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.
    To post to this group, send email to redis-db@googlegroups.com.
    Visit this group at http://groups.google.com/group/redis-db.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Peter Taoussanis at Oct 13, 2013 at 12:07 pm
    Hi Josiah, thanks for the reply.

    I might read that to mean, "If keys *might not* be on the same node for an
    operation to complete, we don't implement the operation in Redis Cluster."
    That seems to be the implication, but if so the rationale behind it is
    unclear to me and something that I'd like to understand better. Can you
    think of a reason why it wouldn't make sense, say, to have a rule like:
    "Commands performing complex multi key operations like Set type unions or
    intersections are permitted *only when all relevant keys are explicitly
    located on the same node as per [1]*".

    If one or more keys are provided without an explicit `{}` pattern, or a
    pattern that hashes inappropriately - the server could return an error
    stating as much. It seems to me that it'd be easy for the server to make
    this determination w/o an impact to performance or complexity.

    Reasons I'm bringing this up now:
    * The cluster design is still in flux, so seems as good a time as any.
    * Couldn't find any discussion on this group or elsewhere taking [1] into
    consideration.
    * Sensible multi-key ops in cluster would be a big win IMO, and [1] seems
    to provide a simple, robust soln without any apparent (?) cost.
    * If I'm missing something obvious, I'd prefer to be educated since my
    misunderstanding here may have implications elsewhere.

    Cheers! :-)

    [1] https://groups.google.com/d/msg/redis-db/K-a_HF9e5yg/TZMqXBajdt4J

    --
    You received this message because you are subscribed to the Google Groups "Redis DB" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to redis-db+unsubscribe@googlegroups.com.
    To post to this group, send email to redis-db@googlegroups.com.
    Visit this group at http://groups.google.com/group/redis-db.
    For more options, visit https://groups.google.com/groups/opt_out.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupredis-db @
categoriesredis
postedOct 8, '13 at 6:50a
activeOct 13, '13 at 12:07p
posts4
users2
websiteredis.io
irc#redis

People

Translate

site design / logo © 2022 Grokbase