Commits on May 23, 2012
  1. Redis 2.4.14

    committed May 23, 2012
  2. Fixed issue #516 (ZINTERSTORE mixing sets and zsets).

    Weeks ago trying to fix an harmless GCC warning I introduced a bug in
    the ziplist-encoded implementations of sorted sets.
    The bug completely broke zuiNext() iterator, that is used in the
    ZINTERSTORE and ZUNIONSTORE implementation, so those two commands are no
    longer reliable starting from Redis version 2.4.12 and latest 2.6.0-RC
    This commit fixes the problem and adds a regression test.
    committed May 23, 2012
Commits on May 12, 2012
  1. Add an implementation of mstime() to 2.4.

    Commit 9419eb0 back ported a better expired keys collection algorithm
    that is more incremental but for it to compile and work we need an
    implementation of the mstime() function that was missing in 2.4.
    committed May 12, 2012
  2. redis-cli pipe mode: handle EINTR properly as well so that SIGSTOP/SI…

    …GCONT are handled correctly.
    committed May 11, 2012
  3. If the computer running the Redis test is slow, we revert to --client…

    …s 1 to avoid false positives.
    committed May 11, 2012
  4. More incremental active expired keys collection process.

    If a large amonut of keys are all expiring about at the same time, the
    "active" expired keys collection cycle used to block as far as the
    percentage of already expired keys was >= 25% of the total population of
    keys with an expire set.
    This could block the server even for many seconds in order to reclaim
    memory ASAP. The new algorithm uses at max a small amount of
    milliseconds per cycle, even if this means reclaiming the memory less
    promptly it also means a more responsive server.
    committed May 11, 2012
Commits on May 11, 2012
Commits on May 9, 2012
  1. Fix PREFIX typo in Makefile.

    committed May 9, 2012
Commits on May 2, 2012
  1. Redis 2.4.13

    committed May 2, 2012
Commits on May 1, 2012
  1. Use safe dictionary iterator from KEYS

    Every matched key in a KEYS call is checked for expiration. When the key
    is set to expire, the call to `getExpire` will assert that the key also
    exists in the main dictionary. This in turn causes a rehashing step to
    be executed. Rehashing a dictionary when there is an iterator active may
    result in the iterator emitting duplicate entries, or not emitting some
    entries at all. By using a safe iterator, the rehash step is omitted.
    pietern committed with Apr 30, 2012
Commits on Apr 30, 2012
  1. Redis 2.4.12

    committed Apr 30, 2012
  2. Redis test: More reliable BRPOPLPUSH replication test.

    Now it uses the new wait_for_condition testing primitive.
    Also wait_for_condition implementation was fixed in this commit to properly
    escape the expr command and its argument.
    committed Apr 26, 2012
Commits on Apr 29, 2012
Commits on Apr 21, 2012
  1. Limit memory used by big SLOWLOG entries.

    Two limits are added:
    1) Up to SLOWLOG_ENTRY_MAX_ARGV arguments are logged.
    2) Up to SLOWLOG_ENTRY_MAX_STRING bytes per argument are logged.
    3) slowlog-max-len is set to 128 by default (was 1024).
    The number of remaining arguments / bytes is logged in the entry
    so that the user can understand better the nature of the logged command.
    committed Apr 21, 2012
Commits on Apr 19, 2012
  1. Redis 2.4.11

    committed Apr 19, 2012
Commits on Apr 18, 2012
  1. Marginally cleaner lookupKeyByPattern() implementation.

    just fieldobj itself as sentinel of the fact a field object is used or
    not, instead of using the filed length, that may be confusing both for
    people and for the compiler emitting a warning.
    committed Apr 18, 2012
Commits on Apr 17, 2012
  1. lookupKeyByPattern() used by SORT GET/BY rewritten. Fixes issue #460.

    lookupKeyByPattern() was implemented with a trick to speedup the lookup
    process allocating two fake Redis obejcts on the stack. However now that
    we propagate expires to the slave as DEL operations the lookup of the
    key may result into a call to expireIfNeeded() having the stack
    allocated object as argument, that may in turn use it to create the
    protocol to send to the slave. But since this fake obejcts are
    inherently read-only this is a problem.
    As a side effect of this fix there are no longer size limits in the
    pattern to be used with GET/BY option of SORT.
    See #460 for bug details.
    committed Apr 17, 2012
Commits on Apr 6, 2012
Commits on Apr 4, 2012
  1. Structure field controlling the INFO field master_link_down_since_sec…

    …onds initialized correctly to avoid strange INFO output at startup when a slave has yet to connect to its master.
    committed Apr 4, 2012
Commits on Mar 30, 2012
  1. Redis 2.4.10

    committed Mar 30, 2012
  2. Useless GCC warning suppressed.

    committed Mar 30, 2012
  3. Merge pull request #417 from josephjang/e95ca1db21b2dbe82f39a3f7f6390…

    a memory leak with replication on two or more dbs including >= db10
    committed Mar 30, 2012