|
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 |
|
| #
b23aa670 |
| 14-Jun-2016 |
antirez <[email protected]> |
TTL and TYPE LRU access fixed. TOUCH implemented.
|
|
Revision tags: 3.2.0 |
|
| #
cfc08b65 |
| 25-Apr-2016 |
Oran Agra <[email protected]> |
various cleanups and minor fixes
|
|
Revision tags: 3.2.0-rc3, 3.0.7, 3.2.0-rc2, 3.2-rc1, 3.0.6, 2.8.24 |
|
| #
00353f99 |
| 11-Dec-2015 |
antirez <[email protected]> |
MIGRATE: Fix key extraction for new form.
|
|
Revision tags: 3.0.5, 2.8.23 |
|
| #
4fec5ee1 |
| 14-Sep-2015 |
antirez <[email protected]> |
MOVE re-add TTL check fixed.
getExpire() returns -1 when no expire exists.
Related to #2765.
|
| #
f529a01c |
| 14-Sep-2015 |
antirez <[email protected]> |
MOVE now can move TTL metadata as well.
MOVE was not able to move the TTL: when a key was moved into a different database number, it became persistent like if PERSIST was used.
In some incredible w
MOVE now can move TTL metadata as well.
MOVE was not able to move the TTL: when a key was moved into a different database number, it became persistent like if PERSIST was used.
In some incredible way (I guess almost nobody uses Redis MOVE) this bug remained unnoticed inside Redis internals for many years. Finally Andy Grunwald discovered it and opened an issue.
This commit fixes the bug and adds a regression test.
Close #2765.
show more ...
|
|
Revision tags: 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 |
|
| #
4c7ee0d5 |
| 13-Jul-2015 |
antirez <[email protected]> |
EXISTS is now variadic.
The new return value is the number of keys existing, among the ones specified in the command line, counting the same key multiple times if given multiple times (and if it exi
EXISTS is now variadic.
The new return value is the number of keys existing, among the ones specified in the command line, counting the same key multiple times if given multiple times (and if it exists).
See PR #2667.
show more ...
|
|
Revision tags: 3.0.2, 2.8.21, 2.8.20, 3.0.1, 3.0.0, 3.0.0-rc6, 3.0.0-rc5 |
|
| #
fc365a3a |
| 23-Feb-2015 |
antirez <[email protected]> |
Change RENAME behavior when src and dst keys are the same.
Fixes issue #2392.
|
|
Revision tags: 3.0.0-rc4, 3.0.0-rc3, 3.0.0-rc2, 2.8.19 |
|
| #
7ef1239b |
| 12-Dec-2014 |
clark.kang <[email protected]> |
remove_warning in db.c
|
| #
06e76bc3 |
| 10-Dec-2014 |
antirez <[email protected]> |
Better read-only behavior for expired keys in slaves.
Slaves key expire is orchestrated by the master. Sometimes the master will send the synthesized DEL to expire keys on the slave with a non trivi
Better read-only behavior for expired keys in slaves.
Slaves key expire is orchestrated by the master. Sometimes the master will send the synthesized DEL to expire keys on the slave with a non trivial delay (when the key is not accessed, only the incremental expiry algorithm will expire it in background).
During that time, a key is logically expired, but slaves still return the key if you GET (or whatever) it. This is a bad behavior.
However we can't simply trust the slave view of the key, since we need the master to be able to send write commands to update the slave data set, and DELs should only happen when the key is expired in the master in order to ensure consistency.
However 99.99% of the issues with this behavior is when a client which is not a master sends a read only command. In this case we are safe and can consider the key as non existing.
This commit does a few changes in order to make this sane:
1. lookupKeyRead() is modified in order to return NULL if the above conditions are met. 2. Calls to lookupKeyRead() in commands actually writing to the data set are repliaced with calls to lookupKeyWrite().
There are redundand checks, so for example, if in "2" something was overlooked, we should be still safe, since anyway, when the master writes the behavior is to don't care about what expireIfneeded() returns.
This commit is related to #1768, #1770, #2131.
show more ...
|
|
Revision tags: 2.8.18 |
|
| #
92c5ab40 |
| 02-Dec-2014 |
antirez <[email protected]> |
Use exp format and more precision output for ZSCAN.
Ref: issue #2175
|
|
Revision tags: 3.0.0-rc1, 2.8.17, 2.8.16, 2.8.15 |
|
| #
acfc1963 |
| 09-Sep-2014 |
xiaost <[email protected]> |
Limit the *SCAN command `dictScan` iterations
*SCAN will cause redis server to hang for seconds after millions of keys was deleted by SCAN/DEL pairs
|
|
Revision tags: 2.8.14 |
|
| #
edca2b14 |
| 13-Aug-2014 |
antirez <[email protected]> |
Remove warnings and improve integer sign correctness.
|
| #
498ad748 |
| 01-Aug-2014 |
Matt Stancliff <[email protected]> |
Reject MOVE to non-integer DBs
Previously, "MOVE key somestring" would move the key to DB 0 which is just unexpected and wrong. String as DB == error.
Test added too.
Modified by @antirez in order
Reject MOVE to non-integer DBs
Previously, "MOVE key somestring" would move the key to DB 0 which is just unexpected and wrong. String as DB == error.
Test added too.
Modified by @antirez in order to use the getLongLongFromObject() API instead of strtol().
Fixes #1428
show more ...
|
|
Revision tags: 3.0.0-beta8 |
|
| #
87815ab5 |
| 21-Jul-2014 |
Matt Stancliff <[email protected]> |
Fix key extraction for SORT
We only want to use the last STORE key, but we have to record we actually found a STORE key so we can increment the final return key count.
Test added to prevent further
Fix key extraction for SORT
We only want to use the last STORE key, but we have to record we actually found a STORE key so we can increment the final return key count.
Test added to prevent further regression.
Closes #1883, #1645, #1647
show more ...
|
|
Revision tags: 2.8.13, 3.0.0-beta7 |
|
| #
95b1979c |
| 26-Jun-2014 |
antirez <[email protected]> |
No more trailing spaces in Redis source code.
|
|
Revision tags: 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 |
|
| #
33f943b4 |
| 08-Apr-2014 |
Matt Stancliff <[email protected]> |
Fix blocking operations from missing new lists
Behrad Zari discovered [1] and Josiah reported [2]: if you block and wait for a list to exist, but the list creates from a non-push command, the blocke
Fix blocking operations from missing new lists
Behrad Zari discovered [1] and Josiah reported [2]: if you block and wait for a list to exist, but the list creates from a non-push command, the blocked client never gets notified.
This commit adds notification of blocked clients into the DB layer and away from individual commands.
Lists can be created by [LR]PUSH, SORT..STORE, RENAME, MOVE, and RESTORE. Previously, blocked client notifications were only triggered by [LR]PUSH. Your client would never get notified if a list were created by SORT..STORE or RENAME or a RESTORE, etc.
Blocked client notification now happens in one unified place: - dbAdd() triggers notification when adding a list to the DB
Two new tests are added that fail prior to this commit.
All test pass.
Fixes #1668
[1]: https://groups.google.com/forum/#!topic/redis-db/k4oWfMkN1NU [2]: #1668
show more ...
|
| #
6baac558 |
| 14-May-2014 |
antirez <[email protected]> |
Cluster: better handling of stolen slots.
The previous code handling a lost slot (by another master with an higher configuration for the slot) was defensive, considering it an error and putting the
Cluster: better handling of stolen slots.
The previous code handling a lost slot (by another master with an higher configuration for the slot) was defensive, considering it an error and putting the cluster in an odd state requiring redis-cli fix.
This was changed, because actually this only happens either in a legitimate way, with failovers, or when the admin messed with the config in order to reconfigure the cluster. So the new code instead will try to make sure that the keys stored match the new slots map, by removing all the keys in the slots we lost ownership from.
The function that deletes the keys from the lost slots is called only if the node does not lose all its slots (resulting in a reconfiguration as a slave of the node that got ownership). This is an optimization since the replication code will anyway flush all the instance data in a faster way.
show more ...
|
| #
8827dc4e |
| 17-Apr-2014 |
antirez <[email protected]> |
Always pass sorted set range objects by reference.
|
| #
83d28303 |
| 10-Apr-2014 |
Matt Stancliff <[email protected]> |
Check key expiration before deleting
Deleting an expired key should return 0, not success.
Fixes #1648
|