|
Revision tags: 8.0-m02, 6.2.16, 7.2.6, 7.4.1, 8.0-m01, 7.4.0, 7.4-rc2, 7.4-rc1, 7.2.5, 7.2.4, 7.0.15, 7.2.3, 7.2.2, 7.0.14, 6.2.14, 6.2.15, 7.2.1, 7.0.13, 7.2.0, 7.2-rc3, 7.0.12, 6.2.13, 6.0.20, 7.2-rc2, 6.0.19, 6.2.12, 7.0.11, 7.2-rc1, 7.0.10, 7.0.9, 6.2.11, 6.0.18, 6.2.10, 6.0.17, 6.2.9, 7.0.8, 7.0.7, 7.0.6, 6.2.8, 7.0.5, 7.0.4, 7.0.3, 7.0.2, 7.0.1, 7.0.0, 6.2.7, 7.0-rc3, 7.0-rc2, 7.0-rc1, 6.2.6, 6.0.16, 5.0.14, 5.0.13, 6.0.15, 6.2.5, 6.0.14, 6.2.4, 6.2.3, 6.0.13, 6.2.2, 6.2.1, 6.0.12, 5.0.12, 6.0.11, 6.2.0, 5.0.11, 6.2-rc3, 6.0.10, 6.2-rc2, 6.2-rc1, 6.0.9, 5.0.10, 6.0.8, 6.0.7, 6.0.6, 6.0.5, 6.0.4, 6.0.3, 6.0.2, 6.0.1, 6.0.0, 5.0.9, 6.0-rc4, 6.0-rc3, 5.0.8, 6.0-rc2, 6.0-rc1, 5.0.7, 5.0.6, 5.0.5, 3.2.13, 4.0.14, 5.0.4, 4.0.13, 5.0.3, 4.0.12, 5.0.2, 5.0.1, 5.0.0, 5.0-rc6, 5.0-rc5, 4.0.11, 5.0-rc4, 5.0-rc3, 5.0-rc2, 4.0.10, 3.2.12, 5.0-rc1, 4.0.9, 4.0.8, 4.0.7, 4.0.6, 4.0.5, 4.0.4, 4.0.3, 3.2.11, 4.0.2, 3.2.10, 4.0.1, 4.0.0, 3.2.9, 4.0-rc3, 3.2.8, 3.2.7, 3.2.6, 4.0-rc2, 4.0-rc1, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1 |
|
| #
60323407 |
| 09-May-2016 |
oranagra <[email protected]> |
minor fixes - mainly signalModifiedKey, and GEORADIUS
|
|
Revision tags: 3.2.0, 3.2.0-rc3, 3.0.7, 3.2.0-rc2, 3.2-rc1, 3.0.6, 2.8.24, 3.0.5, 2.8.23, 2.8.22, 3.0.4 |
|
| #
32f80e2f |
| 27-Jul-2015 |
antirez <[email protected]> |
RDMF: More consistent define names.
|
| #
40eb548a |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: REDIS_OK REDIS_ERR -> C_OK C_ERR.
|
| #
2d9e3eb1 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: redisAssert -> serverAssert.
|
| #
14ff5724 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: OBJ_ macros for object related stuff.
|
| #
554bd0e7 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF: use client instead of redisClient, like Disque.
|
| #
cef054e8 |
| 26-Jul-2015 |
antirez <[email protected]> |
RDMF (Redis/Disque merge friendlyness) refactoring WIP 1.
|
|
Revision tags: 3.0.3, 3.0.2, 2.8.21 |
|
| #
eb138f15 |
| 15-May-2015 |
antirez <[email protected]> |
Rewrite smoveCommand test with ternary operator
|
|
Revision tags: 2.8.20, 3.0.1 |
|
| #
626b4f69 |
| 17-Apr-2015 |
Glenn Nethercutt <[email protected]> |
uphold the smove contract to return 0 when the element is not a member of the source set, even if source=dest
|
|
Revision tags: 3.0.0 |
|
| #
66f9393e |
| 31-Mar-2015 |
antirez <[email protected]> |
Fix setTypeNext call assuming NULL can be passed.
Segfault introduced during a refactoring / warning suppression a few commits away. This particular call assumed that it is safe to pass NULL to the
Fix setTypeNext call assuming NULL can be passed.
Segfault introduced during a refactoring / warning suppression a few commits away. This particular call assumed that it is safe to pass NULL to the object pointer argument when we are sure the set has a given encoding. This can't be assumed and is now guaranteed to segfault because of the new API of setTypeNext().
show more ...
|
| #
7f330b16 |
| 30-Mar-2015 |
antirez <[email protected]> |
Set: setType*() API more defensive initializing both values.
This change fixes several warnings compiling at -O3 level with GCC 4.8.2, and at the same time, in case of misuse of the API, we have the
Set: setType*() API more defensive initializing both values.
This change fixes several warnings compiling at -O3 level with GCC 4.8.2, and at the same time, in case of misuse of the API, we have the pointer initialize to NULL or the integer initialized to the value -123456789 which is easy to spot by naked eye.
show more ...
|
|
Revision tags: 3.0.0-rc6, 3.0.0-rc5, 3.0.0-rc4 |
|
| #
a37d0f8b |
| 11-Feb-2015 |
antirez <[email protected]> |
SPOP with count: fix replication for code path #3.
|
| #
9feee428 |
| 10-Feb-2015 |
antirez <[email protected]> |
SPOP: reimplemented for speed and better distribution.
The old version of SPOP with "count" argument used an API call of dict.c which was actually designed for a different goal, and was not capable
SPOP: reimplemented for speed and better distribution.
The old version of SPOP with "count" argument used an API call of dict.c which was actually designed for a different goal, and was not capable of good distribution. We follow a different three-cases approach optimized for different ratiion between sets and requested number of elements.
The implementation is simpler and allowed the removal of a large amount of code.
show more ...
|
| #
cc7f0434 |
| 09-Feb-2015 |
antirez <[email protected]> |
Change alsoPropagate() behavior to make it more usable.
Now the API automatically creates its argv copy and increment ref count of passed objects.
|
| #
6b5922dc |
| 09-Feb-2015 |
antirez <[email protected]> |
SPOP with count: initial fixes to the implementation.
Severan problems are addressed but still a few missing. Since replication of this command was more complex than others since it needs to replica
SPOP with count: initial fixes to the implementation.
Severan problems are addressed but still a few missing. Since replication of this command was more complex than others since it needs to replicate multiple SREM commands, an old API able to do this was reused (it was taken inside the implementation since it was pretty obvious soon or later that would be useful). The API was improved a bit so that now a command may opt-out for the standard command replication when the server.dirty counter is incremented, in order to "manually" replicate what it wants.
show more ...
|
|
Revision tags: 3.0.0-rc3, 3.0.0-rc2 |
|
| #
d74a5a08 |
| 21-Dec-2014 |
Alon Diamant <[email protected]> |
Following @mattsta's friendly review: 1. memory leak in t_set.c has been fixed 2. end-of-line spaces has been removed (from all over the place) 3. for loops have been ordered up to match existi
Following @mattsta's friendly review: 1. memory leak in t_set.c has been fixed 2. end-of-line spaces has been removed (from all over the place) 3. for loops have been ordered up to match existing Redis style (less weird) 4. comments format has been fixed (added * in the beggining of every comment line)
show more ...
|
| #
3c8a7558 |
| 18-Dec-2014 |
Alon Diamant <[email protected]> |
Fix: case when SPOP with count>MAXINT, setTypeRandomElements() will get negative count argument due to signed/unsigned mismatch.
setTypeRandomElements() now returns unsigned long, and also uses unsi
Fix: case when SPOP with count>MAXINT, setTypeRandomElements() will get negative count argument due to signed/unsigned mismatch.
setTypeRandomElements() now returns unsigned long, and also uses unsigned long for anything related to count of members. spopWithCountCommand() now uses unsigned long elements_returned instead of int, for values returned from setTypeRandomElements()
show more ...
|
|
Revision tags: 2.8.19, 2.8.18, 3.0.0-rc1, 2.8.17, 2.8.16, 2.8.15, 2.8.14, 3.0.0-beta8, 2.8.13, 3.0.0-beta7, 2.8.12, 2.8.11, 3.0.0-beta6, 2.8.10, 3.0.0-beta5, 3.0.0-beta4, 3.0.0-beta3, 2.8.9, 2.8.8, 3.0.0-beta2 |
|
| #
28802887 |
| 11-Mar-2014 |
Alon Diamant <[email protected]> |
Added <count> parameter to SPOP: spopCommand() now runs spopWithCountCommand() in case the <count> param is found. Added intsetRandomMembers() to Intset: Copies N random members from the set into inp
Added <count> parameter to SPOP: spopCommand() now runs spopWithCountCommand() in case the <count> param is found. Added intsetRandomMembers() to Intset: Copies N random members from the set into inputted 'values' array. Uses either the Knuth or Floyd sample algos depending on ratio count/size. Added setTypeRandomElements() to SET type: Returns a number of random elements from a non empty set. This is a version of setTypeRandomElement() that is modified in order to return multiple entries, using dictGetRandomKeys() and intsetRandomMembers(). Added tests for SPOP with <count>: unit/type/set, unit/scripting, integration/aof -- Cleaned up code a bit to match with required Redis coding style
show more ...
|
| #
95b1979c |
| 26-Jun-2014 |
antirez <[email protected]> |
No more trailing spaces in Redis source code.
|
|
Revision tags: 2.8.7, 2.8.6, 3.0.0-beta1, 2.8.5, 2.8.4 |
|
| #
c00453da |
| 13-Dec-2013 |
antirez <[email protected]> |
SDIFF iterator misuse fixed in diff algorithm #1.
The bug could be easily triggered by:
SADD foo a b c 1 2 3 4 5 6 SDIFF foo foo
When the key was the same in two sets, an unsafe iterator w
SDIFF iterator misuse fixed in diff algorithm #1.
The bug could be easily triggered by:
SADD foo a b c 1 2 3 4 5 6 SDIFF foo foo
When the key was the same in two sets, an unsafe iterator was used to check existence of elements in the same set we were iterating. Usually this would just result into a wrong output, however with the dict.c API misuse protection we have in place, the result was actually an assertion failed that was triggered by the CI test, while creating random datasets for the "MASTER and SLAVE consistency" test.
show more ...
|
|
Revision tags: 2.6.17, 2.8.3, 2.8.2, 2.8.1, 2.8.0, 2.8.0-rc6 |
|
| #
ebcb6251 |
| 05-Nov-2013 |
antirez <[email protected]> |
SCAN code refactored to parse cursor first.
The previous implementation of SCAN parsed the cursor in the generic function implementing SCAN, SSCAN, HSCAN and ZSCAN.
The actual higher-level command
SCAN code refactored to parse cursor first.
The previous implementation of SCAN parsed the cursor in the generic function implementing SCAN, SSCAN, HSCAN and ZSCAN.
The actual higher-level command implementation only checked for empty keys and return ASAP in that case. The result was that inverting the arguments of, for instance, SSCAN for example and write:
SSCAN 0 key
Instead of
SSCAN key 0
Resulted into no error, since 0 is a non-existing key name very likely. Just the iterator returned no elements at all.
In order to fix this issue the code was refactored to extract the function to parse the cursor and return the error. Every higher level command implementation now parses the cursor and later checks if the key exist or not.
show more ...
|
| #
4a1f1cc0 |
| 28-Oct-2013 |
antirez <[email protected]> |
SSCAN implemented.
|
|
Revision tags: 2.8.0-rc5, 2.8.0-rc4, 2.6.16, 2.6.15, 2.8.0-rc3, 2.8.0-rc2, 2.8.0-rc1, 2.6.14-2, 2.6.14-1, 2.6.14, 2.6.13, 2.6.12, 2.6.10-3, 2.6.10-2, 2.6.11, 2.6.10-1, 2.6.10, 2.6.9-1, 2.6.9, 2.6.8-1, 2.6.8, 2.6.7-1, 2.6.7, 2.6.6, 2.4.18, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.6.0-rc8, 2.6.0-rc7, 2.4.17, 2.6.0-rc6, 2.4.16, 2.4.15, 2.6.0-rc5, 2.6.0-rc4 |
|
| #
894eba07 |
| 05-Jun-2012 |
antirez <[email protected]> |
Introduction of a new string encoding: EMBSTR
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
Introduction of a new string encoding: EMBSTR
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.
show more ...
|
| #
8063155c |
| 05-Feb-2013 |
Rock Li <[email protected]> |
retval doesn't initalized
If each if conditions are all fail, variable retval will under uninitlized
|
| #
00274733 |
| 04-Feb-2013 |
Gengliang Wang <[email protected]> |
Fix a bug in srandmemberWithCountCommand()
In CASE 2, the call sunionDiffGenericCommand will involve the string "srandmember"
> sadd foo one
(integer 1)
> sadd srandmember two
(integer 2)
> sr
Fix a bug in srandmemberWithCountCommand()
In CASE 2, the call sunionDiffGenericCommand will involve the string "srandmember"
> sadd foo one
(integer 1)
> sadd srandmember two
(integer 2)
> srandmember foo 3
1)"one"
2)"two"
show more ...
|