Commit Graph

630 Commits

Author SHA1 Message Date
antirez b055378971 LZF compression re-enabled by default, but with INIT_HTAB set to 0 to avoid the very costly memset initialization. Note that with this option set valgrind will output some false positive about lzf_c.c 2009-12-16 15:48:57 -05:00
antirez 121f70cfae lzf compression switched off by default now, with config file option to enable it in redis.conf 2009-12-16 11:28:41 -05:00
antirez 483049a737 Regression for epoll bug in redis-test.tcl, version is now 1.1.93 2009-12-16 08:40:32 -05:00
antirez 8879cbfe60 version is now 1.1.92 2009-12-15 16:27:13 -05:00
antirez e96e4fbf15 Two important fixes to append only file: zero length values and expires. A pretty neat new test to check consistency of randomly build datasets against snapshotting and AOF. 2009-12-15 13:06:41 -05:00
antirez 71c2b467b0 debug loadaof implemented in order to add more consistency tests in test-redis.tcl 2009-12-15 11:15:47 -05:00
antirez e054afda90 Added a new test able to stress a lot the snapshotting engine 2009-12-15 10:55:13 -05:00
antirez ed10f40b15 Unified handling of empty queries with normal queries. 2009-12-15 09:33:29 -05:00
antirez 7c49733ce3 Fixed some subtle bug in the command processing code almost impossible to spot in the real world, thanks to gcov 2009-12-15 09:14:40 -05:00
antirez 0d36ded040 Fixed issue #121 2009-12-15 04:06:10 -05:00
antirez 49b99ab43e Changed the reply of BGSAVE and BGREWRITEAOF from +OK to a more meaningful message that makes the user aware of an operation that just started and is not yet finished. 2009-12-13 16:52:43 +01:00
antirez 179b395244 Set the master->slave logical client as authenticated on creation, so that if the slave requires a password replication works anyway 2009-12-13 15:09:46 +01:00
antirez b3fad521cc bgrewriteaof_in_progress added to INFO 2009-12-12 22:41:10 +01:00
antirez b32627cdc1 some change to redis-sha1.rb utility to make it more robust against non-meaningful changes in the dataset 2009-12-11 18:45:25 +01:00
antirez 454d4e43b5 a bit more verbose -ERR wrong number o arguments error, now gives info about the command name causing the error 2009-12-10 19:35:09 +01:00
antirez 333fd21615 TODO change and minor SETNX optimization 2009-12-10 16:38:24 +01:00
antirez 231d758eec in rdbLoadDoubleValue now the buffer is nul terminated correctly. Thanks valgrind. 2009-12-06 01:42:41 +01:00
antirez 83c6a61889 printf format warnings fixed by casting 2009-12-06 01:25:37 +01:00
antirez 5acdc75d66 Regression tests for SETNX and MSETNX bugs added 2009-12-06 01:16:12 +01:00
antirez 906573e78d SETNX and MSETNX now respect the delete-on-write operation of EXPIREing keys 2009-12-06 01:09:15 +01:00
antirez 71c54b21e2 Fixed daemonization when using kqueue/kevent. Now the server initialization is performed *after* the daemonization 2009-12-06 00:59:35 +01:00
antirez 76d31044d4 more HTML doc changes 2009-12-05 19:35:15 +01:00
antirez 682ac7248a use __attribute__ format in sdscatprintf() when the compiler is GCC. Fixed format bugs resulting from the new warnings. 2009-12-05 13:50:36 +01:00
antirez da0a162077 compilation problem on 64bit mac os x 10.5 possibly fixed 2009-12-01 11:53:00 +01:00
antirez dfc5e96ce5 Fixed issued #85 (getDecodedObject: Assertion 1 != 1 failed. While sorting a set), added a smarter assert() function to dump the stacktrace, provided a macro to initalize Redis objects on the stack to avoid this kind of bugs. 2009-11-30 20:25:06 +01:00
antirez d07ffa178d Version chagned to 1.100, also known as the first first 2.0 beta version 2009-11-29 10:44:25 +01:00
antirez 0b13687c25 more tests in test-redis.tcl, some minor fix 2009-11-29 10:29:08 +01:00
antirez a5eb649bfa SORT support for sorted sets 2009-11-29 10:10:35 +01:00
antirez 80181f7848 Implemented LIMIT option in ZRANGEBYSCORE. We now enter feature-freeze 2009-11-28 22:01:13 +01:00
antirez c74e7c7757 ZRANGEBYSCORE memory leak fixed, ZRANGEBYSCORE initial test added 2009-11-28 18:03:09 +01:00
antirez 1c85b79fef INFO refactored. Stack trace on memory corruption now dumps the same information as the INFO command 2009-11-28 17:13:32 +01:00
antirez 7a932b74cc ifdefs added to use kevent on Free Open and Net BSD as well. INFO and ae.c modified in order to report the multiplexing API in use 2009-11-28 17:06:28 +01:00
antirez 1751139117 Enabled object encoding for multiple keys in MSET. Added a test for memory leaks in test-redis.tcl when running on Mac OS X 2009-11-28 16:55:05 +01:00
antirez 1fd9bc8adc Changes to TODO list, commented a function in redis.c 2009-11-28 15:31:40 +01:00
antirez 0f151ef1a0 zero length bulk data reading fixed in loadAppendOnlyFile() 2009-11-26 19:18:52 +01:00
antirez 85a831729f append only file fixes 2009-11-26 19:03:32 +01:00
antirez 9d65a1bbae log rebuilding, random refactoring, work in progress please wait for an OK commit before to use this version 2009-11-26 18:10:02 +01:00
antirez 210e29f7d2 DEBUG RELOAD implemented, and test-redis.tcl modified to use it to check for persistence consistency. 2009-11-24 21:44:20 +01:00
antirez 1c0abf3c5d Redis version set to 1.07 2009-11-24 21:29:08 +01:00
antirez 6c446631da sorted sets saving fixed 2009-11-24 17:52:46 +01:00
antirez 266373b283 ae.c now supports multiple polling API modules, even if only ae_select.c is implemented currently. Also adding and removing an event is now O(1). 2009-11-23 18:50:39 +01:00
antirez a96ffc6641 version incremented up to 1.06 2009-11-21 16:40:08 +01:00
antirez ed5a857a6d Fixed a SORT memory leak that should never happen in practice 2009-11-21 13:46:34 +01:00
antirez 28173a49a7 SORT GET # implemented, with a test 2009-11-21 13:25:51 +01:00
antirez 91d71bfc79 ZINCRBY return value fixed 2009-11-20 11:22:20 +01:00
antirez 7db723adb2 ZINCRSCOREBY => ZINCRBY 2009-11-20 09:18:40 +01:00
antirez e2665397a7 ZINCRSCOREBY implemented 2009-11-19 19:48:46 +01:00
antirez 37f68e6102 writev() finally uncommented again 2009-11-19 19:04:54 +01:00
antirez b892cabed4 redis-benchmark hopefully last bug with multi bulk reply fixed 2009-11-19 18:44:18 +01:00
antirez 7ea870c092 Use writev(2) if glue output buffers is disabled 2009-11-19 11:46:28 +01:00
antirez c28b42acd9 more experiments with long replies, glue output buffer, and writev. 2009-11-18 20:32:03 +01:00
antirez cc30e368a3 benchmarking with different number of LRANGE elements. Ability to change the glue output buffer limit by #define 2009-11-18 19:41:25 +01:00
antirez 2895e86267 support for writev implemented but currently ifdef-ed in order to understan why I can't see the improvements expected. Btw code provided by Stefano Barbato 2009-11-17 17:46:44 +01:00
antirez ef3ac64a27 Solaris fix thanks to Alan Harder 2009-11-12 21:49:15 +01:00
antirez 96d8b4eeba ZSCORE fixed, now returns NULL on missing key or missing element 2009-11-12 21:35:05 +01:00
antirez 0f5f7e9a82 LPOPPUSH renamed into RPOPLPUSH 2009-11-12 11:21:26 +01:00
antirez fee803ba3e Removed a long time warning compiling with recent GCC on Linux 2009-11-11 19:59:54 +01:00
antirez 12f9d551b6 LPUSHPOP first implementation 2009-11-11 18:38:37 +01:00
antirez bcfc686db7 Tcl script, make target, and redis.c changes to build the static symbol table automagically 2009-11-10 19:20:32 +01:00
antirez f232429386 Implemented a much better lazy expiring algorithm for EXPIRE 2009-11-10 17:48:01 +01:00
root 121796f792 fixed a refcounting bug with SORT ... STORE leading to random crashes 2009-11-04 11:59:27 +01:00
antirez d0ccebcf46 masterauth option merged, thanks to Anthony Lauzon 2009-11-04 09:53:43 +01:00
antirez eaa256ad25 ZSets double to string serialization fixed 2009-11-03 14:36:38 +01:00
antirez 443c6409c3 SORT STORE option 2009-11-01 15:29:38 +01:00
antirez d8f8b666f4 now Redis prints DB stats just after the startup without to wait a second for the first report 2009-11-01 14:14:02 +01:00
antirez 33ed1a426d another fix for append only mode, now read-only operations are not appended 2009-11-01 13:43:34 +01:00
antirez 1766c6dadc appendfsync parsing in config file fixed. If you benchmarked Redis against different appendfsync options is time to try again ;) 2009-11-01 11:55:46 +01:00
antirez 9387d17dfe append only file loading fixed 2009-11-01 11:05:50 +01:00
antirez f80dff6212 first version of append only file loading -- STILL BROKEN don't use it 2009-11-01 10:54:55 +01:00
antirez 412a8bcea3 Fixed Issue 83:Using TYPE on a zset results in a malformed response from the Redis server 2009-10-31 23:03:10 +01:00
antirez 71eba4775d Fixed compilation on Linux 2009-10-31 14:32:01 +01:00
antirez 4e141d5a21 append only mode is now able to translate EXPIRE into EXPIREAT transparently 2009-10-30 17:20:24 +01:00
antirez 0154acdc57 appendfsync is now set to NO by default 2009-10-30 16:35:16 +01:00
antirez 48f0308ad3 support for appendonly mode no, always, everysec 2009-10-30 13:48:53 +01:00
antirez 16f9254761 first fix for append only mode 2009-10-30 01:11:29 +01:00
antirez 44b38ef432 Initial implementation of append-only mode. Loading still not implemented. 2009-10-30 01:04:17 +01:00
antirez 43e5ccdf57 EXPIRE behaviour changed a bit, a negative TTL or an EXPIREAT with unix time in the past will now delete the key. It seems saner to me than doing nothing. 2009-10-30 00:21:04 +01:00
antirez 802e837373 EXPIREAT implemented, will be useful for the append-only mode 2009-10-30 00:15:45 +01:00
antirez fa4c0aba85 Fixed Issue 74 (ERR just returned on invalid password), now the error message is -ERR invalid password. 2009-10-29 11:43:40 +01:00
antirez 4aa701c11a Fixed issue 72 (SLAVEOF shutdowns redis-server on malformed reply) 2009-10-29 11:38:32 +01:00
antirez 6c9385e01d Fixed issue 77 (Incorrect time in log files) thanks to youwantalex 2009-10-29 11:31:55 +01:00
antirez f72b934d14 Fixed Issue 76 (redis-server crashes when it can't connect to MASTER and client connects to SLAVE) 2009-10-29 11:30:43 +01:00
antirez 1807985baf ZREMRANGEBYSCORE implemented. Remove a range of elements with score between min and max 2009-10-29 11:10:16 +01:00
antirez d13f767cf2 TODO changes and mostly theoretical minor skiplist change 2009-10-28 23:03:57 +01:00
antirez 3c41331e11 ZLEN renamed ZCARD for consistency with SCARD 2009-10-28 13:17:14 +01:00
antirez 0bc1b2f651 a fix for the solaris fix itself ;) 2009-10-27 18:39:47 +01:00
antirez 5043dff351 More Solaris fixes 2009-10-27 18:38:25 +01:00
antirez d7f43c081a A lot of ZSETs tests implemented, and a bug fixed thanks to this new tests 2009-10-27 18:31:12 +01:00
antirez 6e333bbee2 ZSCORE implemented 2009-10-27 01:06:49 +01:00
antirez dbbc7285ee fix for ZRANGEBYSCORE 2009-10-26 23:06:19 +01:00
antirez 50c55df529 ZRANGEBYSCORE implemented. Redis got range queries! 2009-10-26 23:02:56 +01:00
antirez 9d60e6e466 A trivial change makes the new implementation O(log(N)) instead of O(log(N))+O(M) when there are M repeated scores! 2009-10-26 20:47:23 +01:00
antirez 2b59cfdfe9 ZSET now saved on disk like any other type 2009-10-26 18:47:12 +01:00
antirez a7866db6cc double serialization routines implemented 2009-10-26 18:26:04 +01:00
antirez 2161a96527 ZSETs random fixes. Now the implementation appears to be pretty stable 2009-10-26 17:57:24 +01:00
antirez ad807e6fa3 another leak fixed. Can't find more for now, but still a bug in ZSETs to fix 2009-10-26 17:33:31 +01:00
antirez 599379ddda ZSETs memory leak #1 solved, another one missing 2009-10-26 17:02:05 +01:00
antirez bb975144e4 Fix for skiplists backward link 2009-10-26 16:43:56 +01:00
antirez 325d1eb4a8 Merged Solaris patches provided by Alan Harder 2009-10-26 16:25:07 +01:00
antirez e3870fab57 backward support to skiplists for ZREVRANGE, still broken, committing since I've to merge the Solaris patches 2009-10-26 16:14:49 +01:00
antirez 1b7106e7db ZREM implemented 2009-10-26 12:04:42 +01:00
antirez f4d4c47f66 fix for ZADD in score update mode 2009-10-24 01:31:29 +02:00
antirez e197b441a2 some work on ZADD against existing element (score update), still broken... 2009-10-24 01:27:18 +02:00
antirez 0aad7a1938 zrange now starts to work. zadd still does not support update and will crash or leak or b000mmmmm 2009-10-23 22:39:25 +02:00
antirez cc81236105 zrange initial hack (not working for now) 2009-10-23 22:32:29 +02:00
antirez 913e9d6bca first skiplist fix, courtesy of valgrind 2009-10-23 22:16:50 +02:00
antirez ace4ee541a zset symbols added to stack trace code. ZSets will simply crash at the moment 2009-10-23 21:43:09 +02:00
antirez fd8ccf4419 more work on ZSETs and a new make target called 32bit to build i386 binaries on mac os x leopard 2009-10-23 21:24:01 +02:00
antirez 6b47e12ef8 initial skiplist implementation. Most memory checks removed and zmalloc() modified to fail with an error message and abort. Anyway Redis is not designed to recover from out of memory conditions. 2009-10-23 20:33:25 +02:00
antirez cb7e07cc63 Fixed compilation in mac os x snow leopard when compiling a 32 bit binary. 2009-10-23 01:36:10 +02:00
antirez 1812e0246c version incremented to 1.050 to distinguish from 1.001 stable and next stable versions with minor fixes 2009-10-22 16:15:26 +02:00
antirez 2abb95a9a8 SRANDMEMBER added 2009-10-21 10:50:24 +02:00
antirez f69f2cbafe Imporant bug leading to data corruption fixed (NOT affecting stable distribution), Tcl client lib MSET/MSETNX implementation fixed, Added new tests for MSET and MSETNX in test-redis.tcl 2009-10-20 11:39:20 +02:00
antirez 2ed22c8b29 MSET fixed, was not able to replace keys already set for a stupid bug 2009-10-17 22:02:59 +02:00
antirez 8d0490e7ec some dead code removed 2009-10-16 23:40:47 +02:00
antirez 638e42aca4 multi bulk input protocol fixed 2009-10-16 23:36:33 +02:00
antirez f6b141c57d MSET and MSETNX commands implemented 2009-10-16 13:44:25 +02:00
antirez f1017b3fb3 undoed all the sds hacking that lead just to random bugs and no memory saving ;) 2009-10-07 17:34:00 +02:00
antirez e8a74421bb initial multi-bulk query protocol, this will allow MSET and other interesting features. 2009-10-07 13:30:15 +02:00
antirez 0ea663ea01 Issue 69 fixed. Object integer encoding now works with replication and MONITORing again. 2009-10-02 10:23:25 +02:00
antirez 724a51b1a9 LREM fixed, used to crash since the new object integer encoding is on the stage 2009-09-18 20:31:47 +02:00
antirez d446590041 maxmemory didn't worked in 64 systems for values > 4GB since it used to be an unsigned int. Fixed 2009-09-17 17:23:59 +02:00
antirez 244de507b3 incremented version number to 1.001, AKA Redis edge is no longer stable... 2009-09-10 17:46:21 +02:00
antirez 942a39618b in-memory specialized object encoding (for now 32 signed integers only) 2009-09-10 17:45:30 +02:00
antirez 61c38ac531 Redis version pushed to 1.0 2009-09-02 11:37:01 +02:00
antirez af807d87e8 Fixed crash with only space and newline as command (issue 61), thanks to a guy having as nick "fixxxerrr" 2009-09-01 16:30:52 +02:00
antirez cbc59b3810 more snow leopard related fixes (for 32bit systems) 2009-07-24 14:43:20 +02:00
antirez 06db1f50cd fixed compilation with Snow Leopard, thanks to Lon Baker for providing SSH access to Snow Leopard box 2009-07-24 14:32:58 +02:00
antirez fbf9bcdb6f Fixed NetBSD compile problems 2009-07-22 10:32:21 +02:00
antirez 21aecf4bab now the size of the shared pool can be really modified via config, also the number of objects in the sharing pool is logged when the log level is set to debug. Thanks to Aman Gupta 2009-07-17 11:56:56 +02:00
antirez b91cf5ef2b Applied three different patches thanks to Chris Lamb, one to fix compilation and get the IP register value on Linux IA64 and other systems. One in order to log the overcommit problem on the logs instead of the standard output when Redis is demonized. The latest in order to suggest a more consistent way in order to switch to 1 the memory overcommit Linux feature. 2009-07-04 15:43:57 +02:00
antirez 774230260f bugfix: EXPIRE now propagates to the Slave. 2009-07-03 19:57:26 +02:00
antirez f0dec43b53 Redis version modified to 0.900 2009-06-16 17:33:58 +02:00
antirez a3b21203d2 Better handling of background saving process killed or crashed 2009-06-16 16:42:20 +02:00
antirez c3cb078d46 number of keys info in INFO command thanks to Diego Rosario Brogna 2009-06-14 23:34:25 +02:00
antirez e59229a2d5 Clojure library thanks to Ragnar Dahlén 2009-06-14 23:15:21 +02:00
antirez c9a111acf4 It is now possible to specify - as config file name to read it from stdin 2009-06-10 14:40:11 +02:00
antirez cd19463854 max inline request raised again to 1024*1024*256 bytes 2009-06-10 00:03:53 +02:00
antirez 644fafa383 max bytes in an inline command raised to 1024*1024 bytes, in order to allow for very large MGETs and still protect from client crashes 2009-06-10 00:02:08 +02:00
antirez 12fea92890 SPOP implemented. Hash table resizing for Sets and Expires too. Changed the resize policy to play better with RANDOMKEY and SPOP. 2009-06-08 23:51:35 +02:00
antirez d76412d1d1 some minor changes to the backtrace code 2009-06-07 20:22:43 +02:00
antirez e65fdc7838 enable backtrace capabilities only for Linux and MacOSX 2009-06-07 15:47:59 +02:00
antirez 56906eefea Dump a backtrace on sigsegv/sigbus, original coded thanks to Diego Rosario Brogna, modified in order to work on different OSes and to enhance reliability 2009-06-07 14:00:31 +02:00
antirez c4cd5f393c Merge git://github.com/dierbro/redis 2009-06-06 23:40:48 +02:00
hrothgar 433cc893c0 add more output 2009-06-06 09:49:10 +00:00
hrothgar de96dbfedf store static function pointer for a useful stack trace 2009-06-06 08:50:43 +00:00
antirez 6f37672920 Avoid a busy loop while sending very large replies against very fast links, this allows to be more responsive with other clients even under a KEY * against the loopback interface 2009-06-05 23:44:26 +02:00
antirez 9f3c422c72 Kill the background saving process before performing SHUTDOWN to avoid races 2009-06-05 22:52:30 +02:00
antirez 33c08b3916 LREM now returns :0 for non existing keys 2009-06-05 16:07:22 +02:00
hrothgar fe3bbfbe16 - put some order in code
- better output
2009-06-05 10:10:44 +00:00
antirez dde65f3f3c added config.h for #ifdef business isolation, added fstat64 for Mac OS X 2009-06-05 10:50:51 +02:00
hrothgar 8a355d697a remove die() :-) 2009-06-04 18:48:26 +00:00
hrothgar c9468bcf8a initial commit print stack trace 2009-06-04 17:26:21 +00:00
antirez 333298dac3 DEBUG OBJECT implemented 2009-06-04 17:13:33 +02:00
antirez b5ff27084f backtrace support removed: unreliable stack trace :( 2009-06-04 16:50:24 +02:00
antirez 7f957c925b initial backtrace dumping on sigsegv/sigbus + debug command 2009-06-04 16:45:57 +02:00
antirez e52c65b90a shareobjectspoolsize implemented in reds.conf, in order to control the pool size when object sharing is on 2009-06-03 16:01:32 +02:00
antirez 3fd78bcd45 maxmemory implemented 2009-05-27 22:53:20 +02:00
antirez 16edf32dc3 Redis git version modified to 0.101 in order to distinguish that from the latest tar.gz via INFO ;) 2009-05-26 20:54:47 +02:00
antirez d7fc9edb18 client libraries synched in git 2009-05-26 18:10:50 +02:00
antirez e083d75262 ignore gcc warning about write() return code not checked. It is esplicitily this way since the "max number of clients reached" is a best-effort error 2009-05-26 16:45:57 +02:00
antirez a1f6fa5edc max bytes of a received command enlarged from 1k to 16k 2009-05-26 16:35:18 +02:00
antirez 285add5558 maxclients implemented, see redis.conf for details 2009-05-25 23:29:18 +02:00
antirez a0f643ea4c INFO command now reports replication info 2009-05-25 23:02:42 +02:00
antirez 8cca9b8277 Warns if using the default config 2009-05-24 09:21:35 +02:00
antirez 321b0e13f6 SLAVEOF command implemented for replication remote control 2009-05-23 10:56:32 +02:00
antirez c7cf2ec97c Fix: no connection timeout for the master! 2009-05-22 21:56:00 +02:00
antirez 8c4d91fcf8 replication slave timeout when receiving the initial bulk data set to 3600 seconds, now that replication is non-blocking the server must save the db before to start the async replication and this can take a lot of time with huge datasets 2009-05-22 20:55:09 +02:00
antirez 6fdc78ac69 critical bug about glueoutputbuffers=yes fixed. Under load and with pipelining and clients disconnecting on the middle of the chat with the server, Redis could block. Now it's ok 2009-05-22 18:35:51 +02:00
antirez fd88489a41 TTL command implemented 2009-05-22 15:55:38 +02:00
antirez 03fd01c7eb S*STORE now return the cardinality of the resulting set 2009-05-22 15:29:27 +02:00
antirez 3ba37089b5 command postprocessing implemented into RubyRedis 2009-05-21 13:22:20 +02:00
antirez 6d4371d469 Merge git://github.com/tmm1/redis 2009-05-20 10:42:43 +02:00
Aman Gupta 0150db364d Allow timeout=0 config to disable client timeouts 2009-05-19 22:36:11 -07:00
antirez 5f5b9840c3 Partial qsort implemented in SORT command, only when both BY and LIMIT is used. minor fix for a warning compiling under Linux. 2009-05-19 18:39:58 +02:00
Aman Gupta 83cdfe182f Fix SINTER/UNIONSTORE to allow for &=/|= style operations (i.e. SINTERSTORE set1 set1 set2) 2009-05-17 14:16:24 -07:00
Aman Gupta 51829ed3f0 Optimize SDIFF to return as soon as the result set is empty 2009-05-17 12:25:05 -07:00
antirez f4f56e1dfb SDIFF/SDIFFSTORE implemnted unifying it with the implementation of SUNION/SUNIONSTORE 2009-05-17 13:45:08 +02:00
antirez 1904ecc165 timestamp in log lines 2009-05-11 19:45:47 +02:00
antirez 5109cdff83 DEL is now a vararg, IMPORTANT: memory leak fixed in loading DB code 2009-05-09 12:18:32 +02:00
antirez 93ea375904 Infinite number of arguments for MGET and all the other commands 2009-05-06 23:54:57 +02:00
antirez 0bc0337896 Warns if /proc/sys/vm/overcommit_memory is set to 0 on Linux. Also make sure to don't resize the hash tables while the child process is saving in order to avoid copy-on-write of memory pages 2009-05-04 16:26:06 +02:00
antirez dec423d9cf fixed for HT resize check 32bits overflow 2009-04-29 16:50:48 +02:00
antirez 5a7c647e9a Check for fork() failure in background saving 2009-04-29 10:33:29 +02:00
antirez 3a2694c441 fix for the LZF off-by-one bug added 2009-04-29 01:04:04 +02:00
antirez b284af55d8 print bytes used at exit on SHUTDOWN 2009-04-28 22:04:41 +02:00
antirez a4460ef43f SMOVE command implemented 2009-04-28 20:36:08 +02:00
antirez bb0b03a3d7 less CPU usage in command parsing, case insensitive config directives 2009-04-28 16:54:56 +02:00
antirez a431eb74ba GETSET implemented 2009-04-28 14:42:55 +02:00
antirez b8b553c84f ability to specify a different file name for the DB 2009-04-27 18:10:00 +02:00
antirez 85dd2f3ad2 log file parsing code improved a bit 2009-04-27 18:03:34 +02:00
antirez be2bb6b07e bgsave_in_progress field in INFO output 2009-04-27 17:52:04 +02:00
antirez d68ed1201a INCRBY/DECRBY now support 64bit increments, with tests 2009-04-27 17:50:26 +02:00
antirez ca37e9cde8 FLUSHALL/FLUSHDB no longer sync on disk. Just increment the dirty counter by the number of elements removed, that will probably trigger a background saving operation 2009-04-22 01:44:48 +02:00
antirez 6208b3a776 Non blocking replication (finally!). C-side linked lists API improved. 2009-04-20 23:51:51 +02:00
antirez 40d224a9e3 SUNION, SUNIONSTORE, Initial work on non blocking replication 2009-04-19 10:02:36 +02:00
antirez 6bea3d5f58 Redis 0.091 released 2009-04-10 13:49:50 +02:00
antirez 5faa6025f5 SINTER/SINTERSTORE/SLEMENTS fix: misisng keys are now not errors, but just like empty sets 2009-04-10 13:43:41 +02:00
Bob Potter 5a6e8b1daa Rearrange redisObject struct to reduce memory usage in 64bit environments (as recommended http://groups.google.com/group/redis-db/msg/68f5a743f8f4e287) 2009-04-07 18:40:33 -05:00
Bob Potter 5fba9f717b 64bit fixes for usedmemory 2009-04-07 18:33:44 -05:00
antirez ce7bef0795 RANDOMKEY issue 26 fixed, generic test + regression added 2009-04-08 00:59:53 +02:00
antirez 05557f6de7 Don't accept SAVE if BGSAVE is in progress 2009-04-06 10:29:36 +02:00
antirez bb32ede52e persistent EXPIRE 2009-04-03 11:07:37 +02:00
antirez 0c66a4713a dirty increment was missing in two points. TODO updated 2009-04-03 10:04:51 +02:00
antirez 88e859984a compression/decompression of large values on disk now working 2009-04-02 17:10:02 +02:00
antirez 40c32c3e49 disable LZF compression since it's not able to load the DB for now, the load part is missing 2009-04-02 10:02:06 +02:00
antirez 2e77c2ee72 Fixed issue 23 about AUTH 2009-04-02 09:57:06 +02:00
antirez 774e304780 Issue 22 fixed 2009-04-02 09:54:45 +02:00
antirez 94754ccc3c non-lazy expired keys purging implemented 2009-04-01 20:40:00 +02:00
antirez 3305306f09 Initial implementation of EXPIRE 2009-04-01 13:22:35 +02:00
antirez e3566d4b46 Integer encoding implemented in dump file. Doc updated 2009-03-28 10:58:19 +01:00
antirez 23d4709dfb feature macros defined to play well with C99 2009-03-27 22:00:27 +01:00
antirez 17be1a4a17 IMPORTANT FIX: new dump format implementation was broken. Now it's ok but tests for the 32-bit case values are needed 2009-03-27 21:27:42 +01:00
antirez a4d1ba9a73 ANSI-C compatibility changes 2009-03-27 20:48:32 +01:00
antirez e63943a450 AUTH merged from Brian Hammond fork, reworked a bit to fix minor problems 2009-03-26 11:46:14 +01:00
Brian Hammond abcb223ec0 Adds AUTH command.
$ make
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  adlist.c
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  ae.c
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  anet.c
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  dict.c
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  redis.c
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  sds.c
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  zmalloc.c
cc -o redis-server -O2 -Wall -W -DSDS_ABORT_ON_OOM -g adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o

Hint: To run the test-redis.tcl script is a good idea.
Launch the redis server with ./redis-server, then in another
terminal window enter this directory and run 'make test'.

cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  benchmark.c
cc -o redis-benchmark -O2 -Wall -W -DSDS_ABORT_ON_OOM -g ae.o anet.o benchmark.o sds.o adlist.o zmalloc.o
cc -c -O2 -Wall -W -DSDS_ABORT_ON_OOM -g  redis-cli.c
cc -o redis-cli -O2 -Wall -W -DSDS_ABORT_ON_OOM -g anet.o sds.o adlist.o redis-cli.o zmalloc.o

$ tail -1 redis.conf

$ ./redis-server redis.conf &
[1] 52494
$ - Server started, Redis version 0.08
- DB loaded from disk
- The server is now ready to accept connections on port 6379
. 0 clients connected (0 slaves), 1932 bytes in use

$ make test
tclsh test-redis.tcl
DEL all keys to start with a clean DB                                  . Accepted 127.0.0.1:54490
PASSED
SET and GET an item                                                    PASSED
DEL against a single item                                              PASSED
KEYS with pattern                                                      PASSED
KEYS to get all keys                                                   PASSED
DBSIZE                                                                 PASSED
DEL all keys                                                           PASSED
Very big payload in GET/SET                                            PASSED
SET 10000 numeric keys and access all them in reverse order            . DB 0: 10001 keys in 16384 slots HT.
. 1 clients connected (0 slaves), 4885707 bytes in use
PASSED
DBSIZE should be 10001 now                                             PASSED
INCR against non existing key                                          PASSED
INCR against key created by incr itself                                PASSED
INCR against key originally set with SET                               PASSED
SETNX target key missing                                               PASSED
SETNX target key exists                                                PASSED
EXISTS                                                                 PASSED
Zero length value in key. SET/GET/EXISTS                               PASSED
Commands pipelining                                                    PASSED
Non existing command                                                   PASSED
Basic LPUSH, RPUSH, LLENGTH, LINDEX                                    PASSED
DEL a list                                                             PASSED
Create a long list and check every single element with LINDEX          PASSED
Test elements with LINDEX in random access                             PASSED
LLEN against non-list value error                                      PASSED
LINDEX against non-list value error                                    PASSED
LPUSH against non-list value error                                     PASSED
RPUSH against non-list value error                                     PASSED
RENAME basic usage                                                     PASSED
RENAME source key should no longer exist                               PASSED
RENAME against already existing key                                    PASSED
RENAMENX basic usage                                                   PASSED
RENAMENX against already existing key                                  PASSED
RENAMENX against already existing key (2)                              PASSED
RENAME against non existing source key                                 PASSED
RENAME where source and dest key is the same                           PASSED
DEL all keys again (DB 0)                                              PASSED
DEL all keys again (DB 1)                                              PASSED
MOVE basic usage                                                       PASSED
MOVE against key existing in the target DB                             PASSED
SET/GET keys in different DBs                                          PASSED
Basic LPOP/RPOP                                                        PASSED
LPOP/RPOP against empty list                                           PASSED
LPOP against non list value                                            PASSED
Mass LPUSH/LPOP                                                        PASSED
LRANGE basics                                                          PASSED
LRANGE inverted indexes                                                PASSED
LRANGE out of range indexes including the full list                    PASSED
LRANGE against non existing key                                        PASSED
LTRIM basics                                                           PASSED
LSET                                                                   PASSED
LSET out of range index                                                PASSED
LSET against non existing key                                          PASSED
LSET against non list value                                            PASSED
SADD, SCARD, SISMEMBER, SMEMBERS basics                                PASSED
SADD adding the same element multiple times                            PASSED
SADD against non set                                                   PASSED
SREM basics                                                            PASSED
Mass SADD and SINTER with two sets                                     PASSED
SINTERSTORE with two sets                                              PASSED
SINTER against three sets                                              PASSED
SINTERSTORE with three sets                                            PASSED
SAVE - make sure there are all the types as values                     - DB saved on disk
PASSED
Create a random list                                                   . DB 0: 6057 keys in 16384 slots HT.
. DB 1: 3 keys in 16 slots HT.
. 1 clients connected (0 slaves), 1045147 bytes in use
PASSED
SORT with BY against the newly created list                            PASSED
SORT direct, numeric, against the newly created list                   PASSED
SORT decreasing sort                                                   PASSED
SORT speed, sorting 10000 elements list using BY, 100 times
  Average time to sort: 5.28 milliseconds PASSED
SORT speed, sorting 10000 elements list directly, 100 times
  Average time to sort: 1.53 milliseconds PASSED
SORT speed, pseudo-sorting 10000 elements list, BY <const>, 100 times
  Average time to sort: 0.47 milliseconds PASSED
SORT regression for issue #19, sorting floats                          - DB saved on disk
PASSED
LREM, remove all the occurrences                                       - DB saved on disk
PASSED
LREM, remove the first occurrence                                      PASSED
LREM, remove non existing element                                      PASSED
LREM, starting from tail with negative count                           - DB saved on disk
PASSED
LREM, starting from tail with negative count (2)                       PASSED
MGET                                                                   - DB saved on disk
PASSED
MGET against non existing key                                          PASSED
MGET against non-string key                                            PASSED
FLUSHALL                                                               - DB saved on disk
PASSED

79 tests, 79 passed, 0 failed
. Client closed connection
. 0 clients connected (0 slaves), 1347660 bytes in use

$ kill -15 %1
[1]+  Terminated              ./redis-server redis.conf

$ vim redis.conf

$ tail -1 redis.conf
requirepass foobared

$ ./redis-server redis.conf &
[1] 52518
$ - Server started, Redis version 0.08
- DB loaded from disk
- The server is now ready to accept connections on port 6379
. 0 clients connected (0 slaves), 1945 bytes in use

$ make test
tclsh test-redis.tcl
. Accepted 127.0.0.1:54492
DEL all keys to start with a clean DB

ERR operation not permitted

    while executing
"::redis::redis_read_reply $fd"
    (procedure "::redis::__dispatch__" line 13)
    invoked from within
"$r keys *"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $code"
    (procedure "test" line 4)
    invoked from within
"test {DEL all keys to start with a clean DB} {
        foreach key [$r keys *] {$r del $key}
        $r dbsize
    } {0}"
    (procedure "main" line 13)
    invoked from within
"main 127.0.0.1 6379"
    invoked from within
"if {[llength $argv] == 0} {
    main 127.0.0.1 6379
} elseif {[llength $argv] == 1 && [lindex $argv 0] eq {stress}} {
    stress
} else {
    main [li..."
    (file "test-redis.tcl" line 630)
. Client closed connection
make: *** [test] Error 1
. 0 clients connected (0 slaves), 2041 bytes in use
. 0 clients connected (0 slaves), 2041 bytes in use

$ kill -15 %1
[1]+  Terminated              ./redis-server redis.conf

$ vim test-redis.tcl

$ git diff test-redis.tcl
2009-03-25 23:03:56 -04:00
antirez 10c43610de Nasty bug of the new DB format fixed, objects sharing implemented 2009-03-25 21:00:48 +01:00
antirez f78fd11b71 New file dump format, perl client library added 2009-03-25 16:47:22 +01:00
antirez 7b45bfb2a4 New protocol fix for LREM 2009-03-25 00:26:47 +01:00
antirez 9eb00f21f0 protocol fix in SORT reply with null elements 2009-03-24 14:22:42 +01:00
antirez c937aa89b5 Server replies now in the new format, test-redis.tcl and redis-cli modified accordingly 2009-03-24 13:37:32 +01:00
antirez 5a6948fbc0 random tested mode for test-redis.tcl, minor other stuff, version switched to 0.8 2009-03-24 00:43:38 +01:00
antirez cf3f0c012d Now MONITOR/SYNC cannot be issued multiple times 2009-03-23 21:33:15 +01:00
antirez 87eca72788 MONITOR command implemented. 2009-03-23 19:43:39 +01:00
antirez 2a200c784d Merge git://github.com/lucsky/redis 2009-03-23 17:21:33 +01:00
antirez 092dac2a64 another missing free->zfree replacement fixed. Thanks to Ludo 2009-03-23 14:50:09 +01:00
Luc Heinrich 46713f83d4 Display the port on server startup. 2009-03-23 12:42:10 +01:00
Luc Heinrich ed329fcf25 Allow to specify the pid file from the config file. 2009-03-23 12:31:33 +01:00
antirez 70003d28b8 INFO fixed, MGET implemented, redis-cli implements INFO/MGET 2009-03-22 14:54:14 +01:00
antirez ed9b544e10 first commit 2009-03-22 10:30:00 +01:00