antirez
bcaa7a4ffa
Set the new threads stack size to a LZF friendly amount
2010-01-14 08:58:41 -05:00
antirez
427a2153d3
access to already freed job structure fixed by statements reoredering
2010-01-13 16:26:41 -05:00
antirez
85a2775298
removed a useless debugging message
2010-01-13 13:41:38 -05:00
antirez
4ee9488d7e
Wait zero active threads condition before to fork() for BGSAVE or BGREWRITEAOF
2010-01-13 13:38:30 -05:00
antirez
c7df85a484
list API is now thread safe
2010-01-13 13:18:07 -05:00
antirez
b74880b4ed
minor TODO and debugging info changes
2010-01-13 09:40:50 -05:00
antirez
72e9fd40b6
support for blocking VM in config file
2010-01-12 15:23:52 -05:00
antirez
f2d9f50f6c
more non blocking VM changes
2010-01-12 15:09:11 -05:00
antirez
25fd2cb284
a few more stuff in INFO about VM. Test #11 changed a bit in order to be less lame
2010-01-12 09:57:00 -05:00
antirez
c953f24bce
Added a define to configure how many completed IO jobs the handler should process at every call.
2010-01-12 07:27:54 -05:00
antirez
6c96ba7dfe
Fixed a bug in the IO Job canceling funtion
2010-01-11 19:47:18 -05:00
antirez
a5819310b0
more steps towards a working non blocking VM
2010-01-11 17:26:58 -05:00
antirez
20f5b38867
converted random printfs in debug logs
2010-01-11 13:10:43 -05:00
antirez
b3e3d0d78e
removed a bug introduced with non blocking VM
2010-01-11 12:54:29 -05:00
antirez
f11b864714
a few non blocking VM bugs fixed
2010-01-11 12:45:15 -05:00
antirez
b9bc0eefc4
More work on non-blocking VM. Should work in a few days
2010-01-11 11:42:15 -05:00
antirez
a69a0c9c3b
More threaded I/O VM work + Redis init script
2010-01-11 05:15:54 -05:00
antirez
996cb5f704
more work on VM threaded I/O. Still nothing of usable
2010-01-10 11:23:01 -05:00
antirez
92f8e88204
non-blocking VM data structures, just a start
2010-01-09 12:46:52 -05:00
antirez
ec6c7a1d78
used_memory_human added to INFO output. Human readable amount of memory used.
2010-01-08 10:38:48 -05:00
antirez
ace065423e
Now DEBUG OBJECT plays well with swapped out objects
2010-01-07 16:51:58 -05:00
antirez
0841cc928d
fflush VM swap file after object swapping
2010-01-07 15:53:12 -05:00
antirez
b492cf00d8
VM now swaps objects out while loading datasets not fitting into vm-max-memory bytes of RAM
2010-01-07 10:41:08 -05:00
antirez
0d7170a454
added process id information in INFO
2010-01-07 08:56:57 -05:00
antirez
38aba9a121
a new default redis.conf
2010-01-06 21:03:16 -05:00
antirez
7d98e08c0a
VM stats in INFO command
2010-01-06 20:14:27 -05:00
antirez
f870935d3e
Introduced a new log verbosity level, so now DEBUG is really for debugging. Refactored a bit maxmemory. When virtual memory is short in RAM free the objects freelist as well as swapping things out.
2010-01-06 09:15:17 -05:00
antirez
38823f0817
fixed a bug in bgsave when VM is off but still it was testing for obj->storage field
2010-01-05 19:51:30 -05:00
antirez
f2b8ab346a
converted a few calls to assert() => redisAssert() to print stack trace
2010-01-05 19:44:22 -05:00
antirez
e7546c6393
BGREWRITEAOF now works with swapping on
2010-01-05 19:15:15 -05:00
antirez
1b03836c0e
A first fix for SET key overwrite
2010-01-05 14:25:56 -05:00
antirez
7e69548dac
SAVE now works with VM
2010-01-05 13:51:46 -05:00
antirez
e3cadb8abe
swapping algorithm a bit more aggressive under low memory
2010-01-05 13:16:41 -05:00
antirez
4ef8de8ad7
basic VM mostly working!
2010-01-05 12:46:59 -05:00
antirez
d894161b85
New object field (one of the unused bytes) to hold the type of the swapped out value object in key objects
2010-01-05 10:38:58 -05:00
antirez
7d30035d47
VM internals bugfixes, set 1
2010-01-05 10:34:05 -05:00
antirez
55cf8433e3
load key from swap on key lookup
2010-01-05 07:28:06 -05:00
antirez
a35ddf129c
more object-level VM primitives
2010-01-05 07:19:09 -05:00
antirez
3a66edc7a4
Redis objects swapping / loading
2010-01-05 05:37:19 -05:00
antirez
c78a8ccce7
rdbLoadObject() as a separated function to load objects from disk. Dropped support for RDB version 0, I guess no longer has this legacy DBs around
2010-01-05 04:49:02 -05:00
antirez
06224fec7a
VM low level pages handling
2010-01-04 19:52:08 -05:00
antirez
75680a3c37
vm swap file creation, and some basic configuration
2010-01-04 16:01:40 -05:00
antirez
5dc70bff2e
version marked 1.3.2
2010-01-04 15:01:55 -05:00
antirez
06233c4585
saving code refactored a bit, added a function returning the number of bytes an object will use on disk
2010-01-04 15:00:43 -05:00
antirez
e20fb74f69
Now the PUSH side of RPOPLPUSH is able to unblock clients blocked on BLPOP
2010-01-02 10:02:24 -05:00
antirez
08ff05b012
Version is now 1.3.1
2010-01-02 09:37:01 -05:00
antirez
b177fd30ac
New vararg BLPOP able to block against multiple keys
2010-01-02 09:06:44 -05:00
antirez
58d976b8e8
fixed a problem with BLPOP timeout of zero, now it blocks forever
2009-12-29 19:11:05 -05:00
antirez
f86a74e944
BLPOP timeouts implemented
2009-12-29 16:26:05 -05:00
antirez
95242ab507
first working implementation of BLPOP and BRPOP, still everything is to test well
2009-12-29 16:05:56 -05:00
antirez
9fe33a0e12
a few more fixes, still broken
2009-12-29 15:50:08 -05:00
antirez
2affc3ed20
First fix, still broken
2009-12-29 15:32:37 -05:00
antirez
c04c9ac94f
minor fix for Linux 64 bit
2009-12-29 15:03:44 -05:00
antirez
4409877e19
not yet working BLPOP implementation
2009-12-29 14:59:40 -05:00
antirez
436b423e18
AOFSYNC removed, got a better idea...
2009-12-27 20:40:11 -05:00
antirez
279e33bee7
AOFSYNC command implemented
2009-12-27 20:31:16 -05:00
antirez
7c8163b85b
Version changed to 1.3.0, welcome to the new unstable
2009-12-27 16:26:51 -05:00
antirez
36c548f01d
Now MULTI returns +OK as well
2009-12-27 15:58:03 -05:00
antirez
6e4698826f
MULTI/EXEC first implementation
2009-12-27 15:47:28 -05:00
antirez
322fc7d855
Fixed a minor bug in GETSET, now the SET part is not performed if the GET fails because the key does not contain a string value
2009-12-24 09:40:11 -05:00
antirez
56c2735d89
version is now 1.1.94
2009-12-23 11:01:31 -05:00
antirez
2c14807b2d
Add the command name in the unknown command error message.
2009-12-23 06:23:32 -05:00
antirez
752da584f0
ZRANGE, ZREVRANGE now support WITHSCORES options
2009-12-22 16:09:27 -05:00
antirez
d922ae6592
Now SORT returns an empty bulk reply if the key does not exist
2009-12-18 09:06:53 -05:00
antirez
ac945e2dcf
SHUTDOWN now does the right thing when append only is on, that is, fsync instead to save the snapshot.
2009-12-18 07:31:44 -05:00
antirez
fdcaae84d3
Added a missing server.dirty increment in a non critical place, added more tests
2009-12-18 07:13:13 -05:00
antirez
ab9d4cb1e3
LTRIM now returns +OK against non existing keys. More tests in test-redis.tcl
2009-12-18 06:45:26 -05:00
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