1. 20 Dec, 2016 2 commits
    • antirez's avatar
      Geo: fix GEOHASH return value for consistency. · 0f722570
      antirez authored
      The same thing observed in #3551 by gnethercutt also fixed for
      GEOHASH as the original PR did.
      0f722570
    • antirez's avatar
      Geo: fix edge case return values for uniformity. · 913070a9
      antirez authored
      There were two cases outlined in issue #3512 and PR #3551 where
      the Geo API returned unexpected results: empty strings where NULL
      replies were expected, or a single null reply where an array was
      expected. This violates the Redis principle that Redis replies for
      existing keys or elements should be indistinguishable.
      
      This is technically an API breakage so will be merged only into 4.0 and
      specified in the changelog in the list of breaking compatibilities, even
      if it is not very likely that actual code will be affected, hopefully,
      since with the past behavior basically there was to acconut for *both*
      the possibilities, and the new behavior is always one of the two, but
      in a consistent way.
      913070a9
  2. 19 Dec, 2016 7 commits
  3. 16 Dec, 2016 10 commits
  4. 14 Dec, 2016 3 commits
  5. 13 Dec, 2016 5 commits
    • antirez's avatar
      Writable slaves expires: unit test. · dee11eba
      antirez authored
      dee11eba
    • antirez's avatar
      Writable slaves expires: fix leak in key tracking. · b6f871cf
      antirez authored
      We need to use a dictionary type that frees the key, since we copy the
      keys in the dictionary we use to track expires created in the slave
      side.
      b6f871cf
    • antirez's avatar
      INFO: show num of slave-expires keys tracked. · d1adc85a
      antirez authored
      d1adc85a
    • antirez's avatar
      Fix created->created typo in expire.c · 5b9ba264
      antirez authored
      5b9ba264
    • antirez's avatar
      Replication: fix the infamous key leakage of writable slaves + EXPIRE. · 04542cff
      antirez authored
      BACKGROUND AND USE CASEj
      
      Redis slaves are normally write only, however the supprot a "writable"
      mode which is very handy when scaling reads on slaves, that actually
      need write operations in order to access data. For instance imagine
      having slaves replicating certain Sets keys from the master. When
      accessing the data on the slave, we want to peform intersections between
      such Sets values. However we don't want to intersect each time: to cache
      the intersection for some time often is a good idea.
      
      To do so, it is possible to setup a slave as a writable slave, and
      perform the intersection on the slave side, perhaps setting a TTL on the
      resulting key so that it will expire after some time.
      
      THE BUG
      
      Problem: in order to have a consistent replication, expiring of keys in
      Redis replication is up to the master, that synthesize DEL operations to
      send in the replication stream. However slaves logically expire keys
      by hiding them from read attemp...
      04542cff
  6. 12 Dec, 2016 2 commits
  7. 08 Dec, 2016 1 commit
    • Jan-Erik Rediger's avatar
      Reset the ttl for additional keys · 2a32f037
      Jan-Erik Rediger authored
      Before, if a previous key had a TTL set but the current one didn't, the
      TTL was reused and thus resulted in wrong expirations set.
      
      This behaviour was experienced, when `MigrateDefaultPipeline` in
      redis-trib was set to >1
      
      Fixes #3655
      2a32f037
  8. 06 Dec, 2016 2 commits
  9. 05 Dec, 2016 6 commits
  10. 02 Dec, 2016 1 commit
  11. 01 Dec, 2016 1 commit