2009-10-27 TODO reworked to reflect the real roadmap 2009-10-27 Fix for 'make 32bit' 2009-10-27 a fix for the solaris fix itself ;) 2009-10-27 More Solaris fixes 2009-10-27 A lot of ZSETs tests implemented, and a bug fixed thanks to this new tests 2009-10-27 zmalloc Solaris fixes thanks to Alan Harder 2009-10-27 ZSCORE implemented 2009-10-26 fix for ZRANGEBYSCORE 2009-10-26 ZRANGEBYSCORE implemented. Redis got range queries! 2009-10-26 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 ZSET now saved on disk like any other type 2009-10-26 double serialization routines implemented 2009-10-26 ZSETs random fixes. Now the implementation appears to be pretty stable 2009-10-26 another leak fixed. Can't find more for now, but still a bug in ZSETs to fix 2009-10-26 ZSETs memory leak #1 solved, another one missing 2009-10-26 Fix for skiplists backward link 2009-10-26 Merged Solaris patches provided by Alan Harder 2009-10-26 backward support to skiplists for ZREVRANGE, still broken, committing since I've to merge the Solaris patches 2009-10-26 TODO updated 2009-10-26 ZREM implemented 2009-10-24 fix for ZADD in score update mode 2009-10-24 some work on ZADD against existing element (score update), still broken... 2009-10-23 zrange now starts to work. zadd still does not support update and will crash or leak or b000mmmmm 2009-10-23 zrange initial hack (not working for now) 2009-10-23 first skiplist fix, courtesy of valgrind 2009-10-23 zset symbols added to stack trace code. ZSets will simply crash at the moment 2009-10-23 more work on ZSETs and a new make target called 32bit to build i386 binaries on mac os x leopard 2009-10-23 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 Fixed compilation in mac os x snow leopard when compiling a 32 bit binary. 2009-10-22 version incremented to 1.050 to distinguish from 1.001 stable and next stable versions with minor fixes 2009-10-21 TODO updated 2009-10-21 SRANDMEMBER added 2009-10-20 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-17 added multi-bulk protocol support to redis-cli and support for MSET and MSETNX 2009-10-17 MSET fixed, was not able to replace keys already set for a stupid bug 2009-10-16 some dead code removed 2009-10-16 multi bulk input protocol fixed 2009-10-16 MSET and MSETNX commands implemented 2009-10-07 undoed all the sds hacking that lead just to random bugs and no memory saving ;) 2009-10-07 initial multi-bulk query protocol, this will allow MSET and other interesting features. 2009-10-03 benchmark now outputs the right command line to shorten the TIME_WAIT interval on Mac OS X when keep alive is set 2009-10-02 Issue 69 fixed. Object integer encoding now works with replication and MONITORing again. 2009-09-18 LREM fixed, used to crash since the new object integer encoding is on the stage 2009-09-17 maxmemory didn't worked in 64 systems for values > 4GB since it used to be an unsigned int. Fixed 2009-09-10 incremented version number to 1.001, AKA Redis edge is no longer stable... 2009-09-10 in-memory specialized object encoding (for now 32 signed integers only) 2009-09-03 Latest doc changes for 1.0 2009-09-03 Redis 1.0.0 release 2009-09-02 Redis version pushed to 1.0 2009-09-02 Ruby client lib updated to the latest git version 2009-09-02 update-scala-client script added 2009-09-02 Scala client added thanks to Alejanro Crosa 2009-09-02 QuickStart added 2009-09-01 Fixed crash with only space and newline as command (issue 61), thanks to a guy having as nick "fixxxerrr" 2009-08-11 TODO list modified 2009-07-24 more snow leopard related fixes (for 32bit systems) 2009-07-24 fixed compilation with Snow Leopard, thanks to Lon Baker for providing SSH access to Snow Leopard box 2009-07-22 Fixed NetBSD compile problems 2009-07-17 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-05 added utils/redis-copy.rb, a script that is able to copy data from one Redis server to another one on the fly. 2009-07-04 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-03 bugfix: EXPIRE now propagates to the Slave. 2009-06-16 Redis version modified to 0.900 2009-06-16 update-ruby-client script already points to ezmobius repo 2009-06-16 client libraries updated 2009-06-16 Redis release candidate 1 2009-06-16 Better handling of background saving process killed or crashed 2009-06-14 number of keys info in INFO command thanks to Diego Rosario Brogna 2009-06-14 SPOP documented 2009-06-14 Clojure library thanks to Ragnar Dahlén 2009-06-10 It is now possible to specify - as config file name to read it from stdin 2009-06-10 sync with jodosha redis-rb 2009-06-10 Redis-rb sync 2009-06-10 max inline request raised again to 1024*1024*256 bytes 2009-06-10 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-08 SPOP implemented. Hash table resizing for Sets and Expires too. Changed the resize policy to play better with RANDOMKEY and SPOP. 2009-06-07 some minor changes to the backtrace code 2009-06-07 enable backtrace capabilities only for Linux and MacOSX 2009-06-07 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-06 Merge git://github.com/dierbro/redis 2009-06-06 add more output 2009-06-06 store static function pointer for a useful stack trace 2009-06-06 TODO updated 2009-06-06 Makefile dependencies updated 2009-06-05 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 Kill the background saving process before performing SHUTDOWN to avoid races 2009-06-05 LREM now returns :0 for non existing keys 2009-06-05 - put some order in code - better output 2009-06-05 added config.h for #ifdef business isolation, added fstat64 for Mac OS X 2009-06-04 remove die() :-) 2009-06-04 add compile options to debug 2009-06-04 initial commit print stack trace 2009-06-04 initial commit print stack trace 2009-06-04 macosx specific zmalloc.c, uses malloc_size function in order to avoid to waste memory and time to put an additional header 2009-06-04 DEBUG OBJECT implemented 2009-06-04 backtrace support removed: unreliable stack trace :( 2009-06-04 initial backtrace dumping on sigsegv/sigbus + debug command 2009-06-03 Python lib updated 2009-06-03 shareobjectspoolsize implemented in reds.conf, in order to control the pool size when object sharing is on 2009-05-30 Erlang client updated 2009-05-30 Python client library updated 2009-05-29 Redis-rb minor bool convertion fix 2009-05-29 ruby library client is not Redis-rb merged with RubyRedis "engine" by Brian McKinney 2009-05-28 __P completely removed from pqsort.c/h 2009-05-28 another minor fix for Solaris boxes 2009-05-28 minor fix for Solaris boxes 2009-05-28 minor fix for Solaris boxes 2009-05-27 maxmemory implemented 2009-05-26 Redis git version modified to 0.101 in order to distinguish that from the latest tar.gz via INFO ;) 2009-05-26 Redis 0.100 released 2009-05-26 client libraries synched in git 2009-05-26 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 max bytes of a received command enlarged from 1k to 16k 2009-05-26 RubyRedis: set TCP_NODELAY TCP socket option to to disable the neagle algorithm. Makes a huge difference under some OS, notably Linux 2009-05-25 maxclients implemented, see redis.conf for details 2009-05-25 INFO command now reports replication info 2009-05-25 minor fix to RubyRedis about bulk commands sent without arguments 2009-05-24 Warns if using the default config 2009-05-24 Issue with redis-client used in scripts solved, now to check if the latest argument must come from standard input we do not check that stdin is or not a tty but the command arity 2009-05-23 RubyRedis: now sets are returned as arrays again, and not as Set objects 2009-05-23 SLAVEOF command documented 2009-05-23 SLAVEOF command implemented for replication remote control 2009-05-22 Fix: no connection timeout for the master! 2009-05-22 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 README tutorial now reflects the new proto 2009-05-22 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 TTL command doc added 2009-05-22 TTL command implemented 2009-05-22 S*STORE now return the cardinality of the resulting set 2009-05-22 rubyredis more compatible with Redis-rb 2009-05-21 minor indentation fix 2009-05-21 timeout support and Redis-rb compatibility aliases implemented in RubyRedis 2009-05-21 RubyRedis info postprocessor rewritten in a more functional way 2009-05-21 dead code removed from RubyRedis 2009-05-21 command postprocessing implemented into RubyRedis 2009-05-20 Automagically reconnection of RubyRedis 2009-05-20 RubyRedis: Array alike operators implemented 2009-05-20 random testing code removed 2009-05-20 RubyRedis DB selection forced at object creation 2009-05-20 Initial version of an alternative Ruby client added 2009-05-20 SDIFF / SDIFFSTORE added to doc 2009-05-20 Aman Gupta changes merged 2009-05-20 Merge git://github.com/tmm1/redis 2009-05-19 Allow timeout=0 config to disable client timeouts 2009-05-19 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 psort.c/h added. This is a partial qsort implementation that Redis will use when SORT+LIMIT is requested 2009-05-17 Fix SINTER/UNIONSTORE to allow for &=/|= style operations (i.e. SINTERSTORE set1 set1 set2) 2009-05-17 Optimize SDIFF to return as soon as the result set is empty 2009-05-17 SDIFF/SDIFFSTORE implemnted unifying it with the implementation of SUNION/SUNIONSTORE 2009-05-11 timestamp in log lines 2009-05-11 Python client updated pushing from Ludo's repository 2009-05-11 disconnect when we cannot read from the socket 2009-05-11 benchmark utility now supports random keys 2009-05-10 minor doc changes 2009-05-09 added tests for vararg DEL 2009-05-09 DEL is now a vararg, IMPORTANT: memory leak fixed in loading DB code 2009-05-09 doc changes 2009-05-09 CPP client added thanks to Brian Hammond 2009-05-06 Infinite number of arguments for MGET and all the other commands 2009-05-04 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-04-30 zmalloc fix, return NULL or real malloc failure 2009-04-30 more fixes for dict.c and the 150 million keys limit 2009-04-30 dict.c modified to be able to handle more than 150,000,000 keys 2009-04-29 fuzz stresser implemented in redis-test 2009-04-29 fixed for HT resize check 32bits overflow 2009-04-29 Check for fork() failure in background saving 2009-04-29 fix for the LZF off-by-one bug added 2009-04-28 print bytes used at exit on SHUTDOWN 2009-04-28 SMOVE test added 2009-04-28 SMOVE command implemented 2009-04-28 less CPU usage in command parsing, case insensitive config directives 2009-04-28 GETSET command doc added 2009-04-28 GETSET tests 2009-04-28 GETSET implemented 2009-04-27 ability to specify a different file name for the DB 2009-04-27 log file parsing code improved a bit 2009-04-27 bgsave_in_progress field in INFO output 2009-04-27 INCRBY/DECRBY now support 64bit increments, with tests 2009-04-23 RANDOMKEY regression test added 2009-04-23 dictGetRandomKey bug fixed, RANDOMKEY will not block the server anymore 2009-04-22 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-21 forgot to comment testing code in PHP lib. Now it is ok 2009-04-21 PHP client ported to PHP5 and fixed 2009-04-21 doc update 2009-04-20 Non blocking replication (finally!). C-side linked lists API improved. 2009-04-19 SUNION, SUNIONSTORE, Initial work on non blocking replication 2009-04-10 Redis 0.091 released 2009-04-10 SINTER/SINTERSTORE/SLEMENTS fix: misisng keys are now not errors, but just like empty sets 2009-04-09 doc changes 2009-04-08 TODO changes, minor change to default redis.conf 2009-04-08 html doc updated 2009-04-08 library clients update scripts 2009-04-08 Ruby client updated 2009-04-08 Lua client updated 2009-04-08 Changelog updated 2009-04-08 Merge git://github.com/ludoo/redis 2009-04-08 add expire command to the php lib 2009-04-08 fix decode bug, add flush and info commands 2009-04-07 Rearrange redisObject struct to reduce memory usage in 64bit environments (as recommended http://groups.google.com/group/redis-db/msg/68f5a743f8f4e287) 2009-04-07 ruby19 compat: use each_line on string 2009-04-07 64bit fixes for usedmemory 2009-04-08 RANDOMKEY issue 26 fixed, generic test + regression added 2009-04-06 Don't accept SAVE if BGSAVE is in progress 2009-04-06 add expire command to the python lib 2009-04-03 persistent EXPIRE 2009-04-03 dirty increment was missing in two points. TODO updated 2009-04-02 LZF configured to initalize the HT in order to be determinsitic and play well with valgrind 2009-04-02 fix select test 2009-04-02 fix trailing cr+nl in values 2009-04-02 compression/decompression of large values on disk now working 2009-04-02 disable LZF compression since it's not able to load the DB for now, the load part is missing 2009-04-02 new LZF files added 2009-04-02 Fixed issue 23 about AUTH 2009-04-02 Issue 22 fixed 2009-04-01 non-lazy expired keys purging implemented 2009-04-01 fastlz dependence removed 2009-04-01 Initial implementation of EXPIRE 2009-03-30 TODO updated 2009-03-30 changelog added 2009-03-28 redis-sha1 utility added 2009-03-28 Integer encoding implemented in dump file. Doc updated 2009-03-27 feature macros defined to play well with C99 2009-03-27 feature macros defined to play well with C99 2009-03-27 now Redis is C99-ok 2009-03-27 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 ANSI-C compatibility changes 2009-03-27 Ruby client library updated. Important changes in this new version! 2009-03-26 Lua client added thanks to Daniele Alessandri 2009-03-26 Lua client added thanks to Daniele Alessandri 2009-03-26 AUTH merged from Brian Hammond fork, reworked a bit to fix minor problems 2009-03-25 Adds AUTH command. 2009-03-25 Nasty bug of the new DB format fixed, objects sharing implemented 2009-03-25 doc update 2009-03-25 Erlang client synched with Valentiono's repo 2009-03-25 New file dump format, perl client library added 2009-03-25 New protocol fix for LREM 2009-03-24 two typos fixed 2009-03-24 Now the Redis test uses the proper Tcl client library 2009-03-24 Tcl client library 2009-03-24 redis-benchmark sync with the new protocol 2009-03-24 git mess :) 2009-03-24 sync python client to the new protocol 2009-03-24 protocol fix in SORT reply with null elements 2009-03-24 protocol doc changed 2009-03-24 Server replies now in the new format, test-redis.tcl and redis-cli modified accordingly 2009-03-24 Python client library updated, thanks to Ludo! 2009-03-24 random tested mode for test-redis.tcl, minor other stuff, version switched to 0.8 2009-03-23 Now MONITOR/SYNC cannot be issued multiple times 2009-03-23 MONITOR command implemented. 2009-03-23 lucsky changes imported. pid file path can now be configured, redis-cli fixes 2009-03-23 Merge git://github.com/lucsky/redis 2009-03-23 another missing free->zfree replacement fixed. Thanks to Ludo 2009-03-23 Fixed redis-cli readLine loop to correctly handle EOF. 2009-03-23 Display the port on server startup. 2009-03-23 Allow to specify the pid file from the config file. 2009-03-23 Added gitignore file. 2009-03-22 MGET tests added 2009-03-22 doc changes 2009-03-22 added doc for MGET 2009-03-22 redis-cli now checks the arity of vararg commnads 2009-03-22 INFO fixed, MGET implemented, redis-cli implements INFO/MGET 2009-03-22 first commit