1. 17 Sep, 2014 1 commit
  2. 08 Sep, 2014 1 commit
  3. 04 Sep, 2014 1 commit
    • antirez's avatar
      Sentinel: announce ip/port changes + rewrite. · cd576a1a
      antirez authored
      The original implementation was modified in order to allow to
      selectively announce a different IP or port, and to rewrite the two
      options in the config file after a rewrite.
      cd576a1a
  4. 13 Aug, 2014 1 commit
  5. 08 Aug, 2014 1 commit
  6. 02 Jul, 2014 1 commit
  7. 26 Jun, 2014 1 commit
  8. 16 Jun, 2014 1 commit
    • antirez's avatar
      Client types generalized. · 56d26c23
      antirez authored
      Because of output buffer limits Redis internals had this idea of type of
      clients: normal, pubsub, slave. It is possible to set different output
      buffer limits for the three kinds of clients.
      
      However all the macros and API were named after output buffer limit
      classes, while the idea of a client type is a generic one that can be
      reused.
      
      This commit does two things:
      
      1) Rename the API and defines with more general names.
      2) Change the class of clients executing the MONITOR command from "slave"
         to "normal".
      
      "2" is a good idea because you want to have very special settings for
      slaves, that are not a good idea for MONITOR clients that are instead
      normal clients even if they are conceptually slave-alike (since it is a
      push protocol).
      
      The backward-compatibility breakage resulting from "2" is considered to
      be minimal to care, since MONITOR is a debugging command, and because
      anyway this change is not going to break the format or the behavior, but
      just when a connection is closed on big output buffer issues.
      56d26c23
  9. 22 May, 2014 1 commit
  10. 15 Apr, 2014 1 commit
  11. 24 Mar, 2014 1 commit
    • Matt Stancliff's avatar
      Fix maxclients error handling · c138631c
      Matt Stancliff authored
      Everywhere in the Redis code base, maxclients is treated
      as an int with (int)maxclients or `maxclients = atoi(source)`,
      so let's make maxclients an int.
      
      This fixes a bug where someone could specify a negative maxclients
      on startup and it would work (as well as set maxclients very high)
      because:
      
          unsigned int maxclients;
          char *update = "-300";
          maxclients = atoi(update);
          if (maxclients < 1) goto fail;
      
      But, (maxclients < 1) can only catch the case when maxclients
      is exactly 0.  maxclients happily sets itself to -300, which isn't
      -300, but rather 4294966996, which isn't < 1, so... everything
      "worked."
      
      maxclients config parsing checks for the case of < 1, but maxclients
      CONFIG SET parsing was checking for case of < 0 (allowing
      maxclients to be set to 0).  CONFIG SET parsing is now updated to
      match config parsing of < 1.
      
      It's tempting to add a MINIMUM_CLIENTS define, but... I didn't.
      
      These changes were inspired by antirez#356, but this doesn't
      fix that issue.
      c138631c
  12. 19 Mar, 2014 1 commit
  13. 06 Mar, 2014 1 commit
  14. 05 Mar, 2014 1 commit
  15. 04 Mar, 2014 1 commit
  16. 13 Feb, 2014 1 commit
  17. 31 Jan, 2014 3 commits
  18. 20 Jan, 2014 2 commits
  19. 23 Dec, 2013 1 commit
    • antirez's avatar
      Fix CONFIG REWRITE handling of unknown options. · e7893842
      antirez authored
      There were two problems with the implementation.
      
      1) "save" was not correctly processed when no save point was configured,
         as reported in issue #1416.
      2) The way the code checked if an option existed in the "processed"
         dictionary was wrong, as we add the element with as a key associated
         with a NULL value, so dictFetchValue() can't be used to check for
         existance, but dictFind() must be used, that returns NULL only if the
         entry does not exist at all.
      e7893842
  20. 19 Dec, 2013 4 commits
  21. 19 Nov, 2013 2 commits
    • antirez's avatar
      CONFIG REWRITE: don't add the signature if it already exists. · b1f5a0b3
      antirez authored
      At the end of the file, CONFIG REWRITE adds a comment line that:
      
          # Generated by CONFIG REWRITE
      
      Followed by the additional config options required. However this was
      added again and again at every rewrite in praticular conditions (when a
      given set of options change in a given time during the time).
      
      Now if it was alrady encountered, it is not added a second time.
      
      This is especially important for Sentinel that rewrites the config at
      every state change.
      b1f5a0b3
    • antirez's avatar
      5998769c
  22. 18 Nov, 2013 1 commit
  23. 09 Oct, 2013 2 commits
  24. 04 Oct, 2013 1 commit
  25. 30 Sep, 2013 1 commit
  26. 22 Jul, 2013 1 commit
    • antirez's avatar
      Introduction of a new string encoding: EMBSTR · 894eba07
      antirez authored
      Previously two string encodings were used for string objects:
      
      1) REDIS_ENCODING_RAW: a string object with obj->ptr pointing to an sds
      stirng.
      
      2) REDIS_ENCODING_INT: a string object where the obj->ptr void pointer
      is casted to a long.
      
      This commit introduces a experimental new encoding called
      REDIS_ENCODING_EMBSTR that implements an object represented by an sds
      string that is not modifiable but allocated in the same memory chunk as
      the robj structure itself.
      
      The chunk looks like the following:
      
      +--------------+-----------+------------+--------+----+
      | robj data... | robj->ptr | sds header | string | \0 |
      +--------------+-----+-----+------------+--------+----+
                           |                       ^
                           +-----------------------+
      
      The robj->ptr points to the contiguous sds string data, so the object
      can be manipulated with the same functions used to manipulate plan
      string objects, however we need just on malloc and one free in order to
      allocate or release this kind of objects. Moreover it has better cache
      locality.
      
      This new allocation strategy should benefit both the memory usage and
      the performances. A performance gain between 60 and 70% was observed
      during micro-benchmarks, however there is more work to do to evaluate
      the performance impact and the memory usage behavior.
      894eba07
  27. 04 Jul, 2013 1 commit
  28. 02 Jul, 2013 1 commit
  29. 28 Jun, 2013 1 commit
  30. 20 Jun, 2013 1 commit
  31. 31 May, 2013 1 commit
  32. 30 May, 2013 1 commit