Commit Graph

3681 Commits

Author SHA1 Message Date
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 1189a4eae6.

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