- 12 Aug, 2020 1 commit
-
-
Madelyn Olson authored
* Replace usage of wrongtypeerr with helper
-
- 04 Aug, 2020 1 commit
-
-
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:
Tyson Andre <tysonandre775@hotmail.com>
-
- 11 Jul, 2020 1 commit
-
-
杨博东 authored
one of the differences (other than consistent code with SORT, GEORADIUS), is that the LFU of the old key is retained.
-
- 21 Apr, 2020 1 commit
-
-
antirez authored
-
- 14 Apr, 2020 2 commits
- 02 Sep, 2019 1 commit
-
-
antirez authored
-
- 24 Jul, 2019 1 commit
-
-
wubostc authored
-
- 14 Mar, 2019 1 commit
-
-
antirez authored
-
- 23 Jan, 2019 1 commit
-
-
Guy Benoish authored
-
- 09 Jan, 2019 5 commits
- 01 Aug, 2018 6 commits
-
-
antirez authored
When the element new score is the same of prev/next node, the lexicographical order kicks in, so we can safely update the node in place only when the new score is strictly between the adjacent nodes but never equal to one of them. Technically speaking we could do extra checks to make sure that even if the score is the same as one of the adjacent nodes, we can still update on place, but this rarely happens, so probably not a good deal to make it more complex. Related to #5179.
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
antirez authored
-
- 03 Jul, 2018 1 commit
-
-
Jack Drogon authored
-
- 05 Jun, 2018 1 commit
-
-
antirez authored
-
- 31 May, 2018 1 commit
-
-
zhaozhao.zz authored
-
- 22 May, 2018 1 commit
-
-
zhaozhao.zz authored
-
- 11 May, 2018 2 commits
-
-
antirez authored
Usually blocking operations make a lot of sense with multiple keys so that we can listen to multiple queues (or whatever the app models) with a single connection. However in the synchronous case it is more useful to be able to ask for N elements. This is a change that I also wanted to perform soon or later in the blocking list variant, but here it is more natural since there is no reply type difference.
-
antirez authored
This commit also adds a top comment about a subtle behavior of mixing blocking operations of different types in the same key.
-
- 29 Apr, 2018 1 commit
-
-
Itamar Haber authored
An implementation of the [Ze POP Redis Module](https://github.com/itamarhaber/zpop) as core Redis commands. Fixes #1861.
-
- 07 Mar, 2018 1 commit
-
-
Guy Benoish authored
-
- 06 Mar, 2018 1 commit
-
-
Guy Benoish authored
-
- 08 Dec, 2017 1 commit
-
-
zhaozhao.zz authored
-
- 20 Feb, 2017 1 commit
-
-
antirez authored
This change attempts to switch to an hash function which mitigates the effects of the HashDoS attack (denial of service attack trying to force data structures to worst case behavior) while at the same time providing Redis with an hash function that does not expect the input data to be word aligned, a condition no longer true now that sds.c strings have a varialbe length header. Note that it is possible sometimes that even using an hash function for which collisions cannot be generated without knowing the seed, special implementation details or the exposure of the seed in an indirect way (for example the ability to add elements to a Set and check the return in which Redis returns them with SMEMBERS) may make the attacker's life simpler in the process of trying to guess the correct seed, however the next step would be to switch to a log(N) data structure when too many items in a single bucket are detected: this seems like an overkill in the case of Redis. SPEED REGRESION TESTS: In order to verify that switching from MurmurHash to SipHash had no impact on speed, a set of benchmarks involving fast insertion of 5 million of keys were performed. The result shows Redis with SipHash in high pipelining conditions to be about 4% slower compared to using the previous hash function. However this could partially be related to the fact that the current implementation does not attempt to hash whole words at a time but reads single bytes, in order to have an output which is endian-netural and at the same time working on systems where unaligned memory accesses are a problem. Further X86 specific optimizations should be tested, the function may easily get at the same level of MurMurHash2 if a few optimizations are performed.
-
- 02 Dec, 2016 1 commit
-
-
Itamar Haber authored
Fixes https://github.com/antirez/redis/issues/3639
-
- 14 Sep, 2016 1 commit
-
-
antirez authored
Optimizations suggested and originally implemented by @oranagra. Re-applied by @antirez using the modified API.
-
- 12 Sep, 2016 1 commit
-
-
oranagra authored
(Change cherry-picked and modified by @antirez from a larger commit provided by @oranagra in PR #3223).
-
- 20 Jun, 2016 1 commit
-
-
Yossi Gottlieb authored
-
- 10 May, 2016 3 commits
- 09 May, 2016 1 commit
-
-
oranagra authored
-