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