Commit Graph

2552 Commits

Author SHA1 Message Date
antirez 0823e48fb9 Support for all the redis.conf fields in CONFIG GET. config.c refactored a bit. 2012-03-08 12:14:23 +01:00
antirez 91d664d6ce run_id added to INFO output.
The Run ID is a field that identifies a single execution of the Redis
server. It can be useful for many purposes as it makes easy to detect if
the instance we are talking about is the same, or if it is a different
one or was rebooted. An application of run_id will be in the partial
synchronization of replication, where a slave may request a partial sync
from a given offset only if it is talking with the same master. Another
application is in failover and monitoring scripts.
2012-03-08 10:13:36 +01:00
antirez 44f508f1a8 clusterGetRandomName() generalized into getRandomHexChars() so that we can use it for the run_id field as well. 2012-03-08 10:08:44 +01:00
antirez 4d3bbf3590 By default Redis refuses writes with an error if the latest BGSAVE failed (and at least one save point is configured). However people having good monitoring systems may prefer a server that continues to work, since they are notified that there are problems by their monitoring systems. This commit implements the ability to turn the feature on or off via redis.conf and CONFIG SET. 2012-03-07 18:02:26 +01:00
antirez c25e7eafef Refuse writes if can't persist on disk.
Redis now refuses accepting write queries if RDB persistence is
configured, but RDB snapshots can't be generated for some reason.
The status of the latest background save operation is now exposed
in the INFO output as well. This fixes issue #90.
2012-03-07 13:05:53 +01:00
antirez e31b615e62 Better MONITOR output, now includes client ip:port or the lua string if the command was executed by the scripting engine. 2012-03-07 12:12:15 +01:00
antirez 7b845b6228 anetPeerToString() automatically populates ip/port with something that may be provided to the user as output in case of errors. 2012-03-07 11:30:30 +01:00
antirez 9494f1f15b TIME command. 2012-03-07 10:38:01 +01:00
antirez 60893c6cc6 redis-cli: CSV output added, used for the --slave mode. 2012-02-29 17:43:06 +01:00
antirez b8283ab218 Initial implementation of redis-cli --slave support. 2012-02-29 17:10:21 +01:00
antirez a950a84303 Ping the slave using the standard protocol instead of the inline one. 2012-02-29 16:33:54 +01:00
antirez c1db214eeb Better implementation for BRPOP/BLPOP in the non blocking case. 2012-02-29 14:41:57 +01:00
antirez cd8bdea31b lpush arguments vector rewrite modified for more speed and to memory leak removal. 2012-02-29 13:38:30 +01:00
antirez b67feecacd Version bumped to 2.9.5 2012-02-29 00:54:52 +01:00
antirez 78d6a22dc3 Better system for additional commands replication.
The new code uses a more generic data structure to describe redis operations.
The new design allows for multiple alsoPropagate() calls within the scope of a
single command, that is useful in different contexts. For instance there
when there are multiple clients doing BRPOPLPUSH against the same list,
and a variadic LPUSH is performed against this list, the blocked clients
will both be served, and we should correctly replicate multiple LPUSH
commands after the replication of the current command.
2012-02-29 00:46:50 +01:00
antirez eeb34eff52 Added a new API to replicate an additional command after the replication of the currently executed command, in order to propagte the LPUSH originating from RPOPLPUSH and indirectly by BRPOPLPUSH. 2012-02-28 18:03:08 +01:00
antirez d8b1228bf6 propagate() prototype added to redis.h 2012-02-28 16:20:41 +01:00
antirez edba65d090 Var renamed into pushGenericCommand() to better reflect what it means. 2012-02-28 16:17:55 +01:00
antirez ad08d059d0 Added command propagation API. 2012-02-28 16:17:00 +01:00
Salvatore Sanfilippo 64ef44d568 Merge pull request #362 from fawek/mac-build-fix
Fix the build on Mac OS X, where features.h is non-existent
2012-02-26 07:18:43 -08:00
Jakub Wieczorek 1d6628c088 Fix the build on Mac OS X, where features.h is non-existent 2012-02-26 15:13:05 +01:00
Premysl Hruby 80ff1fc6d0 use gcc sync builtins for memory counter when possible 2012-02-26 11:45:52 +01:00
Premysl Hruby 59132e4212 fix redis-benchmark memory leak 2012-02-26 10:01:27 +01:00
antirez 36e6637dfd lua_cmsgpack.c added 2012-02-24 15:46:25 +01:00
antirez 63505e0b59 Lua_cmsgpack added to Redis scripting. 2012-02-24 15:45:16 +01:00
antirez f6da155bde redis-benchmark: a few fixes to pipelining implementation. 2012-02-23 15:39:26 +01:00
antirez b9474282f8 redis-benchmark: Initial support for pipelining. 2012-02-23 15:02:43 +01:00
antirez 62c394e219 unstable version called 2.9.4 2012-02-22 17:44:18 +01:00
antirez 92e984dbcd The universe is 80 columns wide, accept it. 2012-02-22 17:22:40 +01:00
Salvatore Sanfilippo dbb27a0a90 Merge pull request #304 from bradvoth/unstable
Simple install script changes
2012-02-22 08:19:54 -08:00
antirez a5bd08487f Fix for issue #306, thanks to tchajed (on github) for the pull request. The original patch was reworked a bit. 2012-02-22 16:07:06 +01:00
antirez 4eb3b3e970 Redis-cli should accept help command even if there is no connection to the server. 2012-02-22 15:16:11 +01:00
antirez fcdeb98568 even less false positive on obuf-limits test. 2012-02-22 11:25:30 +01:00
antirez 467d703ead Merge remote-tracking branch 'origin/unstable' into unstable 2012-02-22 09:52:29 +01:00
antirez feb282883b zzlIsInRange() now is capable of handling empty sorted sets that may end inside the data set when loading very old RDB files produced by early-stage versions of Redis. 2012-02-22 09:52:10 +01:00
Salvatore Sanfilippo 30c06ae6b4 Merge pull request #347 from pietern/unstable-segv
Force SIGSEGV without HAVE_BACKTRACE (unstable)
2012-02-21 10:29:55 -08:00
Pieter Noordhuis ca2344f991 Solaris has backtrace(3) 2012-02-21 10:20:28 -08:00
Pieter Noordhuis 57be47758e Also force SIGSEGV without HAVE_BACKTRACE 2012-02-21 10:20:01 -08:00
antirez 7c96b467c1 Fixed undefined behavior in *INCR style functions overflow detection. Sorry clang! 2012-02-21 18:26:11 +01:00
antirez fe7be46025 bzero -> memset 2012-02-21 10:06:04 +01:00
antirez ad0df18fdc Fix 32bit build of hiredis 2012-02-19 20:49:20 +01:00
antirez 8e65b6a33d Applied a few modifications to hiredis to tune it for speed (redis-benchmark) and ability to read more deeply nested replies (redis-cli). 2012-02-19 20:33:59 +01:00
antirez b66e5add82 The hiredis lib shipped with Redis was updated to latest version. 2012-02-19 20:26:50 +01:00
Pieter Noordhuis cb598cdd59 Don't expire keys when loading an RDB after a SYNC
The cron is responsible for expiring keys. When keys are expired at
load time, it is possible that the snapshot of a master node gets
modified. This can in turn lead to inconsistencies in the data set.

A more concrete example of this behavior follows. A user reported a
slave that would show an monotonically increase input buffer length,
shortly after completing a SYNC. Also, `INFO` output showed a single
blocked client, which could only be the master link. Investigation
showed that indeed the `BRPOP` command was fed by the master. This
command can only end up in the stream of write operations when it did
NOT block, and effectively executed `RPOP`. However, when the key
involved in the `BRPOP` is expired BEFORE the command is executed, the
client executing it will block. The client in this case, is the master
link.
2012-02-16 17:21:13 +01:00
antirez d347348109 Issue #330 regression test. 2012-02-16 16:13:40 +01:00
antirez a400a9b2d7 Now HINCRBY can detect overflows too. Fix for issue #330. 2012-02-16 16:09:08 +01:00
antirez 6e09ad1c15 Return ASAP from checkClientOutputBufferLimits() if c->reply_bytes is zero. 2012-02-16 12:20:56 +01:00
antirez 48a32944e6 Merge branch 'issue327' into unstable 2012-02-16 09:40:27 +01:00
antirez 3b0600c777 Add stdint.h in endianconv.h to fix issue #336. 2012-02-15 12:21:04 +01:00
antirez 4a701b3801 redis-check-aof is now large files safe also on 32 bit systems. 2012-02-14 19:57:51 +01:00