2010-12-20 07:13:46 -05:00
|
|
|
Redis TODO
|
|
|
|
----------
|
2009-11-24 07:47:26 -05:00
|
|
|
|
2010-12-20 07:13:46 -05:00
|
|
|
WARNING: are you a possible Redis contributor?
|
|
|
|
Before implementing what is listed what is listed in this file
|
|
|
|
please drop a message in the Redis google group or chat with
|
|
|
|
antirez or pietern on irc.freenode.org #redis to check if the work
|
|
|
|
is already in progress and if the feature is still interesting for
|
|
|
|
us, and *how* exactly this can be implemented to have good changes
|
|
|
|
of a merge. Otherwise it is probably wasted work! Thank you
|
2009-10-16 07:44:25 -04:00
|
|
|
|
2010-07-01 08:52:01 -04:00
|
|
|
|
2011-04-12 13:21:03 -04:00
|
|
|
API CHANGES
|
|
|
|
===========
|
2010-07-01 08:52:01 -04:00
|
|
|
|
2011-04-12 13:21:03 -04:00
|
|
|
* Turn commands into variadic versions when it makes sense, that is, when
|
|
|
|
the variable number of arguments represent values, and there is no conflict
|
|
|
|
with the return value of the command.
|
2011-03-08 09:10:20 -05:00
|
|
|
|
2011-09-15 11:04:55 -04:00
|
|
|
2.6
|
|
|
|
===
|
|
|
|
|
|
|
|
* Everything under the "SCRIPTING" section.
|
|
|
|
* Float increments (INCRBYFLOAT).
|
|
|
|
* Fix BRPOPLPUSH + vararg LPUSH semantics.
|
|
|
|
* AOF everysec fsync in background (either the aof-bg branch or something else).
|
|
|
|
|
2011-05-06 10:23:14 -04:00
|
|
|
CLUSTER
|
|
|
|
=======
|
|
|
|
|
|
|
|
* Implement rehashing and cluster check in redis-trib.
|
|
|
|
* Reimplement MIGRATE / RESTORE to use just in memory buffers (no disk at
|
|
|
|
all). This will require touching a lot of the RDB stuff around, but we may
|
|
|
|
hand with faster persistence for RDB.
|
|
|
|
* Implement the slave nodes semantics and election.
|
|
|
|
* Allow redis-trib to create a cluster-wide snapshot (using SYNC).
|
|
|
|
* Allow redis-trib to restore a cluster-wide snapshot (implement UPLOAD?).
|
|
|
|
|
2011-07-13 06:04:02 -04:00
|
|
|
SCRIPTING
|
|
|
|
=========
|
|
|
|
|
|
|
|
* MULTI/EXEC/...: should we do more than simply ignoring it?
|
|
|
|
* Prevent Lua from calling itself with redis("eval",...)
|
|
|
|
* SCRIPT FLUSH or alike to start a fresh interpreter?
|
2011-09-15 11:04:55 -04:00
|
|
|
* Check better the replication handling.
|
|
|
|
* Prevent execution of writes if random commands are used.
|
2011-07-13 06:04:02 -04:00
|
|
|
|
2011-01-26 04:42:32 -05:00
|
|
|
APPEND ONLY FILE
|
|
|
|
================
|
2009-12-12 13:42:42 -05:00
|
|
|
|
2011-01-26 04:42:32 -05:00
|
|
|
* in AOF rewirte use HMSET to rewrite small hashes instead of multiple calls
|
|
|
|
to HSET.
|
2009-12-12 13:42:42 -05:00
|
|
|
|
2010-12-20 07:13:46 -05:00
|
|
|
OPTIMIZATIONS
|
|
|
|
=============
|
2009-11-29 06:09:31 -05:00
|
|
|
|
2011-03-09 10:36:02 -05:00
|
|
|
* Avoid COW due to incrementing the dict iterators counter.
|
2009-12-05 07:50:36 -05:00
|
|
|
* SORT: Don't copy the list into a vector when BY argument is constant.
|
|
|
|
* Write the hash table size of every db in the dump, so that Redis can resize the hash table just one time when loading a big DB.
|
2010-12-20 07:13:46 -05:00
|
|
|
* Read-only mode for slaves.
|
2011-04-11 15:47:45 -04:00
|
|
|
* Redis big lists as linked lists of small ziplists?
|
|
|
|
Possibly a simple heuristic that join near nodes when some node gets smaller than the low_level, and split it into two if gets bigger than high_level.
|
2010-05-25 14:28:22 -04:00
|
|
|
|
2011-01-10 15:45:08 -05:00
|
|
|
RANDOM
|
|
|
|
======
|
|
|
|
|
2011-07-27 10:39:03 -04:00
|
|
|
* Server should abort when getcwd() fails if there is some kind of persistence configured. Check this in the cron loop.
|
2011-01-10 15:45:08 -05:00
|
|
|
* Clients should be closed as far as the output buffer list is bigger than a given number of elements (configurable in redis.conf)
|
|
|
|
* Should the redis default configuration, and the default redis.conf, just bind 127.0.0.1?
|
|
|
|
|
2010-05-25 14:28:22 -04:00
|
|
|
KNOWN BUGS
|
|
|
|
==========
|
|
|
|
|
2011-04-13 09:39:43 -04:00
|
|
|
* #519: Slave may have expired keys that were never read in the master (so a DEL
|
|
|
|
is not sent in the replication channel) but are already expired since
|
|
|
|
a lot of time. Maybe after a given delay that is undoubltly greater than
|
|
|
|
the replication link latency we should expire this key on the slave on
|
|
|
|
access?
|