Commit Graph

3880 Commits

Author SHA1 Message Date
Salvatore Sanfilippo
64b834b8b2 Merge pull request #3256 from oranagra/georasius_neg
fix georadius returns multiple replies
2016-06-16 12:57:59 +02:00
antirez
2f2fd64c0d Minor aesthetic fixes to PR #3264.
Comment format fixed + local var modified from camel case to underscore
separators as Redis code base normally does (camel case is mostly used
for global symbols like structure names, function names, global vars,
...).
2016-06-16 12:54:33 +02:00
Salvatore Sanfilippo
33a9836fe3 Merge pull request #3264 from oranagra/bitfield_fix2
fix crash in BITFIELD GET on non existing key or wrong type see #3259
2016-06-16 12:52:36 +02:00
Salvatore Sanfilippo
5d83f6cfde Merge pull request #3274 from MOON-CLJ/fix_promoted_slave
Sentinel: fix check when can't send the command to the promoted slave
2016-06-15 17:24:11 +02:00
Salvatore Sanfilippo
226f679651 Merge pull request #3283 from ideal/unstable
fix mistake in comment in object.c
2016-06-15 15:53:19 +02:00
Salvatore Sanfilippo
bd2cd7059a Merge pull request #3281 from jamespedwards42/unstable
Fix modules intro typos.
2016-06-15 12:51:15 +02:00
antirez
2d86995273 GETRANGE: return empty string with negative, inverted start/end. 2016-06-15 12:48:58 +02:00
antirez
eb45e11496 Remove additional round brackets from fix for #3282. 2016-06-15 12:16:39 +02:00
Salvatore Sanfilippo
001cadc854 Merge pull request #3282 from wenduo/unstable
bitcount bug:return non-zero value when start > end (both negative)
2016-06-15 12:15:34 +02:00
zach shipko
b7b9aa6d9b BSDs don't have -ldl 2016-06-14 13:46:42 +00:00
antirez
41d804d9dc TTL and TYPE LRU access fixed. TOUCH implemented. 2016-06-14 15:33:59 +02:00
antirez
cd8e688226 redis-cli help.h updated. 2016-06-14 14:45:28 +02:00
antirez
5ba9bdec75 Modules: document how to pass config params to modules.
Related to #3293.
2016-06-13 10:05:28 +02:00
antirez
5831dd860a Fix example modules to have the right OnLoad() prototype.
Related to #3293.
2016-06-13 09:57:19 +02:00
antirez
a4bce77e92 Don't assume no padding or specific ordering in moduleLoadQueueEntry structure.
We need to be free to shuffle fields or add more fields in a structure
without breaking code.

Related to issue #3293.
2016-06-13 09:51:06 +02:00
antirez
9a02dac2e8 Free module context after loading.
Now that modules receive RedisModuleString objects on loading, they are
allowed to call the String API, so the context must be released
correctly.

Related to #3293.
2016-06-13 09:45:53 +02:00
antirez
b6cd008508 Make sure modules arguments are raw strings.
Related to PR #3293.
2016-06-13 09:40:28 +02:00
antirez
1ad5c22763 Minor changes to unifor C style to Redis code base for PR #3293. 2016-06-13 09:39:44 +02:00
Salvatore Sanfilippo
e8d5387a44 Merge pull request #3293 from yossigo/module_config
Allow passing arguments to modules on load.
2016-06-13 09:31:59 +02:00
antirez
e71f22f5f2 Fix typo: after -> before. 2016-06-10 10:39:38 +02:00
antirez
e4567f243b Explain why module type names are 9 chars. 2016-06-10 10:36:09 +02:00
Salvatore Sanfilippo
688996f415 Merge pull request #3295 from catwell/pr-1-warnings
fix some compiler warnings
2016-06-10 10:20:28 +02:00
Salvatore Sanfilippo
b4327ae5fe Merge pull request #3294 from yossigo/fix_unload
Fix MODULE UNLOAD crash and/or wrong error message.
2016-06-10 10:18:49 +02:00
antirez
a1684ff1bb Remove tryObjectEncoding() calls from list type.
All lists are now represented via quicklists.
Quicklists are never represented referencing robj structures, so trying
to compress their representation does not make sense. That the new way
is faster was experimentally verified with micro benchmarks in order to
prove that the intuition was correct.
2016-06-10 10:15:37 +02:00
antirez
5beec9743e Merge branch 'unstable' of github.com:/antirez/redis into unstable 2016-06-10 10:12:11 +02:00
Salvatore Sanfilippo
ab73544396 Merge pull request #3296 from catwell/pr-2-variadic-pushx
make RPUSHX and LPUSHX variadic
2016-06-10 10:10:08 +02:00
andyli
93a09877fe fix comment "b>a" to "a > b" 2016-06-10 09:15:26 +02:00
antirez
2a57ad5d90 Fixed typo in Sentinel compareSlavesForPromotion() comment. 2016-06-10 09:15:01 +02:00
antirez
5481336872 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2016-06-10 09:00:02 +02:00
antirez
b664aebda1 Improve timer callback creation comment. 2016-06-08 16:07:32 +02:00
jspraul
4df95e8419 Include 'fd_set' type name
Fix an MSYS2-build-breaking error: unknown type name ‘fd_set’
2016-06-07 16:46:00 -04:00
Yossi Gottlieb
2fd6ca3cf8 Remove gcc warning when redismodule.h is included by a multi-file
module.
2016-06-07 13:31:33 +03:00
Pierre Chapuis
d88c3c77be make RPUSHX and LPUSHX variadic 2016-06-05 16:50:24 +02:00
Pierre Chapuis
b670a16282 remove unused variable 2016-06-05 16:50:17 +02:00
Pierre Chapuis
3e9c20f63b untangle LINSERT and {L,R}PUSHX implementations 2016-06-05 16:50:10 +02:00
Pierre Chapuis
188d90fc87 fix some compiler warnings 2016-06-05 16:48:45 +02:00
Yossi Gottlieb
87312ff781 Fix MODULE UNLOAD crash and/or wrong error message. 2016-06-05 13:27:38 +03:00
Yossi Gottlieb
cc58f11ccc Use RedisModuleString for OnLoad argv. 2016-06-05 13:18:24 +03:00
Yossi Gottlieb
2bd13cf0eb Allow passing arguments to modules on load. 2016-06-05 11:37:24 +03:00
antirez
550fa7e14f modules API.md updated. 2016-06-04 12:55:39 +02:00
antirez
c3f5b6ebf9 Modules: native types doc, 70% done. 2016-06-04 12:54:18 +02:00
antirez
5830d8821b Modules: pool allocator doc. 2016-06-03 18:32:35 +02:00
antirez
31eb8eccef Modules: top comments in helloworld.c and hellotype.c. 2016-06-03 18:19:31 +02:00
antirez
8ec28002be Modules: support for modules native data types. 2016-06-03 18:14:04 +02:00
antirez
27e5f385c1 RDB v8: fix rdbLoadLen() return value. 2016-06-01 20:18:28 +02:00
antirez
e6554bed92 RDB v8: new ZSET storage format with binary doubles. 2016-06-01 12:12:26 +02:00
antirez
4aae4f7d35 RDB v8: ability to save uint64_t lengths. 2016-06-01 11:35:47 +02:00
antirez
2503acfc83 Avoid undefined behavior in BITFIELD implementation.
Probably there is no compiler that will actaully break the code or raise
a signal for unsigned -> signed overflowing conversion, still it was
apparently possible to write it in a more correct way.

All tests passing.
2016-05-31 11:52:07 +02:00
ideal
4067132092 fix mistake comment in object.c 2016-05-30 16:57:36 +08:00
wenduo
41dacdbcbe bitcount bug:return non-zero value when start > end (both negative) 2016-05-30 16:21:08 +08:00
jamespedwards42
3432061cbb
Fix modules intro typos. 2016-05-29 15:53:24 -07:00
Itamar Haber
2866e023f8 Allow SPOP from Lua scripts
The existing `R` flag appears to be sufficient and there's no apparent reason why the command should be blocked.
2016-05-28 20:01:46 +03:00
MOON_CLJ
aa578446ba fix check when can't send the command to the promoted slave 2016-05-26 13:10:12 +08:00
oranagra
5d96b7ed4f check WRONGTYPE in BITFIELD before looping on the operations.
optimization: lookup key only once, and grow at once to the max need
fixes #3259 and #3221, and also an early return if wrongtype is discovered by SET
2016-05-24 23:31:36 +03:00
oranagra
c4433d2a6a fix crash in BITFIELD GET on non existing key or wrong type see #3259
this was a bug in the recent refactoring: bee963c445
2016-05-24 14:52:43 +03:00
oranagra
f3e81de176 fix georadius returns multiple replies 2016-05-23 13:58:50 +03:00
oranagra
8d9d8d16e4 CLIENT error message was out of date 2016-05-23 11:42:21 +03:00
oranagra
5fa711fa37 config set list-max-ziplist-size didn't support negative values, unlike config file 2016-05-22 20:35:14 +03:00
Jan-Erik Rediger
892565f924 Remove debug printing 2016-05-21 13:50:01 +02:00
Dvir Volk
137fd86a61 optimized amFree even further 2016-05-19 13:51:55 +03:00
Dvir Volk
46b07cbb5c Optimized autoMemoryFreed loop 2016-05-19 12:16:14 +03:00
antirez
b09a6b6a5d Fix modules compilation when libc malloc is used.
Compiling Redis worked as a side effect of jemalloc target specifying
-ldl as needed linker options, otherwise it is not provided during
linking and dlopen() API will remain unresolved symbols.
2016-05-18 17:48:06 +02:00
Salvatore Sanfilippo
bafed3ddd6 Merge pull request #3222 from oranagra/more_minir_fixes
minor fixes - mainly signalModifiedKey, and GEORADIUS
2016-05-18 07:50:53 -07:00
antirez
e3edae957b Modules: RM_HashSet() SDS ownership business clarified in comments.
Related to #3239.
2016-05-18 16:30:20 +02:00
Salvatore Sanfilippo
01a83d0a2a Merge pull request #3239 from dvirsky/fix_hashset_crash
fixed bad transfer of ownership in HashSet causing a potential crash
2016-05-18 07:15:15 -07:00
antirez
bee963c445 Code to access object string bytes repeated 3x refactored into 1 function. 2016-05-18 15:35:19 +02:00
antirez
ffd1600ccf Clarify that the LOG_STR_SIZE includes null term. 2016-05-18 15:23:35 +02:00
Salvatore Sanfilippo
4c9c9d726a Merge pull request #3221 from oranagra/bitfield_fix
fix crash in BITFIELD GET when key is integer encoded
2016-05-18 05:53:53 -07:00
Dvir Volk
cfaef8d5d4 fixed bad transfer of ownership in HashSet causing a potential crash 2016-05-17 16:47:36 +03:00
oranagra
283a8125cb reduce struct padding by reordering members 2016-05-16 20:12:11 +03:00
antirez
9aff564045 Modules: initial pool allocator and a LEFTPAD usage example. 2016-05-14 19:42:31 +02:00
antirez
646c958bbd Modules: doc layout improved. 2016-05-10 18:54:58 +02:00
antirez
745845df0a Modules doc: mention the functions not yet documented. 2016-05-10 15:50:21 +02:00
oranagra
77a9144245 fix crash in BITFIELD GET when key is integer encoded 2016-05-10 11:19:45 +03:00
antirez
5daece2ec6 RM_ZsetRangeNext()/Prev() typo in define name leading to crash fixed. 2016-05-10 06:40:11 +02:00
antirez
5f977c3f8b Modules: commandFlagsFromString() top comment back to 80 cols max. 2016-05-10 06:40:11 +02:00
antirez
ef2b4f6496 Trailing spaces removed from moduleCreateArgvFromUserFormat(). 2016-05-10 06:40:11 +02:00
antirez
6250a6b11f Modules: RM_GetClientId() implemented. 2016-05-10 06:40:11 +02:00
Dvir Volk
9a71df505c fixed crash when calling CreateStringFromCallReply on array elements 2016-05-10 06:40:11 +02:00
Itamar Haber
3816f16a53 Avoids reallocating and double String on truncate 2016-05-10 06:40:11 +02:00
Dvir Volk
d41bd233d5 fixed comment formatting in RM_CreateCommand 2016-05-10 06:40:10 +02:00
Ramon Snir
909a707b72 vector of strings is implemented now 2016-05-10 06:40:10 +02:00
Dvir Volk
a00e872560 another small comment fix 2016-05-10 06:40:10 +02:00
Dvir Volk
87de31f968 fixed comment 2016-05-10 06:40:10 +02:00
Dvir Volk
8fc67080a2 second attempt at vector formtting 2016-05-10 06:40:10 +02:00
antirez
7f5e1340f9 Modules: add ZADD_INCR flag to zset increment API. 2016-05-10 06:40:10 +02:00
Itamar Haber
1186f92b1b typo: %s/Emtpy/Empty/g 2016-05-10 06:40:10 +02:00
antirez
227d68094b Modules: command <-> core interface modified to get flags & keys. 2016-05-10 06:40:09 +02:00
Ramon Snir
676a6a4d19 tiny typo in Redis Modules API documentation 2016-05-10 06:40:09 +02:00
Dvir Volk
a1f8e22b79 fixed return value of HashGet (and a slight error in the documentation) 2016-05-10 06:40:09 +02:00
antirez
02c4a6c7f9 Modules: REDISMODULE_POSTPONED_ARRAY_LEN doc. 2016-05-10 06:40:09 +02:00
antirez
42f72210fd Modules: Hash API defines made more uniform. 2016-05-10 06:40:09 +02:00
antirez
9b0556cf10 Modules: Hash type API WIP #2. 2016-05-10 06:40:09 +02:00
antirez
10993ca0d5 Modules: Hash type API WIP #1. 2016-05-10 06:40:09 +02:00
antirez
5bf5fd24c6 Modules: a few fixes for the zset iterator. 2016-05-10 06:40:09 +02:00
antirez
33e1231e53 Modules: postponed array lengths. 2016-05-10 06:40:09 +02:00
antirez
00109e1113 Modules: zset lex iterator #3. 2016-05-10 06:40:09 +02:00
antirez
db3ade22eb Modules: zset lex iterator #2. 2016-05-10 06:40:09 +02:00
antirez
2b04f86ae5 Modules: zset lex iterator #1. 2016-05-10 06:40:08 +02:00
antirez
083f5277c5 Modules: zset iterator redesign #1. 2016-05-10 06:40:08 +02:00
antirez
d998170809 Simple Ruby script to generate reference doc added. 2016-05-10 06:40:08 +02:00
antirez
0fd6d548ca Modules: fix top comments to be user-facing doc quality. About 33% done. 2016-05-10 06:40:08 +02:00
antirez
f362f7a18a Modules: sorted set iterators WIP #3. 2016-05-10 06:40:08 +02:00
antirez
bdbb5a0253 Modules: put zset iterator current element in auto memory pool. 2016-05-10 06:40:08 +02:00
antirez
6eeeda39e9 Modules: sorted set iterators WIP #2. 2016-05-10 06:40:08 +02:00
antirez
eac5a13cb7 Modules: sorted set iterators WIP. 2016-05-10 06:40:08 +02:00
antirez
556d593d37 Remove useless space. 2016-05-10 06:40:08 +02:00
antirez
d5ecedd185 Modules: ZSET API WIP #4. 2016-05-10 06:40:07 +02:00
antirez
e1b34ecf98 Modules: ZSET API WIP #3. 2016-05-10 06:40:07 +02:00
antirez
4457e4acbe Modules: ZSET API WIP #2. 2016-05-10 06:40:07 +02:00
antirez
f199504ac9 Modules: ZSET API WIP. 2016-05-10 06:40:07 +02:00
antirez
11b3df24cb Modules: expire API and documentation. 2016-05-10 06:40:07 +02:00
antirez
f4e0129fa9 Modules: RedisModule_ReplyWithCallReply(). 2016-05-10 06:40:07 +02:00
Itamar Haber
6054089fa8 Stops SPLICE from accepting negative counts 2016-05-10 06:40:07 +02:00
Sun He
2e464bf0b1 modules/RM_StringTruncate: correct reallocate condition 2016-05-10 06:40:06 +02:00
Sun He
3a7b170205 modules/RM_OpenKey: avoid decrRefCount obj twice 2016-05-10 06:40:06 +02:00
Sun He
1868dee6f2 modules/RM_StringSet: set key->value 2016-05-10 06:40:06 +02:00
Sun He
fded8aa4e5 modules: correct protolen 2016-05-10 06:40:06 +02:00
antirez
4efe9e19c1 Add the last break for consistency in moduleCreateCallReplyFromProto. 2016-05-10 06:40:06 +02:00
Dvir Volk
e453d36e1e fixed case in moduleCreateCallReplyFromProto 2016-05-10 06:40:06 +02:00
Dvir Volk
ae5cb3f7d5 renamed RedisModule_ReplyWithNull to RM_ReplyWithNull to fix compilation 2016-05-10 06:40:06 +02:00
antirez
2967c00c2c Modules: RedisModule_ReplyWithNull() implemented. 2016-05-10 06:40:06 +02:00
Dvir Volk
e711a9ac45 fixed the doc with a right function name 2016-05-10 06:40:06 +02:00
Yossi Gottlieb
e443ad9c29 Log loadmodule dlopen() errors. 2016-05-10 06:40:06 +02:00
antirez
85919f80ed Modules: avoid conflict between modules func pointers and dynamic symbols.
In modules we fill a set of function pointers defined in redismodule.h,
populating a set of APIs that are callable from the module. We use this
manual process instead of resorting to dynamic linking so that we have
exact control on how we pass the API to the module, and we can even pass
different functions for the same name, depending on the API version
declared by the module.

However if the function pointers in redismodule.h and the functions
defined in module.c have the same name, they conflict since the core
exports the symbols to the module.

There is probably some compiler flags trick to avoid this, but in order
to be safer in the future and be more easily compatible with different
builidng systems, this commit changes the internal function prefix from
RedisModule_ to RM_, so for example:

    RM_StringSet() will be exported as RedisModule_StringSet()
2016-05-10 06:40:05 +02:00
antirez
6020469452 Modules: remove warnings due to void/function pointer conversion. 2016-05-10 06:40:05 +02:00
Dvir Volk
34f2fb7d8c fixed makefile for linux 2016-05-10 06:40:05 +02:00
antirez
6dead2cff5 Modules: first preview 31 March 2016. 2016-05-10 06:40:05 +02:00
oranagra
9682b616a2 minor fixes - mainly signalModifiedKey, and GEORADIUS 2016-05-09 12:05:33 +03:00
antirez
3b644e82b0 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2016-05-08 18:04:53 +02:00
Salvatore Sanfilippo
b44ad302d2 Merge pull request #732 from evilpacket/remove_dofile
Removes dofile() from Lua
2016-05-08 18:04:41 +02:00
antirez
8eb43bf72c redis-cli: integrate help.h with COMMAND output.
Use the COMMAND output to fill with partial information the built-in
help. This makes redis-cli able to at least complete commands that are
exported by the Redis server it is connected to, but were not available
in the help.h file when the redis-cli binary was compiled.
2016-05-07 13:03:25 +02:00
antirez
2205c465ca Cluster: don't check scripts key slots during AOF loading. 2016-05-05 23:37:08 +02:00
antirez
94dc71ff08 redis-cli: remove debugging message. 2016-05-05 18:05:37 +02:00
antirez
bdbeb07a9e Merge branch 'unstable' of github.com:/antirez/redis into unstable 2016-05-05 17:39:40 +02:00
antirez
68dd1c9155 Revert "Fix commandCommand arity"
This reverts commit 1189a4eae6d009fc0da8d50fd542ba1391542165.

Actually this is wrong, the command can be called without args at all.
2016-05-05 17:36:05 +02:00
Salvatore Sanfilippo
f0fcc36ce1 Merge pull request #2956 from pkulchenko/global-protection-msg-typo
Update global protection error message
2016-05-05 17:26:35 +02:00
Ruben Bridgewater
efa0840707 Fix commandCommand arity 2016-05-05 17:20:14 +02:00
Salvatore Sanfilippo
f5ff91f675 Merge pull request #2998 from danielhtshih/unstable
Fix a possible race condition of sdown event detection if sentinel's connection to master/slave/sentinel became disconnected just after the last PONG and before the next PING.
2016-05-05 17:16:58 +02:00
Salvatore Sanfilippo
0c1f84f0ea Merge pull request #3006 from baishaofei/unstable
fix linux compile Error zmalloc.c:109: error: invalid lvalue in unary `&'
2016-05-05 16:23:47 +02:00
Salvatore Sanfilippo
7b90815fc3 Merge pull request #3008 from badboy/fix-2911
Fix nanosecond conversion
2016-05-05 16:21:21 +02:00
antirez
02db338a82 redis-cli: don't free historyfile, is used later. 2016-05-05 13:58:06 +02:00
antirez
971e3c51b6 Cluster: make getNodeByQuery() responsible of -CLUSTERDOWN errors.
This fixes a bug introduced by d827dbf, and makes the code consistent
with the logic of always allowing, while the cluster is down, commands
that don't target any key.

As a side effect the code is also simpler now.
2016-05-05 11:33:43 +02:00
Salvatore Sanfilippo
330715afd8 Merge pull request #3039 from itamarhaber/patch-3
Fixes a typo in the comments
2016-05-05 10:15:17 +02:00
Salvatore Sanfilippo
a4df156872 Merge pull request #3077 from Palethorn/ipv6-redirect-parse
Fix for #3076 Reverse redirect address parse
2016-05-05 10:13:00 +02:00
antirez
c77b95fd01 Bind both IPv4 and IPv6 or exit with an error by default.
Thanks to @tushar2708 for the PR. I applied a slightly different fix.
Thanks to @cespare for reporting.

Close #3024
Close #3020
2016-05-05 10:02:42 +02:00
Chris Thunes
d827dbfda7 Ensure slots are rechecked on EXEC.
Fixes #2515.
2016-05-05 09:35:20 +02:00
Salvatore Sanfilippo
91b4966783 Merge pull request #3188 from therealbill/unstable
maxmemory_policy fix for #3187
2016-05-05 09:02:25 +02:00
Salvatore Sanfilippo
09153b9127 Merge pull request #3152 from be-hase/fix/check_open_slots
Fix redis-trib.rb
2016-05-05 08:56:28 +02:00
antirez
b632f7846b Minor redis-cli wording change in --help output. 2016-05-04 22:34:26 +02:00
antirez
995b9ffe07 Allow CONFIG GET during loading.
Thanks to @oranagra for the idea of allowing CONFIG GET during loading.
2016-05-04 15:45:45 +02:00
antirez
5500c51083 Command "r" flag removed from commands not accessing the key space.
Thanks to @oranagra for the hint about misplaced 'r' flags.
2016-05-04 15:42:33 +02:00
antirez
840ac20855 DEBUG command self documentation. 2016-05-04 12:45:55 +02:00
Salvatore Sanfilippo
b5352eea51 Merge pull request #3191 from oranagra/minor_fix
Minor fixes found during merge and code review
2016-05-04 09:11:36 +02:00
antirez
2c22f59c3f Reply with error on negative geo radius.
Thanks to @tidwall for reporting.
Close #3194.
2016-05-04 09:00:32 +02:00
antirez
4fdde78c72 New masters with slots are now targets of migration if others are.
This fixes issue #3043.

Before this fix, after a complete resharding of a master slots
to other nodes, the master remains empty and the slaves migrate away
to other masters with non-zero nodes. However the old master now empty,
is no longer considered a target for migration, because the system has
no way to tell it had slaves in the past.

This fix leaves the algorithm used in the past untouched, but adds a
new rule. When a new or old master which is empty and without slaves,
are assigend with their first slot, if other masters in the cluster have
slaves, they are automatically considered to be targets for replicas
migration.
2016-05-02 18:37:30 +02:00
Oran Agra
5e3880a492 various cleanups and minor fixes 2016-04-25 16:49:57 +03:00
Oran Agra
6ed8c28230 dict.c minor optimization 2016-04-25 16:48:25 +03:00
Oran Agra
7b52ef1da2 networking.c minor optimization 2016-04-25 16:48:09 +03:00
Oran Agra
f8909a2579 add DEBUG JEMALLC PURGE and JEMALLOC INFO cleanup 2016-04-25 16:47:42 +03:00
Oran Agra
7ba90225a0 fix small issues in redis 3.2 2016-04-25 14:19:28 +03:00
Oran Agra
b554895715 additional fix to issue #2948 2016-04-25 14:18:40 +03:00
therealbill
14086a46ca fix for #3187
I've renamed maxmemoryToString to evictPolicyToString since that is
more accurate (and easier to mentally connect with the correct data), as
well as updated the function to user server.maxmemory_policy rather than
server.maxmemory. Now with a default config it is actually returning
the correct policy rather than volatile-lru.
2016-04-22 10:43:48 -05:00
Damian Janowski
0b4bb502a2 Fix ZINCRBY return value. 2016-04-18 00:35:54 -03:00
antirez
dda0f37f11 ZREM refactored into proper API. 2016-04-15 15:20:57 +02:00
antirez
6f926c3e83 ZRANK refactored into proper API. 2016-04-15 12:47:03 +02:00
antirez
b73c7af0f4 zsetAdd() API exposed into server.h. 2016-04-14 16:00:08 +02:00
antirez
b1f181a736 ZADD refactored into a proper API. 2016-04-14 12:49:40 +02:00
antirez
e0eb5f6bbf redis-cli preferences and rc file support. 2016-04-13 14:20:41 +02:00
antirez
70b3314141 redis-cli help.h updated. 2016-04-13 12:35:18 +02:00
antirez
d1ddf7e958 redis-cli hints. 2016-04-13 12:34:14 +02:00
antirez
b9feef9ae8 ae.c: Fix delay until next timer event.
This fix was written by Anthony LaTorre.
The old code mis-calculated the amount of time to wait till next event.
2016-04-04 14:13:46 +02:00
antirez
ace780c002 ae.c: comment to explain why we have a useless maxId check. 2016-04-04 12:24:13 +02:00
antirez
67b70a1813 Fix ae.c to avoid timers infinite loop.
This fix was suggested by Anthony LaTorre, that provided also a good
test case that was used to verify the fix.

The problem with the old implementation is that, the time returned by
a timer event (that is the time after it want to run again) is added
to the event *start time*. So if the event takes, in order to run, more
than the time it says it want to be scheduled again for running, an
infinite loop is triggered.
2016-04-04 08:50:58 +02:00
Ryosuke Hasebe
cad9ea5c68 fix variable 2016-03-30 23:09:36 +09:00
Ryosuke Hasebe
d5aa7e2abe fix check_open_slots 2016-03-30 21:56:22 +09:00
antirez
fc843784c3 BITFIELD: Farest bit set is offset+bits-1. Off by one error fixed. 2016-03-02 16:20:28 +01:00
antirez
fe64960ad5 More BITFIELD fixes. Overflow conditional simplified.
See issue #3114.
2016-03-02 15:13:45 +01:00
Salvatore Sanfilippo
235f55344b Merge pull request #3118 from sunheehnus/bitfield-fix-minor-bug
bitops/bitfield: fix length, overflow condition and *sign
2016-03-02 15:12:38 +01:00
Sun He
93cc8baf1a bitops/bitfield: fix length, overflow condition and *sign 2016-03-02 18:11:30 +08:00
antirez
e85d6f22cf Fix INFO commandstats reporting when argv is rewritten.
We want to report the original command in the stats, for example GEOADD,
even when what is actually executed is the ZADD implementation.
2016-03-02 08:56:50 +01:00
antirez
32289d5719 BITFIELD: refactoring & fix of retval on FAIL. 2016-02-29 09:08:46 +01:00
antirez
11745e0981 BITFIELD: Fix #<index> form parsing. 2016-02-26 15:53:29 +01:00
antirez
2800d090a7 BITFIELD: Support #<index> offsets form. 2016-02-26 15:16:24 +01:00
antirez
70af626d61 BITFIELD command initial implementation.
The new bitfield command is an extension to the Redis bit operations,
where not just single bit operations are performed, but the array of
bits composing a string, can be addressed at random, not aligned
offsets, with any width unsigned and signed integers like u8, s5, u10
(up to 64 bit signed integers and 63 bit unsigned integers).

The BITFIELD command supports subcommands that can SET, GET, or INCRBY
those arbitrary bit counters, with multiple overflow semantics.

Trivial and credits:

A similar command was imagined a few times in the past, but for
some reason looked a bit far fetched or not well specified.
Finally the command was proposed again in a clear form by
Yoav Steinberg from Redis Labs, that proposed a set of commands on
arbitrary sized integers stored at bit offsets.

Starting from this proposal I wrote an initial specification of a single
command with sub-commands similar to what Yoav envisioned, using short
names for types definitions, and adding control on the overflow.

This commit is the resulting implementation.

Examples:

    BITFIELD mykey OVERFLOW wrap INCRBY i2 10 -1 GET i2 10
2016-02-26 15:00:19 +01:00
Itamar Haber
b5149f0868 Eliminates engineers near the equator & prime meridian 2016-02-18 15:11:30 -08:00
Itamar Haber
41030ae2de Fixes a typo in a comment 2016-02-18 15:01:34 -08:00
Itamar Haber
4e9c3027b1 Adjusts accuracy for GEODIST 2016-02-18 15:00:39 -08:00
antirez
cf42c48adc addReplyHumanLongDouble() API added.
Send a long double or double as a bulk reply, in a human friendly
format.
2016-02-18 22:08:50 +01:00
antirez
bb75ecddfd New options for GEORADIUS: STORE and STOREDIST.
Related to issue #3019.
2016-02-18 10:24:16 +01:00
antirez
b0ec22f948 Include full paths on RDB/AOF files errors.
Close #3086.
2016-02-15 16:15:01 +01:00
David Cavar
c30ffaab05 Reverse redirect address parse
Fix issue in case the redirect address is in ipv6 format. Parse from behind to extract last part of the response which represents actual port.
2016-02-09 15:04:42 +01:00
Itamar Haber
31a70a8bcf Fixes a typo 2016-02-03 11:04:09 -08:00
Itamar Haber
68e779f34b Adds keyspace notifications for lrem 2016-02-02 09:58:19 -08:00
antirez
cbcffed907 Cluster: redis-trib: support @busport format in ClusterNode. 2016-02-02 08:27:36 +01:00
antirez
b841f3ad1a Cluster: store busport with different separator in CLUSTER NODES.
We need to be able to correctly parse the node address in the case of
IPv6 addresses.
2016-02-02 08:20:04 +01:00
antirez
92b9de2417 Cluster announce: WIP, allow building again. 2016-02-01 18:16:25 +01:00
antirez
e27b9b1cec Merge branch 'cluster-docker' into unstable 2016-02-01 18:01:22 +01:00
antirez
cdbe8a6ae1 Typo ASII -> ASCII fixed in comment. 2016-01-29 12:08:10 +01:00
antirez
c285862621 Cluster: include node IDs in SLOTS output.
CLUSTER SLOTS now includes IDs in the nodes description associated with
a given slot range. Certain client libraries implementations need a way
to reference a node in an unique way, so they were relying on CLUSTER
NODES, that is not a stable API and may change frequently depending on
Redis Cluster future requirements.
2016-01-29 12:00:40 +01:00