1. 11 Mar, 2014 3 commits
    • zhanghailei's avatar
      0abe98cb
    • Matt Stancliff's avatar
      Cluster: error out quicker if port is unusable · a0ea8f23
      Matt Stancliff authored
      The default cluster control port is 10,000 ports higher than
      the base Redis port.  If Redis is started on a too-high port,
      Cluster can't start and everything will exit later anyway.
      a0ea8f23
    • Matt Stancliff's avatar
      Fix "can't bind to address" error reporting. · 6f4b5ef6
      Matt Stancliff authored
      Report the actual port used for the listening attempt instead of
      server.port.
      
      Originally, Redis would just listen on server.port.
      But, with clustering, Redis uses a Cluster Port too,
      so we can't say server.port is always where we are listening.
      
      If you tried to launch Redis with a too-high port number (any
      port where Port+10000 > 65535), Redis would refuse to start, but
      only print an error saying it can't connect to the Redis port.
      
      This patch fixes much confusions.
      6f4b5ef6
  2. 05 Mar, 2014 17 commits
  3. 28 Feb, 2014 1 commit
  4. 27 Feb, 2014 9 commits
    • antirez's avatar
      BITPOS fuzzy testing. · 32db37c3
      antirez authored
      32db37c3
    • antirez's avatar
      Basic BITPOS tests. · 1d62f833
      antirez authored
      1d62f833
    • antirez's avatar
      warnigns -> warnings in redisBitpos(). · 9104f1e6
      antirez authored
      9104f1e6
    • antirez's avatar
      More consistent BITPOS behavior with bit=0 and ranges. · eacc0951
      antirez authored
      With the new behavior it is possible to specify just the start in the
      range (the end will be assumed to be the first byte), or it is possible
      to specify both start and end.
      
      This is useful to change the behavior of the command when looking for
      zeros inside a string.
      
      1) If the user specifies both start and end, and no 0 is found inside
         the range, the command returns -1.
      
      2) If instead no range is specified, or just the start is given, even
         if in the actual string no 0 bit is found, the command returns the
         first bit on the right after the end of the string.
      
      So for example if the string stored at key foo is "\xff\xff":
      
          BITPOS foo (returns 16)
          BITPOS foo 0 -1 (returns -1)
          BITPOS foo 0 (returns 16)
      
      The idea is that when no end is given the user is just looking for the
      first bit that is zero and can be set to 1 with SETBIT, as it is
      "available". Instead when a specific range is given, we just look for a
      zero within the boundaries of the range.
      eacc0951
    • antirez's avatar
      Initial implementation of BITPOS. · 1f8005ca
      antirez authored
      It appears to work but more stress testing, and both unit tests and
      fuzzy testing, is needed in order to ensure the implementation is sane.
      1f8005ca
    • antirez's avatar
      cbeaf173
    • antirez's avatar
      BITCOUNT fuzzy test with random start/end added. · 9c206cc8
      antirez authored
      It was verified in practice that this test is able to stress much more
      the implementation by introducing errors that were only trivially to
      detect with different offsets but impossible to detect starting always
      at zero and counting bits the full length of the string.
      9c206cc8
    • antirez's avatar
      Fix misaligned word access in redisPopcount(). · 24265edb
      antirez authored
      24265edb
    • Matt Stancliff's avatar
      7e274194
  5. 25 Feb, 2014 10 commits