1. 22 Apr, 2013 1 commit
  2. 04 Apr, 2013 1 commit
  3. 28 Mar, 2013 3 commits
  4. 27 Mar, 2013 3 commits
  5. 25 Mar, 2013 1 commit
  6. 13 Mar, 2013 2 commits
  7. 12 Mar, 2013 1 commit
  8. 12 Feb, 2013 2 commits
  9. 05 Feb, 2013 1 commit
  10. 28 Jan, 2013 4 commits
  11. 23 Jan, 2013 2 commits
  12. 21 Jan, 2013 1 commit
    • antirez's avatar
      UNSUBSCRIBE and PUNSUBSCRIBE: always provide a reply. · 2039f1a3
      antirez authored
      UNSUBSCRIBE and PUNSUBSCRIBE commands are designed to mass-unsubscribe
      the client respectively all the channels and patters if called without
      arguments.
      
      However when these functions are called without arguments, but there are
      no channels or patters we are subscribed to, the old behavior was to
      don't reply at all.
      
      This behavior is broken, as every command should always reply.
      Also it is possible that we are no longer subscribed to a channels but we
      are subscribed to patters or the other way around, and the client should
      be notified with the correct number of subscriptions.
      
      Also it is not pretty that sometimes we did not receive a reply at all
      in a redis-cli session from these commands, blocking redis-cli trying
      to read the reply.
      
      This fixes issue #714.
      2039f1a3
  13. 19 Jan, 2013 2 commits
    • antirez's avatar
      Slowlog: don't log EXEC but just the executed commands. · 08d200ba
      antirez authored
      The Redis Slow Log always used to log the slow commands executed inside
      a MULTI/EXEC block. However also EXEC was logged at the end, which is
      perfectly useless.
      
      Now EXEC is no longer logged and a test was added to test this behavior.
      
      This fixes issue #759.
      08d200ba
    • guiquanz's avatar
      Fixed many typos. · 9d09ce39
      guiquanz authored
      9d09ce39
  14. 15 Jan, 2013 1 commit
  15. 10 Jan, 2013 1 commit
  16. 03 Dec, 2012 1 commit
    • antirez's avatar
      Test: fixed osx "leaks" support in test. · a18ca736
      antirez authored
      Due to changes in recent releases of osx leaks utility, the osx leak
      detection no longer worked. Now it is fixed in a way that should be
      backward compatible.
      a18ca736
  17. 02 Dec, 2012 1 commit
  18. 30 Nov, 2012 2 commits
    • antirez's avatar
      SDIFF is now able to select between two algorithms for speed. · f50e6584
      antirez authored
      SDIFF used an algorithm that was O(N) where N is the total number
      of elements of all the sets involved in the operation.
      
      The algorithm worked like that:
      
      ALGORITHM 1:
      
      1) For the first set, add all the members to an auxiliary set.
      2) For all the other sets, remove all the members of the set from the
      auxiliary set.
      
      So it is an O(N) algorithm where N is the total number of elements in
      all the sets involved in the diff operation.
      
      Cristobal Viedma suggested to modify the algorithm to the following:
      
      ALGORITHM 2:
      
      1) Iterate all the elements of the first set.
      2) For every element, check if the element also exists in all the other
      remaining sets.
      3) Add the element to the auxiliary set only if it does not exist in any
      of the other sets.
      
      The complexity of this algorithm on the worst case is O(N*M) where N is
      the size of the first set and M the total number of sets involved in the
      operation.
      
      However when there are elements in common, with this algorithm we stop
      the computation for a given element as long as we find a duplicated
      element into another set.
      
      I (antirez) added an additional step to algorithm 2 to make it faster,
      that is to sort the set to subtract from the biggest to the
      smallest, so that it is more likely to find a duplicate in a larger sets
      that are checked before the smaller ones.
      
      WHAT IS BETTER?
      
      None of course, for instance if the first set is much larger than the
      other sets the second algorithm does a lot more work compared to the
      first algorithm.
      
      Similarly if the first set is much smaller than the other sets, the
      original algorithm will less work.
      
      So this commit makes Redis able to guess the number of operations
      required by each algorithm, and select the best at runtime according
      to the input received.
      
      However, since the second algorithm has better constant times and can do
      less work if there are duplicated elements, an advantage is given to the
      second algorithm.
      f50e6584
    • antirez's avatar
      SDIFF fuzz test added. · 395d663d
      antirez authored
      395d663d
  19. 29 Nov, 2012 1 commit
  20. 22 Nov, 2012 4 commits
  21. 14 Nov, 2012 2 commits
  22. 12 Nov, 2012 1 commit
    • antirez's avatar
      TTL API change: TTL returns -2 for non existing keys. · aa2bf6ba
      antirez authored
      The previous behavior was to return -1 if:
      
      1) Existing key but without an expire set.
      2) Non existing key.
      
      Now the second case is handled in a different, and TTL will return -2
      if the key does not exist at all.
      
      PTTL follows the same behavior as well.
      aa2bf6ba
  23. 07 Nov, 2012 2 commits
    • antirez's avatar
      COPY and REPLACE options for MIGRATE. · 1237d71c
      antirez authored
      With COPY now MIGRATE does not remove the key from the source instance.
      With REPLACE it uses RESTORE REPLACE on the target host so that even if
      the key already eixsts in the target instance it will be overwritten.
      
      The options can be used together.
      1237d71c
    • antirez's avatar
      REPLACE option for RESTORE. · e5b5763f
      antirez authored
      The REPLACE option deletes an existing key with the same name (if any)
      and materializes the new one. The default behavior without RESTORE is to
      return an error if a key already exists.
      e5b5763f