|
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 |
|
| #
d4831e32 |
| 15-Jun-2016 |
antirez <[email protected]> |
GETRANGE: return empty string with negative, inverted start/end.
|
|
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.
|
| #
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, 2.8.20, 3.0.1, 3.0.0, 3.0.0-rc6, 3.0.0-rc5, 3.0.0-rc4 |
|
| #
1dbd8e94 |
| 03-Feb-2015 |
antirez <[email protected]> |
More obvious indentation in setCommand().
|
|
Revision tags: 3.0.0-rc3, 3.0.0-rc2, 2.8.19 |
|
| #
352172a7 |
| 14-Dec-2014 |
Mihir Joshi <[email protected]> |
Stricter options for SET command
- As per Antirez's suggestion, this commit raises an error when mutually exclusive options are provided. Duplicate options are allowed.
|
|
Revision tags: 2.8.18, 3.0.0-rc1, 2.8.17, 2.8.16, 2.8.15, 2.8.14 |
|
| #
badf0f00 |
| 07-Aug-2014 |
Matt Stancliff <[email protected]> |
Bitops: Stop overallocating storage space on set
Previously the string was created empty then re-sized to fit the offset, but sds resize causes the sds to over-allocate by at least 1 MB (which is a
Bitops: Stop overallocating storage space on set
Previously the string was created empty then re-sized to fit the offset, but sds resize causes the sds to over-allocate by at least 1 MB (which is a lot when you are operating at bit-level access).
This also improves the speed of initial sets by 2% to 6% based on quick testing.
Patch logic provided by @oranagra
Fixes #1918
show more ...
|
| #
92c5ab40 |
| 02-Dec-2014 |
antirez <[email protected]> |
Use exp format and more precision output for ZSCAN.
Ref: issue #2175
|
| #
e9b014cf |
| 22-Nov-2014 |
Mihir Joshi <[email protected]> |
stricter options for SET command
Issue: #2157 As the SET command is parsed, it remembers which options are already set and if a duplicate option is found, raises an error because it is essentially a
stricter options for SET command
Issue: #2157 As the SET command is parsed, it remembers which options are already set and if a duplicate option is found, raises an error because it is essentially an invalid syntax.
It still allows mutually exclusive options like EX and PX because taking an option over another (precedence) is not essentially a syntactic error.
show more ...
|
| #
16559b46 |
| 03-Oct-2014 |
antirez <[email protected]> |
INCR: Modify incremented object in-place when possible.
However we don't try to do this if the integer is already inside a range representable with a shared integer.
The performance gain appears to
INCR: Modify incremented object in-place when possible.
However we don't try to do this if the integer is already inside a range representable with a shared integer.
The performance gain appears to be around ~15% in micro benchmarks, however in the long run this also helps to improve locality, so should have more, hard to measure, benefits.
show more ...
|
| #
b20df972 |
| 02-Sep-2014 |
Matt Stancliff <[email protected]> |
Return empty string if GETRANGE of empty string
Previously, GETRANGE of a key containing nothing ("") would allocate a large (size_t)-1 return value causing crashes on 32bit builds when it tried to
Return empty string if GETRANGE of empty string
Previously, GETRANGE of a key containing nothing ("") would allocate a large (size_t)-1 return value causing crashes on 32bit builds when it tried to allocate the 4 GB return string.
show more ...
|
| #
f0e306f4 |
| 02-Sep-2014 |
Matt Stancliff <[email protected]> |
Increase size of range request in getrange
32 bit builds don't have a big enough long to capture the same range as a 64 bit build. If we use "long long" we get proper size limits everywhere.
Also
Increase size of range request in getrange
32 bit builds don't have a big enough long to capture the same range as a 64 bit build. If we use "long long" we get proper size limits everywhere.
Also updates size of unsigned comparison to fit new size of `end`.
Fixes #1981
show more ...
|
| #
a6edfcea |
| 18-Aug-2014 |
antirez <[email protected]> |
Fix invalid expire error for SET family commands.
|
|
Revision tags: 3.0.0-beta8, 2.8.13, 3.0.0-beta7 |
|
| #
53fdfda9 |
| 29-Jun-2014 |
Jan-Erik Rediger <[email protected]> |
Handle large getrange requests
Previously the end was casted to a smaller type which resulted in a wrong check and failed with values larger than handled by unsigned.
Closes #1847, #1844
|
|
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 |
|
| #
543ede03 |
| 30-Mar-2014 |
antirez <[email protected]> |
String value unsharing refactored into proper function.
All the Redis functions that need to modify the string value of a key in a destructive way (APPEND, SETBIT, SETRANGE, ...) require to make the
String value unsharing refactored into proper function.
All the Redis functions that need to modify the string value of a key in a destructive way (APPEND, SETBIT, SETRANGE, ...) require to make the object unshared (if refcount > 1) and encoded in raw format (if encoding is not already REDIS_ENCODING_RAW).
This was cut & pasted many times in multiple places of the code. This commit puts the small logic needed into a function called dbUnshareStringValue().
show more ...
|
|
Revision tags: 2.8.8, 3.0.0-beta2, 2.8.7, 2.8.6, 3.0.0-beta1, 2.8.5, 2.8.4, 2.6.17, 2.8.3, 2.8.2, 2.8.1, 2.8.0, 2.8.0-rc6, 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 ...
|
| #
86d87e35 |
| 28-Mar-2013 |
charsyam <[email protected]> |
Support for case unsensitive SET options.
|
| #
30d5d416 |
| 28-Mar-2013 |
antirez <[email protected]> |
Extended SET command implemented (issue #931).
|
| #
fce016d3 |
| 25-Jan-2013 |
antirez <[email protected]> |
Keyspace events: it is now possible to select subclasses of events.
When keyspace events are enabled, the overhead is not sever but noticeable, so this commit introduces the ability to select subcla
Keyspace events: it is now possible to select subclasses of events.
When keyspace events are enabled, the overhead is not sever but noticeable, so this commit introduces the ability to select subclasses of events in order to avoid to generate events the user is not interested in.
The events can be selected using redis.conf or CONFIG SET / GET.
show more ...
|
| #
da04e6ed |
| 24-Jan-2013 |
antirez <[email protected]> |
Keyspace events added for more commands.
|
| #
5b9357a6 |
| 23-Jan-2013 |
antirez <[email protected]> |
Initial test events for the new keyspace notification API.
|
| #
e50cdbe4 |
| 19-Jan-2013 |
antirez <[email protected]> |
Additionally two typos fixed thanks to @jodal
|
| #
9d09ce39 |
| 16-Jan-2013 |
guiquanz <[email protected]> |
Fixed many typos.
|