Commit Graph

3524 Commits

Author SHA1 Message Date
Pieter Noordhuis
339b9dc2d2 Put duration in parenthesis 2010-11-03 17:07:10 +01:00
Pieter Noordhuis
cfcd5d6d43 Add proper numbering for multi bulk replies in redis-cli 2010-11-03 17:03:54 +01:00
Pieter Noordhuis
7fc4ce13ed Use hiredis from redis-cli 2010-11-03 16:09:38 +01:00
antirez
8d3e063a0a added support for command renaming/suppression in redis.conf 2010-11-03 12:14:36 +01:00
antirez
1b1f47c915 command lookup process turned into a much more flexible and probably faster hash table 2010-11-03 11:23:59 +01:00
antirez
297e77c6ab Now it is possible to use quoted strings in the redis.conf file accordingly to the sdssplitargs() function capabilities. 2010-11-03 10:31:19 +01:00
antirez
0a546fc017 Merge remote branch 'pietern/unixsocket' 2010-11-02 23:47:52 +01:00
antirez
539fb43820 RSS information in INFO output 2010-11-02 22:47:10 +01:00
antirez
7d0966a6b7 Do not update the LRU info on key lookup when we have a saving child. With this trivial change the additional memory used while saving with a background child in presence of many read operations is zero. 2010-11-02 18:59:48 +01:00
antirez
3ce014c766 redis-cli in interactive mode now prints the time elapsed of the operation performed took more than half a second. 2010-11-02 18:08:30 +01:00
antirez
b5b22da8e6 Revert "Function to compute RSS memory usage in a fast way, suitable to be called inside keys eviction loops"
This reverts commit 7d47ecd543.
2010-11-02 12:10:41 +01:00
antirez
ca734d17ad Revert "Now maxmemory, VM, and everything else uses the fast RSS memory used estimation instead of raw memory reported by zmalloc(). This means that setting maxmemory to 2GB will really have the effect of using up to 2GB of memory."
This reverts commit a3e60027e7.
2010-11-02 12:09:59 +01:00
antirez
a3e60027e7 Now maxmemory, VM, and everything else uses the fast RSS memory used estimation instead of raw memory reported by zmalloc(). This means that setting maxmemory to 2GB will really have the effect of using up to 2GB of memory. 2010-11-02 11:50:55 +01:00
antirez
7d47ecd543 Function to compute RSS memory usage in a fast way, suitable to be called inside keys eviction loops 2010-11-02 11:40:35 +01:00
antirez
10c12171cc removed a number of stupid compilation warnings on Linux 2010-11-02 11:15:09 +01:00
antirez
92e282288f zmalloc functions to get RSS and fragmentation refactored into two separated functions 2010-11-02 10:51:09 +01:00
antirez
21dbc6499a merge conflict resolved 2010-10-28 22:59:47 +02:00
Pieter Noordhuis
4794d88f15 Rewrite comment that was no longer valid 2010-10-28 16:59:05 +01:00
Pieter Noordhuis
a3a323e0e5 When REDIS_CLOSE_AFTER_REPLY is set, there may never be new replies 2010-10-28 16:52:23 +01:00
Pieter Noordhuis
5e78edb350 Unify two client flags that mean the same 2010-10-28 15:07:45 +01:00
antirez
73abd0a9d2 Merge remote branch 'remotes/pietern/zrevrangebyscore' 2010-10-28 14:12:25 +02:00
antirez
1de98301f6 removed useless spaces from DEBUG OBJECT output 2010-10-27 17:11:17 +02:00
Pieter Noordhuis
e584d82fec Return error to client on wrong type for HMGET 2010-10-26 12:33:17 +02:00
antirez
244201f6ba added a missing prototype from syncio.c in redis.h 2010-10-25 10:54:37 +02:00
antirez
d08fac3eb9 more generally usable i/o functions moved to syncio.c 2010-10-25 10:53:28 +02:00
antirez
19e61097c5 synchronous I/O networking functions originally used just for replication refactored in a file as generally useful, they are used in the cluster branch for MIGRATE. 2010-10-24 16:22:52 +02:00
Pieter Noordhuis
d94ac406ba Exclusively use either tcmalloc or OSX's native malloc_size() 2010-10-23 10:18:48 +02:00
Pieter Noordhuis
7cdc98b630 Don't use prefix when malloc_size() can be called
Also, use tcmalloc functions explicitly via macros to prevent symbol
lookups to resolve to native malloc/free on OSX.
2010-10-23 09:59:28 +02:00
antirez
da47440d44 Make sure to reset the signal handler and deliver again the original crashing signal when dumping the stack trace. This will allow to dump the core if core dumping is enabled. 2010-10-22 23:30:48 +02:00
Robey Pointer
d8a717fb1a if server.saveparamslen is not set, don't save the DB on exit. 2010-10-22 23:17:28 +02:00
antirez
1a587ff843 Makefile typo fixed for tcmalloc option 2010-10-22 00:16:32 +02:00
antirez
13b3715925 reports if tcmalloc is in used in INFO output 2010-10-22 00:10:17 +02:00
antirez
0a802bd7a0 support for compiling with tcmalloc 2010-10-22 00:06:44 +02:00
antirez
75fcab8c23 version bumped to 2.1.5 2010-10-21 17:55:44 +02:00
Pieter Noordhuis
a375b077cc Skip object encoding where it doesn't make sense 2010-10-17 18:13:31 +02:00
Pieter Noordhuis
19408d83a4 Object encoding in hash function is done by a more specific function 2010-10-17 17:46:55 +02:00
Pieter Noordhuis
33aba595b0 Removed unused command flags 2010-10-17 17:31:40 +02:00
Pieter Noordhuis
75b41de8ca Convert objects in the command procs instead of the protocol code 2010-10-17 17:21:41 +02:00
Pieter Noordhuis
b19c33d48a Prevent clients from making too large multibulk requests 2010-10-15 19:15:38 +02:00
Pieter Noordhuis
ea5b70924d Add benchmark for MSET 2010-10-15 18:17:06 +02:00
antirez
13a49af44b prevent small integer sharing when maxmemory is active. So every object will use a private LRU field and the LRU algorithm can work well 2010-10-15 18:04:05 +02:00
Pieter Noordhuis
1aa608fc68 Change protocol from bulk to inline in redis-benchmark 2010-10-15 17:34:20 +02:00
Pieter Noordhuis
9da6caac4e Don't reset the client when processCommand returns REDIS_ERR 2010-10-15 17:27:05 +02:00
Pieter Noordhuis
cd8788f26d Refactor request parsing code for efficiency 2010-10-15 15:44:55 +02:00
antirez
9f8ded8ced CONFIG RESETSTAT no longer resets the server uptime. Now keyspace hits/misses are reset as well. 2010-10-15 12:29:05 +02:00
antirez
95506e4611 minor aesthetic change 2010-10-15 12:22:48 +02:00
antirez
53eeeaff08 added keyspace_hits and keyspace_misses fields in INFO output 2010-10-15 12:19:21 +02:00
antirez
a36879293d maxmemory-samples implemented in CONFIG command and configuration file 2010-10-15 11:57:38 +02:00
antirez
670bf2fd36 Don't increment dirty on expireIfNeeded() as natural expires are not considered database changes. This will avoid useless read-only commands in the AOF file as a result of, for instance, a GET operation triggering an expirIfNeeded() call resulting in an expired key removed. 2010-10-15 11:29:03 +02:00
antirez
b33ef40105 Merge remote branch 'pietern/ziplist-regression' 2010-10-14 21:23:01 +02:00
antirez
165346ca29 implemented different algorithms for maxmemory 2010-10-14 21:22:21 +02:00
Pieter Noordhuis
306c6a02e3 Replace ziplist stresser and fix regression 2010-10-14 21:11:42 +02:00
antirez
ef59a8bc9e Object approximated LRU algorithm enhanced / fixed / refactored. This is used for the VM currently but will soon be used for maxmemory expiring. 2010-10-14 13:52:58 +02:00
Pieter Noordhuis
7236fdb22f Return error when min and/or max in the sorted set range spec is not a double 2010-10-13 21:59:24 +02:00
Pieter Noordhuis
91504b6cbe Make ZREMRANGEBYSCORE accept the same range spec as ZRANGEBYSCORE
This allows to use inclusive/exclusive bounds for min and max when
deleting a range of scores from a sorted set.
2010-10-13 21:43:58 +02:00
Pieter Noordhuis
26f3388d27 Merge branch 'master' into zrevrangebyscore 2010-10-13 20:29:50 +02:00
Pieter Noordhuis
b04ce2a35c Merge master with resolved conflict in src/redis-cli.c 2010-10-13 18:55:46 +02:00
Pieter Noordhuis
4fe83b554a sockaddr_un.sun_path appears to never hold anything after accept() 2010-10-13 18:50:07 +02:00
Pieter Noordhuis
ab17b909fe Use different accept handlers for TCP and unix socket connections 2010-10-13 18:34:24 +02:00
Pieter Noordhuis
893819801d Remove disabling TCP with port -1 2010-10-13 17:18:58 +02:00
Pieter Noordhuis
5d10923f7b Rename variable sockpath to unixsocket 2010-10-13 17:17:56 +02:00
Pieter Noordhuis
704bd093be Move creating socket/bind+listen on socket to separate functions
Thanks to tav (http://github.com/tav) for original code.
2010-10-13 16:47:22 +02:00
Pieter Noordhuis
941c9fa285 Return OK on QUIT 2010-10-13 11:25:40 +02:00
Pieter Noordhuis
9f1ae9abee Allow to specify which specific test files to run 2010-10-13 09:26:44 +02:00
antirez
b4f2e412d0 free memory if the maxmemory parameter is reduced via CONFIG SET 2010-10-11 16:46:21 +02:00
antirez
1dd10ca233 maxmemory fixed, we now try to release memory just before we check for the memory limit. Before fixing there was code between the attempt to free memory and the check for memory limits, and this code could result into allocations going again after the memory limit. 2010-10-11 13:05:09 +02:00
antirez
144a5e72f2 fixed an alignment problem with time_t is 32 bit, long is 64 bit, and arch is sparc or any other where unaligned accesses will result to sigbus 2010-10-07 16:21:35 +02:00
antirez
fdc0bde935 minor typo fixed, reported by Thomas Bassetto 2010-10-07 12:49:14 +02:00
antirez
e43505d6e9 Merge remote branch 'pietern/ziplist-fix' 2010-09-24 01:15:16 +02:00
Pieter Noordhuis
b0d605c1d6 Add regression test and fix for >255 byte string entries 2010-09-23 22:04:19 +02:00
antirez
963238f713 more tests for sds.c 2010-09-23 16:39:02 +02:00
antirez
136cf53f22 minimal C test framework + a first example sds.c tests 2010-09-23 16:05:17 +02:00
Pieter Noordhuis
56e52b69fe Update rdb.c to properly work with new memory strategy for sorted sets 2010-09-22 18:07:52 +02:00
antirez
50a9fad5d5 two leaks fixed 2010-09-22 17:49:04 +02:00
antirez
beb7756dcb error generation format reverted to the new style after merge 2010-09-22 16:10:13 +02:00
antirez
b882056c93 Merge remote branch 'pietern/zset-mem' 2010-09-22 16:09:33 +02:00
antirez
5ca2f0c498 preventive conflict resolution to merge pietern/zset-mem 2010-09-22 16:09:30 +02:00
antirez
5171777bf1 Merge remote branch 'pietern/ziplist-eff' 2010-09-22 12:59:25 +02:00
antirez
a4f3f93b90 new parsing code bugfixing 2010-09-17 16:05:01 +02:00
antirez
34a719d250 try to parse the request in a smarter way to gain speed... work in progress 2010-09-17 15:26:07 +02:00
Pieter Noordhuis
d433ebc681 Finished code for sorted set memory efficiency 2010-09-16 15:42:36 +02:00
Pieter Noordhuis
25bb8a4452 Add ZREVRANGEBYSCORE and refactor Z*RANGEBYSCORE 2010-09-16 14:38:07 +02:00
Pieter Noordhuis
192fc3376a Merge branch 'zset-mem' into zrevrangebyscore 2010-09-16 14:32:30 +02:00
antirez
2b00385d51 Added used CPU statistics in INFO output, obtained via getrusage() 2010-09-16 13:28:58 +02:00
antirez
4c2e506a39 modified a bit addReply() to play better with copy on write now that we have a static buffer. Changed the name of a function from _ensureFileEvent() to _installWriteEvent(). 2010-09-16 13:08:40 +02:00
antirez
83f39c7ab2 Merge remote branch 'pietern/networking-perf' 2010-09-16 12:02:18 +02:00
Pieter Noordhuis
f335779240 Static buffer in client struct has a constant size 2010-09-16 11:59:53 +02:00
antirez
89f9f83769 Merge remote branch 'pietern/networking-perf' 2010-09-16 11:38:40 +02:00
antirez
3856f14759 This should fix Issue 332: when there is a background process saving we still allow the hash tables to grow, but only when a critical treshold is reached. Formerly we prevented the resize at all triggering pathological O(N) behavior. Also there is a fix for the statistics in INFO about the number of keys expired 2010-09-15 14:09:41 +02:00
antirez
412e457c27 fixed typo in the latest commit 2010-09-14 15:18:18 +02:00
antirez
1d18f50458 Advertise the existence of redis-check dump --fix when logging an error about corrupted AOF file 2010-09-14 15:09:37 +02:00
Pedro Melo
0997b4119d Fixed missed use of INSTALL_TOP
Thanks to sylr@github

Signed-off-by: Pedro Melo <melo@simplicidade.org>
2010-09-13 16:50:57 +01:00
Pedro Melo
e984050fb9 Make sure INSTALL_TOP exists before we install to it
Signed-off-by: Pedro Melo <melo@simplicidade.org>
2010-09-13 16:11:55 +01:00
Pedro Melo
e13865033d Rename INSTALL_TOP to PREFIX; update documentation
Signed-off-by: Pedro Melo <melo@simplicidade.org>
2010-09-13 16:09:11 +01:00
antirez
bc63407be6 redis-cli does no longer try to auto detect if it is used inside a pipe. To read last argument from stdandard input there is to use the -x option. This will make it playing better inside cron scripts and in general when stdin is hacked. 2010-09-09 16:38:10 +02:00
antirez
da14590bd9 Fix re-enabled again, I forgot to check if VM was enabled before calling handleClientsBlockedOnSwappedKey() 2010-09-08 13:47:28 +02:00
antirez
155fb4b45e latest fix reverted, there is some problem reported by the CI test 2010-09-08 13:45:51 +02:00
antirez
7f00cd2264 Fixed a race condition in VM happening when a key was deleted while there was a client waiting for this key to be resumed from swap to memory. The client would hang forever. 2010-09-08 13:26:16 +02:00
Pieter Noordhuis
106bd87a3c Fix bug where the client is not present in server.clients when free'ing it
When creating the readable event results in an error (this happens when
the server hits OS limits), the client was not added to the list of
clients when freeClient was called. This results in an assertion error.
It is better to check this condition first and free the client
immediately when this condition occurs. Port of 00a90feb.
2010-09-07 10:25:34 +02:00
Pieter Noordhuis
84403fe7c1 Allow a random seed argument for the ziplist test binary 2010-09-07 00:08:42 +02:00
Pieter Noordhuis
169d2ef1e0 Fix updating the prevlen field of consecutive entries
In the condition where the prevlen field of the next entry on insert
and delete operations needs more bytes to be properly encoded, the next
entry also needs to be updated with a new prevlen. This patch makes sure
that this effect cascades throughout the ziplist.
2010-09-07 00:04:57 +02:00
antirez
abe18d0e00 Fix for solaris compilation bug Issue 325 2010-09-06 10:12:44 +02:00
Pieter Noordhuis
9e83ac06ef Merge branch 'master' into networking-perf
Resolved conflict in src/db.c and changed adding an error to the reply
in blockingPopGenericCommand to use the new API.
2010-09-03 16:44:50 +02:00
antirez
556bdfbab9 added some comment and changed coding style for fix for 237 2010-09-03 10:24:18 +02:00
Anko painting
b435f64510 fix for issue 237 2010-09-02 21:13:27 -07:00
Pieter Noordhuis
49128f0b9d Fix bug in gluing a deferred multi bulk length to the next reply chunk 2010-09-02 23:34:41 +02:00
Pieter Noordhuis
3ab203762f Use specialized function to add status and error replies 2010-09-02 23:33:06 +02:00
Pieter Noordhuis
60361e5aac Add sds function that can be called with va_list 2010-09-02 21:00:15 +02:00
Pieter Noordhuis
36c19d03e0 Changed reply buildup internals 2010-09-02 19:52:04 +02:00
Pieter Noordhuis
4a7893ca9c Removed unneeded function 2010-09-02 19:52:04 +02:00
Pieter Noordhuis
b70d355521 Use existing reply functions where possible 2010-09-02 19:52:04 +02:00
Pieter Noordhuis
cd76bb651d Free the sds in addReplySds when it cannot be added to the reply 2010-09-02 19:52:04 +02:00
Pieter Noordhuis
2403fc9fde Intialize bufpos in the fake client 2010-09-02 19:52:04 +02:00
Pieter Noordhuis
0537e7bf80 Use specialized function to add multi bulk reply length 2010-09-02 12:51:14 +02:00
antirez
73db2acc37 memory fragmentation reporting in INFO also added for Mac OS X 2010-09-02 10:57:58 +02:00
antirez
eddb388ef9 memory fragmentation ratio in INFO output 2010-09-02 10:34:39 +02:00
antirez
a047bf52a4 fixed a few harmless warnings complining on Linux 2010-09-01 18:31:30 +02:00
antirez
dbebd395eb Version is now 2.1.4 -- AKA 2.2-alpha1 2010-08-31 18:34:34 +02:00
antirez
ec96ef47a6 Merge remote branch 'pietern/issue-300' 2010-08-31 17:39:06 +02:00
Pieter Noordhuis
f85202c3dc Fix compilation errors and add warning for 32-bit platforms 2010-08-31 13:06:26 +02:00
antirez
f7f12a606c resolved conflict merging pietern/bpop-timeout 2010-08-31 11:23:12 +02:00
Pieter Noordhuis
7b30cc3a7b Fix issue 300 by upgrading variable types to 64-bit 2010-08-31 10:21:35 +02:00
Pieter Noordhuis
57b0738011 Don't build a reply when replaying the AOF 2010-08-30 16:51:39 +02:00
Pieter Noordhuis
b301c1fc2b Wrapper for adding unknown multi bulk length to reply list 2010-08-30 16:39:14 +02:00
Pieter Noordhuis
834ef78e27 Refactor reply buildup for speed on large multi bulk replies 2010-08-30 16:39:08 +02:00
antirez
fb92ecece7 BLPOP inside MULTI/EXEC block no longer crashes, instead if the list is empty the behavior is like if the timeout is reached. This fixes Issue 285 2010-08-30 16:31:03 +02:00
antirez
8079656a8e Now redis-cli replies to help showing some basic usage information (Issue 291) 2010-08-30 15:57:03 +02:00
antirez
93b2a7718e It is now possible to use authentication and DB selection options at the same time in redis-cli (Issue 298) 2010-08-30 15:36:13 +02:00
antirez
e0e1c19520 Fixed MONITOR mode and Issue 296 2010-08-30 11:51:45 +02:00
antirez
8fedd04dcc Makefile deps updated 2010-08-30 11:37:17 +02:00
Pieter Noordhuis
ed0dd55402 Show the current throughput while benchmarking 2010-08-30 11:25:02 +02:00
Pieter Noordhuis
36babc1e31 Refactor reply parsing code in redis-benchmark for efficiency 2010-08-30 11:14:54 +02:00
antirez
2f6b31c3bb Fix for a race in BGSAVE that may result in some data not being saved as soon as possible (when the configured saving triggers should fire). Also known as Issue 313, more details there in the google code issue. 2010-08-30 10:32:32 +02:00
antirez
e5f257c2b2 fix for the prev fix 2010-08-27 17:06:36 +02:00
antirez
c1ae36aea8 Fix for bug 312, yet to verify in a couple of minutes... 2010-08-27 17:04:26 +02:00
antirez
09252fc4f3 Fixed another instace of the Issue 173 2010-08-27 12:46:10 +02:00
antirez
357d36733d Fixed segfault in freeMemoryIfNeeded due to the fact that keys are now sds strings and not objects in the main hash table, thanks to Anthony Lauzon for spotting the bug and providing a patch. 2010-08-27 11:01:03 +02:00
antirez
2df84b7269 intset loading bug fixed 2010-08-26 19:10:40 +02:00
antirez
ec7e138926 test for intset integer encodability test and some small refactoring 2010-08-26 18:47:03 +02:00
antirez
23c64fe50d translated a few long logn into int64_t for correctness and to avoid compilation warnings as well 2010-08-26 18:11:26 +02:00
antirez
e4ecc93119 Version is now 2.1.3 2010-08-26 16:58:02 +02:00
Pieter Noordhuis
94364d53b4 Verify that the blocking pop timeout value is a non-negative integer 2010-08-26 14:05:14 +02:00
Pieter Noordhuis
2929ca9786 Fix parenthesis error on decrementing *argc 2010-08-26 13:18:44 +02:00
antirez
bad7d097e9 fixed a memory leak in the new Set code 2010-08-26 13:18:24 +02:00
antirez
5f19e8a4a5 computeObjectSwappability is now able to compute swappability for intset encoded sets 2010-08-26 12:28:53 +02:00
Pieter Noordhuis
740eee1cc6 Fix type that was not renamed and compiler warning 2010-08-26 12:13:51 +02:00
antirez
674492bceb removed a duplicated ERRNO checking that is useless at all 2010-08-26 12:10:16 +02:00
antirez
acc75bfd4f Merge remote branch 'pietern/intset-split' 2010-08-26 12:04:24 +02:00
Pieter Noordhuis
f9d5c4e33c Make the function intsetUpgrade self-contained 2010-08-26 11:22:58 +02:00
Pieter Noordhuis
76864d5626 Expand macro's to functions for readability 2010-08-26 11:06:30 +02:00
Pieter Noordhuis
b4b62c34db Use fstat to detect if stdin was redirected 2010-08-25 14:48:50 +02:00
Pieter Noordhuis
ae77016e57 Add a newline to tty output after every reply 2010-08-25 13:39:11 +02:00
Pieter Noordhuis
5d15b5207d Re-introduce the interactive field so we can reconnect in interactive mode 2010-08-25 13:09:22 +02:00
Pieter Noordhuis
4b93e5e267 Merge master and move argument splitting patch to sds.c 2010-08-25 13:08:43 +02:00
antirez
c0b3d42372 redis-cli now supports automatically reconnection in interactive mode 2010-08-24 18:39:34 +02:00
antirez
b37ca6edb1 Issue 179 fixed, now redis-cli is able to parse correctly multi bulk replies with elements that are errors 2010-08-24 18:08:09 +02:00
antirez
695fe87456 The pid file is now created only after the server is correctly initialied. It is also removed on sigterm and when the stack trace is produced after a sigbus or a sigsegv. This two changes should fix the Issue 175 2010-08-24 17:09:25 +02:00
antirez
b91d605a35 slave now detect lost connection during SYNC, fixing Issue 173 2010-08-24 16:25:00 +02:00
antirez
778b2210a9 slave with attached slaves now close the conection to all the slaves when the connection to the master is lost. Now a slave without a connected link to the master will refuse SYNC from other slaves. Enhanced the replication error reporting. All this will fix Issue 156 2010-08-24 16:04:13 +02:00
antirez
e452436a07 BLPOPping clients are no longer subject to connection timeouts, fixing issues 155 2010-08-24 12:10:59 +02:00
antirez
a679185aa5 sanity check for the bulk argument in protocol parsing code, fixing issue 146 2010-08-24 11:45:05 +02:00
antirez
c91abdcd07 Fixed overflow detection in argument to long convertion function in general, and in expire/ttl pairs specifically, addressing issue 54 2010-08-23 17:06:38 +02:00
Pieter Noordhuis
cb72d0f155 Rename iterator to setTypeIterator for consistency 2010-08-21 11:38:24 +02:00
Pieter Noordhuis
029e5577ff Make SORT use the hybrid set accessors to allow sorting intsets 2010-08-21 11:20:41 +02:00
Pieter Noordhuis
87c74dfaa8 Check if stroll return value was clamped 2010-08-20 13:42:42 +02:00
Pieter Noordhuis
aaada3f962 Merge branch 'master' into intset-split
Conflicts:
	src/Makefile
	src/t_set.c
2010-08-20 12:40:55 +02:00
Pieter Noordhuis
c470538142 Make ziplist schema more efficient for strings with length > 15 2010-08-13 19:29:22 +02:00
antirez
cbce517145 redis cli argument splitting is general and is now moved into the sds.c lib 2010-08-05 11:36:39 +02:00
Pieter Noordhuis
abb731e5b8 Deprecate starting interactive mode using the -i flag 2010-08-04 18:36:03 +02:00
Pieter Noordhuis
cf0c6b78f1 Set tty before going into interactive mode to get non-pretty output when
the commands are read from stdin.
2010-08-04 18:16:39 +02:00
Pieter Noordhuis
3a51bff035 Change output format for non-tty redis-cli execution 2010-08-04 17:46:56 +02:00
Pieter Noordhuis
123a10f7a5 Let the output mode depend on having a tty or not 2010-08-04 17:16:05 +02:00
Pieter Noordhuis
07242c0ccf Tests for redis-cli in non-interactive mode
Minor change in redis-cli output for the (multi-)bulk response but this
will be fixed in the next commit.
2010-08-04 17:02:13 +02:00
Pieter Noordhuis
0439d792c4 Add tests for quotation in an interactive redis-cli session
Patched redis-cli to abort on unexpected quotation. This caused
redis-cli to get into an infinite, memory-consuming loop.
2010-08-04 16:15:33 +02:00
Pieter Noordhuis
f2dd4769dd Tests for the interactive mode of redis-cli
Changed redis-cli to output the raw response for a bulk reply when it is
run in interactive mode instead of checking isatty.
2010-08-04 15:28:03 +02:00
Pieter Noordhuis
69ef89f2cf Reference zset score in zskiplistNode from dict entries
This avoids the extra allocation of sizeof(double) for storing the score
of a zset entry in the hash table. Saves sizeof(double) + malloc
overhead = approx. 16 bytes per zset entry.
2010-08-03 20:49:53 +02:00
Pieter Noordhuis
2159782b51 Use flexible array in zskiplistNode to reduce memory usage 2010-08-03 19:22:09 +02:00
antirez
1fb4e8def7 PERSIST: a fix and some basic test 2010-08-03 14:25:22 +02:00
antirez
a539d29ac5 PERSIST command implemented 2010-08-03 14:19:20 +02:00
Pieter Noordhuis
a5639e7dd9 Change initialization to allow listening on both a port and socket 2010-08-03 13:33:12 +02:00
antirez
0cf5b7b57c allow to set a new EXPIRE of an existing volatile key 2010-08-03 12:26:30 +02:00
antirez
c25a5d3b10 memory leak removed from expire propagation code 2010-08-02 21:37:39 +02:00
antirez
bcf2995c98 support for write operations against expiring keys, by master-controlled expiring in replication and AOF synthesizing DEL operations 2010-08-02 18:13:39 +02:00
Pieter Noordhuis
7e91f971f7 Add support for domain sockets to redis-cli 2010-08-01 23:06:00 +02:00
Pieter Noordhuis
c61e69257a Support for Redis to listen on a Unix socket 2010-08-01 22:55:24 +02:00
Pieter Noordhuis
673e1fb7e4 Change getDoubleFromObject to fail on NaN.
Return an error when the resulting value is not a number (NaN). Fix
ZUNIONSTORE/ZINTERSTORE to clean up when a weight argument is not a
double value.
2010-07-29 23:05:01 +02:00
Pieter Noordhuis
d9e28bcf00 Fix ZUNIONSTORE/ZINTERSTORE to never store a NaN score.
When +inf and -inf are added, the result is NaN. We don't want NaN
scores in a sorted set, so agreed on the result of this operation being
zero.
2010-07-29 23:03:11 +02:00
antirez
cbf7e1070a fix of the fix for the replication bug 2010-07-28 18:56:52 +02:00
antirez
8c1420ff2a Fixed a replication bug in ZINTERSTORE.
In order to trigger the bug what's needed is to call ZINTERSTORE
resulting into an empty set created, bug against a key that already
existed. The command was not propagated, so the replica ended with the
key that the master removed. Sequence of command to reproduce:

redis-cli hset 446 34 905
redis-cli hset 446 393 911
redis-cli zadd 966 0.085412045980529885 652
redis-cli zadd 645 0.25081839284432045 280
redis-cli zinterstore 446 2 966 645
2010-07-28 18:42:02 +02:00
antirez
6171250871 fixed a ziplist bug about encoding of integer values overflowing 64 bit 2010-07-27 15:26:08 +02:00
antirez
f99e660b44 malloc definition with deprecated attribute was duplicated, one removed 2010-07-27 14:30:02 +02:00
antirez
80091bbaac STRLEN command implemented 2010-07-27 10:09:26 +02:00
antirez
e0be2289e9 hash table example commented out in dict.c 2010-07-27 10:00:38 +02:00
antirez
b3aa6d712e use the function deprecated attribute if compiling with GCC to get warnings for malloc/free usages. We always want to use our zmalloc/zfree versions for memory usage tracking 2010-07-27 09:36:42 +02:00
Benjamin Kramer
399f2f401c Add zcalloc and use it where appropriate
calloc is more effecient than malloc+memset when the system uses mmap to
allocate memory. mmap always returns zeroed memory so the memset can be
avoided.  The threshold to use mmap is 16k in osx libc and 128k in bsd
libc and glibc. The kernel can lazily allocate the pages, this reduces
memory usage when we have a page table or hash table that is mostly
empty.

This change is most visible when you start a new redis instance with vm
enabled.  You'll see no increased memory usage no matter how big your
page table is.
2010-07-25 00:11:20 +02:00
Benjamin Kramer
d9dd352b36 Remove _dictAlloc and friends
zmalloc calls abort() so _dictPanic will never be called.
2010-07-24 23:10:42 +02:00
Benjamin Kramer
b1e0bd4b9b Reduce code duplication 2010-07-24 22:37:01 +02:00
antirez
230729617d don't open/close log file if log level is not matched 2010-07-22 23:31:40 +02:00
Pieter Noordhuis
c8a10631d1 fix rare condition where 'key' would already be destroyed while is was needed later on 2010-07-22 16:06:27 +02:00
antirez
2f996f0217 defensive programming: set o->ptr to NULL before freeing objects 2010-07-22 15:48:57 +02:00
antirez
e002ec6801 other shared objects where created in the I/O thread in createStringObjectFromLongLong. Fixed as well. 2010-07-22 14:48:45 +02:00
antirez
cdbea20afb minor typo fixed in a comment 2010-07-22 13:12:24 +02:00
antirez
0e5441d816 don't use object sharing inside I/O threads, as a fix for a well known instability of VM introduced with the new object sharing code 2010-07-22 13:08:02 +02:00
antirez
1a71fb9669 vm_blocked_clients count fixed in INFO, thanks to Pietern Noordhuis 2010-07-21 13:16:26 +02:00
antirez
2cffe2993b TODO list modified, trivial change to source code 2010-07-16 23:56:18 +02:00
antirez
5b4bff9c17 WATCH is now affected only when write commands actually modify the key content 2010-07-12 12:01:15 +02:00
antirez
e51a74aa40 fmacro included in linenoise.c 2010-07-09 10:51:41 +02:00
antirez
99628c1af8 redis-cli history saved across sessions 2010-07-07 18:44:53 +02:00
antirez
185cabda45 redis-cli is now able to report version information using -v 2010-07-06 19:17:09 +02:00
antirez
acc0185493 make install target, finally ;) 2010-07-06 19:07:16 +02:00
Pieter Noordhuis
d0a4e24e32 merged code from 184d74ab, 4774a53b, f483ce5f to new file structure 2010-07-05 15:16:33 -04:00
antirez
d06a5b23c8 Fixed compilation on *BSD systems 2010-07-05 20:14:48 +02:00
antirez
b67d234563 Fixed a crash loading the AOF file containing MULTI/EXEC, a result of WATCH implementation. Test needed... 2010-07-05 20:06:54 +02:00
antirez
b7a8daef60 WATCH will now consider touched keys target of EXPIRE command after the WATCH is performed, but not before 2010-07-05 19:38:12 +02:00
Pieter Noordhuis
2767f1c0c6 fix aof and digest code to work with dual set encoding 2010-07-02 20:42:20 +02:00
Pieter Noordhuis
96ffb2fe97 merged intset code into the split files 2010-07-02 19:57:12 +02:00
antirez
3688d7f308 Compilation fixed on Linux after the source code split 2010-07-01 21:13:38 +02:00
antirez
d3b958c3fc Fixed MONITOR output for consistency: now integer encoded values are also formatted like this: "3932" 2010-07-01 20:22:46 +02:00
antirez
5bd09cd4c5 Fix the AOF fix of the latest commit ;) 2010-07-01 20:18:48 +02:00
antirez
daf2049d0d fixed error code checking for *write operations and return value in AOF rewriting function 2010-07-01 20:13:33 +02:00
antirez
0f49d6b049 minor aesthetic change 2010-07-01 15:14:25 +02:00
antirez
2c24c22039 Version is now 2.1.2 2010-07-01 14:47:26 +02:00
antirez
24110a4d7d Make log target fixed 2010-07-01 14:45:37 +02:00
antirez
e2641e09cc redis.c split into many different C files.
networking related stuff moved into networking.c

moved more code

more work on layout of source code

SDS instantaneuos memory saving. By Pieter and Salvatore at VMware ;)

cleanly compiling again after the first split, now splitting it in more C files

moving more things around... work in progress

split replication code

splitting more

Sets split

Hash split

replication split

even more splitting

more splitting

minor change
2010-07-01 14:38:51 +02:00