1. 21 Jun, 2013 1 commit
    • antirez's avatar
      New API to force propagation. · 515a26bb
      antirez authored
      The old REDIS_CMD_FORCE_REPLICATION flag was removed from the
      implementation of Redis, now there is a new API to force specific
      executions of a command to be propagated to AOF / Replication link:
      
          void forceCommandPropagation(int flags);
      
      The new API is also compatible with Lua scripting, so a script that will
      execute commands that are forced to be propagated, will also be
      propagated itself accordingly even if no change to data is operated.
      
      As a side effect, this new design fixes the issue with scripts not able
      to propagate PUBLISH to slaves (issue #873).
      515a26bb
  2. 20 Jun, 2013 1 commit
    • antirez's avatar
      PUBSUB command implemented. · 455563fa
      antirez authored
      Currently it implements three subcommands:
      
      PUBSUB CHANNELS [<pattern>]    List channels with non-zero subscribers.
      PUBSUB NUMSUB [channel_1 ...]  List number of subscribers for channels.
      PUBSUB NUMPAT                  Return number of subscribed patterns.
      455563fa
  3. 30 May, 2013 3 commits
  4. 29 May, 2013 2 commits
  5. 28 May, 2013 1 commit
  6. 27 May, 2013 2 commits
  7. 15 May, 2013 1 commit
    • antirez's avatar
      Added a define for most configuration defaults. · 310dbba0
      antirez authored
      Also the logfile option was modified to always have an explicit value
      and to log to stdout when an empty string is used as log file.
      
      Previously there was special handling of the string "stdout" that set
      the logfile to NULL, this always required some special handling.
      310dbba0
  8. 13 May, 2013 2 commits
  9. 09 May, 2013 1 commit
  10. 24 Apr, 2013 1 commit
  11. 19 Apr, 2013 1 commit
  12. 04 Apr, 2013 1 commit
  13. 02 Apr, 2013 1 commit
    • antirez's avatar
      Throttle BGSAVE attempt on saving error. · b237de33
      antirez authored
      When a BGSAVE fails, Redis used to flood itself trying to BGSAVE at
      every next cron call, that is either 10 or 100 times per second
      depending on configuration and server version.
      
      This commit does not allow a new automatic BGSAVE attempt to be
      performed before a few seconds delay (currently 5).
      
      This avoids both the auto-flood problem and filling the disk with
      logs at a serious rate.
      
      The five seconds limit, considering a log entry of 200 bytes, will use
      less than 4 MB of disk space per day that is reasonable, the sysadmin
      should notice before of catastrofic events especially since by default
      Redis will stop serving write queries after the first failed BGSAVE.
      
      This fixes issue #849
      b237de33
  14. 28 Mar, 2013 1 commit
  15. 27 Mar, 2013 1 commit
    • antirez's avatar
      DEBUG set-active-expire added. · 32a83c82
      antirez authored
      We need the ability to disable the activeExpireCycle() (active
      expired key collection) call for testing purposes.
      32a83c82
  16. 26 Mar, 2013 2 commits
  17. 13 Mar, 2013 1 commit
  18. 12 Mar, 2013 2 commits
  19. 11 Mar, 2013 3 commits
    • antirez's avatar
      activeExpireCycle() smarter with many DBs and under expire pressure. · 2d851333
      antirez authored
      activeExpireCycle() tries to test just a few DBs per iteration so that
      it scales if there are many configured DBs in the Redis instance.
      However this commit makes it a bit smarter when one a few of those DBs
      are under expiration pressure and there are many many keys to expire.
      
      What we do is to remember if in the last iteration had to return because
      we ran out of time. In that case the next iteration we'll test all the
      configured DBs so that we are sure we'll test again the DB under
      pressure.
      
      Before of this commit after some mass-expire in a given DB the function
      tested just a few of the next DBs, possibly empty, a few per iteration,
      so it took a long time for the function to reach again the DB under
      pressure. This resulted in a lot of memory being used by already expired
      keys and never accessed by clients.
      2d851333
    • antirez's avatar
      08b107e4
    • antirez's avatar
      4b1ccdfd
  20. 09 Mar, 2013 2 commits
  21. 08 Mar, 2013 5 commits
  22. 06 Mar, 2013 2 commits
    • antirez's avatar
      API to lookup commands with their original name. · 7b190a08
      antirez authored
      A new server.orig_commands table was added to the server structure, this
      contains a copy of the commant table unaffected by rename-command
      statements in redis.conf.
      
      A new API lookupCommandOrOriginal() was added that checks both tables,
      new first, old later, so that rewriteClientCommandVector() and friends
      can lookup commands with their new or original name in order to fix the
      client->cmd pointer when the argument vector is renamed.
      
      This fixes the segfault of issue #986, but does not fix a wider range of
      problems resulting from renaming commands that actually operate on data
      and are registered into the AOF file or propagated to slaves... That is
      command renaming should be handled with care.
      7b190a08
    • antirez's avatar
      Allow AUTH while loading the DB in memory. · 304ef5e2
      antirez authored
      While Redis is loading the AOF or RDB file in memory only a subset of
      commands are allowed. This commit adds AUTH to this subset.
      304ef5e2
  23. 05 Mar, 2013 1 commit
  24. 27 Feb, 2013 2 commits