1. 04 Aug, 2020 1 commit
    • Tyson Andre's avatar
      Add a ZMSCORE command returning an array of scores. (#7593) · f11f26cc
      Tyson Andre authored
      
      
      Syntax: `ZMSCORE KEY MEMBER [MEMBER ...]`
      
      This is an extension of #2359
      amended by Tyson Andre to work with the changed unstable API,
      add more tests, and consistently return an array.
      
      - It seemed as if it would be more likely to get reviewed
        after updating the implementation.
      
      Currently, multi commands or lua scripting to call zscore multiple times
      would almost definitely be less efficient than a native ZMSCORE
      for the following reasons:
      
      - Need to fetch the set from the string every time instead of reusing the C
        pointer.
      - Using pipelining or multi-commands would result in more bytes sent by
        the client for the repeated `ZMSCORE KEY` sections.
      - Need to specially encode the data and decode it from the client
        for lua-based solutions.
      - The fastest solution I've seen for large sets(thousands or millions)
        involves lua and a variadic ZADD, then a ZINTERSECT, then a ZRANGE 0 -1,
        then UNLINK of a temporary set (or lua). This is still inefficient.
      Co-authored-by: default avatarTyson Andre <tysonandre775@hotmail.com>
      f11f26cc
  2. 02 Aug, 2020 1 commit
  3. 31 Jul, 2020 2 commits
  4. 30 Jul, 2020 2 commits
  5. 29 Jul, 2020 4 commits
  6. 28 Jul, 2020 3 commits
  7. 27 Jul, 2020 1 commit
    • Yossi Gottlieb's avatar
      TLS: support cluster/replication without tls-port. · c75512d8
      Yossi Gottlieb authored
      Initialize and configure OpenSSL even when tls-port is not used, because
      we may still have tls-cluster or tls-replication.
      
      Also, make sure to reconfigure OpenSSL when these parameters are changed
      as TLS could have been enabled for the first time.
      c75512d8
  8. 26 Jul, 2020 1 commit
  9. 24 Jul, 2020 1 commit
  10. 23 Jul, 2020 2 commits
    • Meir Shpilraien (Spielrein)'s avatar
    • Oran Agra's avatar
      Fix harmless bug in rioConnRead (#7557) · 40d7fca3
      Oran Agra authored
      this code is in use only if the master is disk-based, and the replica is
      diskless. In this case we use a buffered reader, but we must avoid reading
      past the rdb file, into the command stream. which Luckly rdb.c doesn't
      really attempt to do (it knows how much it should read).
      
      When rioConnRead detects that the extra buffering attempt reaches beyond
      the read limit it should read less, but if the caller actually requested
      more, then it should return with an error rather than a short read. the
      bug would have resulted in short read.
      
      in order to fix it, the code must consider the real requested size, and
      not the extra buffering size.
      40d7fca3
  11. 22 Jul, 2020 1 commit
  12. 21 Jul, 2020 3 commits
    • WuYunlong's avatar
      Clarification on the bug that was fixed in PR #7539. (#7541) · f7f77a74
      WuYunlong authored
      Before that PR, processCommand() did not notice that cmd could be a module
      command in which case getkeys_proc member has a different meaning.
      
      The outcome was that a module command which doesn't take any key names in its
      arguments (similar to SLOWLOG) would be handled as if it might have key name arguments
      (similar to MEMORY), would consider cluster redirect but will end up with 0 keys
      after an excessive call to getKeysFromCommand, and eventually do the right thing.
      f7f77a74
    • Wen Hui's avatar
      Add missing calls to raxStop (#7532) · 4e8f2d68
      Wen Hui authored
      Since the dynamic allocations in raxIterator are only used for deep walks, memory
      leak due to missing call to raxStop can only happen for rax with key names longer
      than 32 bytes.
      
      Out of all the missing calls, the only ones that may lead to a leak are the rax
      for consumer groups and consumers, and these were only in AOFRW and rdbSave, which
      normally only happen in fork or at shutdown.
      4e8f2d68
    • Wen Hui's avatar
      2fbd0271
  13. 20 Jul, 2020 3 commits
    • zhaozhao.zz's avatar
    • WuYunlong's avatar
      Fix cluster redirect for module command with no firstkey. (#7539) · e4d7de60
      WuYunlong authored
      Before this commit, processCommand() did not notice that cmd could be a module command
      which declared `getkeys-api` and handled it for the purpose of cluster redirect it
      as if it doesn't use any keys.
      
      This commit fixed it by reusing the codes in addReplyCommand().
      e4d7de60
    • WuYunlong's avatar
      Refactor streamAppendItem() by deleting redundancy condition. (#7487) · 86fed3fe
      WuYunlong authored
      It will never happen that "lp != NULL && lp_bytes >= server.stream_node_max_bytes".
      Assume that "lp != NULL && lp_bytes >= server.stream_node_max_bytes",
      we got the following conditions:
      a. lp != NULL
      b. lp_bytes >= server.stream_node_max_bytes
      
      If server.stream_node_max_bytes is 0, given condition a, condition b is always satisfied
      If server.stream_node_max_bytes is not 0, given condition a and condition b, the codes just a
      	few lines above set lp to NULL, a controdiction with condition a
      
      So that condition b is recundant. We could delete it safely.
      86fed3fe
  14. 16 Jul, 2020 2 commits
  15. 15 Jul, 2020 6 commits
  16. 14 Jul, 2020 1 commit
    • Oran Agra's avatar
      diskless master disconnect replicas when rdb child failed (#7518) · a176cb56
      Oran Agra authored
      in case the rdb child failed, crashed or terminated unexpectedly redis
      would have marked the replica clients with repl_put_online_on_ack and
      then kill them only after a minute when no ack was received.
      
      it would not stream anything to these connections, so the only effect of
      this bug is a delay of 1 minute in the replicas attempt to re-connect.
      a176cb56
  17. 13 Jul, 2020 2 commits
  18. 11 Jul, 2020 2 commits
  19. 10 Jul, 2020 2 commits