1. 08 May, 2013 1 commit
  2. 23 Apr, 2013 1 commit
    • antirez's avatar
      Test: fix RDB test checking file permissions. · e426ea52
      antirez authored
      When the test is executed using the root account, setting the permission
      to 222 does not work as expected, as root can read files with 222
      permission.
      
      Now we skip the test if root is detected.
      
      This fixes issue #1034 and the duplicated #1040 issue.
      
      Thanks to Jan-Erik Rediger (@badboy on Github) for finding a way to reproduce the issue.
      e426ea52
  3. 22 Apr, 2013 1 commit
  4. 04 Apr, 2013 1 commit
  5. 28 Mar, 2013 3 commits
  6. 27 Mar, 2013 3 commits
  7. 25 Mar, 2013 1 commit
  8. 13 Mar, 2013 3 commits
  9. 12 Feb, 2013 2 commits
  10. 05 Feb, 2013 3 commits
  11. 28 Jan, 2013 4 commits
  12. 21 Jan, 2013 1 commit
    • antirez's avatar
      UNSUBSCRIBE and PUNSUBSCRIBE: always provide a reply. · 3ff75e58
      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.
      3ff75e58
  13. 19 Jan, 2013 2 commits
    • antirez's avatar
      Slowlog: don't log EXEC but just the executed commands. · d766907c
      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.
      d766907c
    • guiquanz's avatar
      Fixed many typos. · 1caf0939
      guiquanz authored
      Conflicts fixed, mainly because 2.8 has no cluster support / files:
      	00-RELEASENOTES
      	src/cluster.c
      	src/crc16.c
      	src/redis-trib.rb
      	src/redis.h
      1caf0939
  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. · e3973521
      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.
      e3973521
  17. 02 Dec, 2012 1 commit
  18. 30 Nov, 2012 2 commits
    • antirez's avatar
      SDIFF fuzz test added. · c1eda786
      antirez authored
      c1eda786
    • antirez's avatar
      SDIFF is now able to select between two algorithms for speed. · ccc974d9
      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.
      ccc974d9
  19. 29 Nov, 2012 1 commit
  20. 22 Nov, 2012 4 commits
  21. 12 Nov, 2012 1 commit
    • antirez's avatar
      TTL API change: TTL returns -2 for non existing keys. · 50c41de7
      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.
      50c41de7
  22. 06 Nov, 2012 1 commit
    • antirez's avatar
      Type mismatch errors are now prefixed with WRONGTYPE. · 46c5d396
      antirez authored
      So instead to reply with a generic error like:
      
      -ERR ... wrong kind of value ...
      
      now it replies with:
      
      -WRONGTYPE ... wrong kind of value ...
      
      This makes this particular error easy to check without resorting to
      (fragile) pattern matching of the error string (however the error string
      used to be consistent already).
      
      Client libraries should return a specific exeption type for this error.
      
      Most of the commit is about fixing unit tests.
      46c5d396
  23. 31 Oct, 2012 1 commit