antirez
3e0a975e07
log client protocol errors for log level >= verbose
2011-11-25 16:09:34 +01:00
Salvatore Sanfilippo
07ac2daaaa
Merge pull request #209 from woowenjie/unstable
...
clean REDIS_DIRTY_CAS when discard Command runs. otherwise the next MULT...
2011-11-25 03:13:10 -08:00
woowenjie
f371e721fa
clean REDIS_DIRTY_CAS when discard Command runs. otherwise the next MULTI/EXEC may fail in the same RedisClient
2011-11-25 10:34:05 +08:00
antirez
fa5af017d9
better bug report info on crash
2011-11-24 15:47:26 +01:00
antirez
45e7a1ce00
minor refactoring to networking.c adding a separated function to get a string representing the current state of all the connected clients.
2011-11-24 15:04:42 +01:00
antirez
2c74a9f948
last executed command in CLIENT LIST output.
2011-11-24 14:56:34 +01:00
antirez
3c95e7212e
new counter in INFO output: rejected_connections with number of dropped connections because of maxclients limit reached.
2011-11-23 18:38:12 +01:00
antirez
1bcfa0f643
More fixes in the Redis command table, to make sure all the keys are detected by Redis Cluster.
2011-11-22 14:27:32 +01:00
antirez
39da5d1f21
Fixed command table for SETEX and PSETEX causing the expire time to be hashed by Redis cluster instead of the key.
2011-11-22 10:16:15 +01:00
antirez
7501c66f2e
comment describing the Redis command table enhanced
2011-11-22 10:13:45 +01:00
antirez
afd0f06b75
Fixed bug in getClientInfoString() that was not rendering the N (no flags) special flag correctly.
2011-11-21 16:19:30 +01:00
antirez
becf5fdb0c
Close client connection and log the event when the client input buffer reaches 1GB.
2011-11-21 16:17:51 +01:00
antirez
6621b8ffa1
show active events in client file descriptor in CLIENT LIST.
2011-11-21 16:06:03 +01:00
antirez
f14479c796
new ae.c API to get current events by file descriptor.
2011-11-21 16:05:29 +01:00
antirez
491c1c4e04
added output list and buffer length, query buffer size, to CLIENT LIST output.
2011-11-21 15:54:49 +01:00
antirez
17d25a33e2
code generating the CLIENT LIST output refactored to have a function that is able to render a single client into a client info string.
2011-11-21 15:34:32 +01:00
antirez
08a879af6e
Added sdscatsds() to sds.c/h
2011-11-21 15:34:00 +01:00
antirez
7e14a20801
Fixed a comment typo in the command table.
2011-11-21 10:55:52 +01:00
Salvatore Sanfilippo
794e6ce14f
Merge pull request #173 from jasondavies/typo
...
Fix some minor typos.
2011-11-18 05:34:56 -08:00
antirez
e41677b4cf
prevent (more) commands from Lua scripts
2011-11-18 14:23:38 +01:00
antirez
4ab8695d53
New script timeout semantics and SCRIPT KILL implemented. SHUTDOWN NOSAVE and SHUTDOWN SAVE implemented.
2011-11-18 14:10:48 +01:00
Chris Lamb
5ae979bf57
Fix crash on SPARC due to improper alignment of allocated memory
...
I believe that you should be able to drop 'defined(__sun)' completely
from this clause, as Solaris on x86 hardware probably does not have
strict alignment requirements, but I don't have a way to test that.
Thanks to Jurij Smakov <jurij@wooyd.org>.
Signed-off-by: Chris Lamb <lamby@debian.org>
2011-11-16 17:21:16 +00:00
Pieter Noordhuis
42c6a5da3d
Don't force rebuild when params didn't change
2011-11-16 17:49:06 +01:00
Salvatore Sanfilippo
32adb53156
Merge pull request #192 from pietern/makefile
...
Add separate clean/distclean targets to Makefile
2011-11-16 01:29:42 -08:00
Pieter Noordhuis
5bb2c88e94
Rebuild source when allocator changes
...
To do so, the Makefile stores the contents of the MALLOC environment
variable in a file named .make-malloc. When the contents of this file
and the MALLOC variable are not equal, it forces a rebuild of the Redis
source tree.
A side-effect of this change is that choosing an allocator can now be
done using the single MALLOC variable instead of USE_TCMALLOC,
USE_JEMALLOC and so forth. These variables continue to work for
backwards compatibility.
2011-11-15 13:09:34 -08:00
Pieter Noordhuis
4b8a63941d
Rebuild deps/ and src/ when ARCH changes
...
This change moves the build instructions for dependencies to a separate
Makefile in deps/. The ARCH environment variable is stored in a
.make-arch file in the same directory as the Makefile. The contents of
this file is read and compared to the current ARCH, and, on a mismatch
triggers rebuilding the entire source tree.
When file .make-arch exists and matches with ARCH from the environment,
the dependencies are assumed to already be built.
The new "clean" target only cleans the Redis source tree, not its
dependencies. To clear the dependencies as well, the "distclean" target
can be used.
2011-11-15 12:41:35 -08:00
Pieter Noordhuis
321a0440c0
Use CCLINK as last argument
2011-11-15 09:39:38 -08:00
Pieter Noordhuis
61c0e893aa
CCLINK already includes ALLOC_LINK
2011-11-15 09:36:13 -08:00
Salvatore Sanfilippo
7b81e5a16c
Merge pull request #181 from redsquirrel/unstable
...
Fixing inject: it was failing when there was 1 or >2 sources
2011-11-15 06:36:53 -08:00
antirez
68bfe993c8
HINCRBYFLOAT implemented
2011-11-15 15:09:39 +01:00
antirez
d4a3cfed9c
Merge branch 'unstable' into incrbyfloat
2011-11-14 15:59:56 +01:00
antirez
d93f9a8644
string to number API is now more strict not accepting spaces before or after the number. A few tests converted to match the new error messages using the word float instead of double.
2011-11-14 15:34:44 +01:00
antirez
5244d6e54e
rewrite INCRBYFLOAT as SETs for AOF/replication
2011-11-14 10:15:13 +01:00
antirez
5574b53eae
INCRBYFLOAT implementation
2011-11-12 19:27:35 +01:00
antirez
4be855e757
Fixed issues with expire introduced with latest millisecond resolution feature. Many time_t were not converted to long long, and one time() call was not replaced with mstime().
2011-11-12 01:04:27 +01:00
antirez
3570629f90
set default client timeout to zero inside redis.h as well
2011-11-11 17:18:35 +01:00
antirez
12d293ca6e
high resolution expires API modified to use separated commands. AOF transation to PEXPIREAT of all the expire-style commands fixed.
2011-11-10 17:52:02 +01:00
Dave Hoover
57f8021cb2
Fixing inject: it was failing when there was 1 or >2 sources
2011-11-09 19:06:12 -06:00
antirez
dab5332f95
Fixed a few typos
2011-11-09 21:59:27 +01:00
antirez
bdbdb02edb
Fixed bug breaking rdbSaveMillisecondTime() in 32 bit systems. Thanks to @anydot (Přemysl Hrubý)
2011-11-09 18:47:48 +01:00
antirez
52d46855d9
TTL, EXPIRE and EXPIREAT now support the milliseconds input/output form
2011-11-09 18:05:35 +01:00
antirez
b0b74486e1
use "EXPIREAT ... ms" form when rewriting the AOF
2011-11-09 17:20:14 +01:00
antirez
7dcc10b65e
Initial support for key expire times with millisecond resolution. RDB version is now 3, new opcoded added for high resolution times. Redis is still able to correctly load RDB version 2. Tests passing but still a work in progress. API to specify milliseconds expires still missing, but the precision of normal expires is now already improved and working.
2011-11-09 16:51:19 +01:00
antirez
14ed10d957
dict set/get macros for integers fixed.
2011-11-09 13:39:59 +01:00
antirez
2c2b208537
added mstime() to get UNIX time in milliseconds.
2011-11-09 00:03:03 +01:00
antirez
6c578b764a
dict.c: added macros to get signed/unsigned integer values from hash
...
entry. Field name of hash entry union modified for clarity.
2011-11-08 23:59:53 +01:00
antirez
b28d0461b4
32bit build fixed, broken by a previous commit fixing build on Solaris
2011-11-08 21:00:52 +01:00
antirez
aa9a61ccd7
dict.c: added macros in dict.h to set signed and unsigned 64 bit values directly inside the hash entry without using additional memory.
2011-11-08 19:41:29 +01:00
antirez
c0ba9ebe13
dict.c API names modified to be more coincise and consistent.
2011-11-08 17:07:55 +01:00
antirez
71a50956b1
dict.c: added two lower level methods for directly manipulating hash entries. This is useful in order to set 64 bit integers as values directly inside the hash entry (in order to save memory), without casting, and even in 32 bit builds.
2011-11-08 16:57:20 +01:00
antirez
66d8818cb7
Merge branch 'unstable' into ttlres
2011-11-08 16:15:08 +01:00
antirez
b90314588f
useless double if removed.
2011-11-08 11:26:06 +01:00
antirez
b0a2e34059
yet another #if REDIS_MBULK_BIG_ARG removed.
2011-11-08 11:24:12 +01:00
antirez
53272781d0
Multi bulk optimization for creating big objects without copying data is no longer optional, #ifdefs removed. Also debugging messages removed.
2011-11-08 11:22:40 +01:00
antirez
65330badb9
hiredis/redis changes for speed with big payloads: read buffer size set
...
to 16k, request buffer size is no longer destroyed when emtpy and large
(better fix needed). Redis clients static output buffer set to 16k as
well.
2011-11-08 10:59:59 +01:00
antirez
d9747b496e
redis-benchmark: ability to run selected tests. Better help with examples.
2011-11-07 11:29:37 +01:00
antirez
7b86f5e6d5
csv output for redis-benchmark
2011-11-04 14:49:24 +01:00
antirez
410dfe90b2
PING / MSET benchmarks enabled again.
2011-11-04 11:20:19 +01:00
antirez
ca908473e8
A comment moved a few lines for clarity.
2011-11-04 11:18:15 +01:00
antirez
94d490b9f6
Added a define to set the size threshold to enable the multi bulk parsing big objects optimization.
2011-11-04 11:16:11 +01:00
antirez
826b5beb9c
further optimizations for the multi bulk protocol parsing code when big objects are transmitted to Redis.
2011-11-03 15:53:40 +01:00
antirez
9217095572
optimized object creation in multi-bulk protocol parsing
2011-11-02 17:30:19 +01:00
antirez
b8d743e181
sdsIncrLen() / sdsMakeRoomFor() used to avoid copying to intermediate buffer while reading the client query.
2011-11-02 16:52:45 +01:00
antirez
a54806ac6a
testhelp.h now exits with retcode 1 on failed tests.
2011-11-02 16:52:10 +01:00
antirez
dd5fbedf7b
I/O buffer length enlarged
2011-11-02 16:51:33 +01:00
antirez
d0b2a9b223
sdsMakeRoomFor() exposed as public API. sdsIncrLen() added. Both the changes make it possible to copy stuff from a system call to an sds buffer without the need of an additional buffer and copying overhead.
2011-11-02 16:50:59 +01:00
antirez
3526724594
added a comment to sdsMakeRoomFor() to make it clear what the function actually does.
2011-11-02 16:09:14 +01:00
antirez
6a7841eb09
added an union in the dict.h structure to store 64 bit integers directly into hash table entries.
2011-11-02 15:28:45 +01:00
Jason Davies
b91cbf66bb
Fix minor typos.
2011-11-01 19:58:09 +00:00
antirez
d569f39a77
removed the vmpointer structure that is no longer user in Redis >= 2.5.x
2011-10-31 15:47:12 +01:00
Salvatore Sanfilippo
404cd6450d
Merge pull request #170 from bnoordhuis/fix-sunos-build
...
build: fix sunos build, compile lua with __C99FEATURES__=1
2011-10-31 03:21:09 -07:00
antirez
aeecbdfae3
1fe4cd5
2011-10-31 11:14:24 +01:00
antirez
8996bf7720
7c6da73
2011-10-31 11:13:28 +01:00
antirez
58732c23d5
maxclients configuration is now implemented dealing with the actual process rlimits. Setting maxclients to 0 no longer makes sense and is now invalid, the new default is 10000.
...
See issue #162 for more information.
2011-10-31 10:49:27 +01:00
antirez
1eceb85ebc
It is now possible to disable password authentication via CONFIG SET. Thanks to Jan Oberst. This closes issue #171 .
2011-10-31 09:57:06 +01:00
Ben Noordhuis
b83e95830f
build: fix sunos build, compile lua with __C99FEATURES__=1
2011-10-30 03:20:00 +00:00
antirez
db6a2e7f78
Fixed a memory leak in redis-cli.c
2011-10-28 17:43:04 +02:00
antirez
e1cf460cf1
sds.c single quotes support
2011-10-28 17:31:40 +02:00
antirez
d8ba159b6c
use the more generic -BUSY error for idle scripts
2011-10-27 20:56:12 +02:00
antirez
115e3ff39e
If a Lua script executes for more time than the max time specified in the configuration Redis will log a warning, and will start accepting queries (re-entering the event loop), returning -SLOWSCRIPT error for all the commands but SHUTDOWN that remains callable.
2011-10-27 14:49:10 +02:00
Nathan Florea
bb48c5fa67
Set errno to 0 before calling strtol.
2011-10-26 13:01:24 +02:00
antirez
b508aeb994
Clear the AOF rewrite scheduled flag once an AOF rewrite is triggered. Fix for issue #161 , probably fixing 159 as well.
2011-10-26 12:53:30 +02:00
antirez
e089e61019
Don't timeout scripts if the instance is a slave.
2011-10-25 19:54:10 +02:00
antirez
e5abf6ef19
SCRIPT LOAD now returns the SHA1 instead of +OK
2011-10-25 14:46:15 +02:00
antirez
8cb8d417b1
Lau scripts default max execution time set to 5 seconds.
2011-10-25 12:10:15 +02:00
antirez
e8c993f0fb
Fixes for the scripting refactoring and new commands. Tests for the new features.
2011-10-25 11:19:15 +02:00
antirez
a9b07ac459
SCRIPT LOAD implemented, scripting eval command refactoring.
2011-10-25 10:25:59 +02:00
antirez
070e39454d
SCRIPT command for introspection and control of the scripting environment.
2011-10-24 22:47:00 +02:00
antirez
f013f40003
Fixed a few warnings compiling on Linux.
2011-10-23 10:57:01 +02:00
antirez
9e6a9f30ea
A past commit removed the inclusion of redis.h from rdb.c, completely breaking 32 bit builds under Linux.
2011-10-23 10:42:16 +02:00
antirez
9ed32ba083
Redis.call is now split into two variants of the same function. Redis.call will raise an error by default. Redis.pcall will return the error object instead.
2011-10-20 16:02:23 +02:00
antirez
73fac227a0
use signalModifiedKey to set the key as dirty in the context of WATCH for both MIGRATE and RESTORE.
2011-10-20 11:17:30 +02:00
antirez
8f2af26c2c
Merge remote-tracking branch 'origin/unstable' into unstable
2011-10-19 16:42:35 +02:00
antirez
15108778d5
JSON support for Lua scripting, based on work from @lp, thanks!. We are using the good and fast cjson by Mark Pulford.
2011-10-19 16:42:10 +02:00
smly
046f70f758
Fixed a small memory leak I found with valgrind
2011-10-18 20:18:26 +09:00
antirez
76e772f39a
Return from syncWithMaster() ASAP if the event fired but the instance is no longer a slave. This should fix Issue #145 .
2011-10-18 11:15:11 +02:00
antirez
6856c7b4d6
First implementation of the ASKING command. Semantics still to verify.
2011-10-17 17:35:23 +02:00
antirez
e0aab1fc79
MIGRATE +NOKEY error was missing the final CRLF causing a protocol error.
2011-10-17 16:44:08 +02:00
antirez
bfbc16ae83
Fixed a typo causing segfault on MIGRATE
2011-10-17 16:39:05 +02:00
antirez
13cd1515f9
FLUSHALL now prevents rdbSave() from resetting the dirty counter, so that the command will get replicated and put inside the AOF. This fixes issue #142
2011-10-17 10:31:47 +02:00
antirez
42a6fcd6c5
FLUSHALL will only perform a blocking SAVE if RDB persistence is configured.
2011-10-17 10:31:34 +02:00
antirez
6d61e5bf5b
Exit with Fatal error at startup if the RDB file signature or version is wrong.
...
Ref: issue #103
2011-10-14 16:59:38 +02:00
antirez
2e63cfe20d
redis-check-dump: RDB version 2 now supported.
2011-10-14 16:52:52 +02:00
antirez
80ad7189e8
More informative error when DEBUG RELOAD fails.
2011-10-14 14:31:33 +02:00
antirez
dd9ad57062
redis-trib: fix for a slot allocation bug.
2011-10-13 15:16:03 +02:00
antirez
2b9ce0192e
small comment added
2011-10-13 14:51:29 +02:00
antirez
ab52d1f4a8
Fix for issue #132 . Now AUTH raises an error if no server password is configured.
2011-10-10 22:21:17 +02:00
Salvatore Sanfilippo
70cb03e172
Merge pull request #126 from florean/unstable
...
Unlink Unix socket file on shutdown
2011-10-10 13:05:16 -07:00
Nathan Florea
8523876503
Added a config directive for a Unix socket mask
...
Added a configuration directive to allow a user to specify the
permissions to be granted to the Unix socket file. I followed
the format Pieter and Salvatore discusses in issue #85 (
https://github.com/antirez/redis/issues/85 ).
2011-10-10 11:21:15 -07:00
antirez
d83eda48e9
Issue #131 . stime/utime reported in INFO was inverted. Fixed thanks to Didier Spezia.
2011-10-10 15:31:55 +02:00
antirez
4ab18a3331
Fix for bug #128 about the RENAME command.
2011-10-10 15:21:19 +02:00
Nathan Florea
56209f720a
Unlink Unix socket file on shutdown
2011-10-09 00:46:03 -07:00
antirez
ff15dba093
not used parameter for redisLog() removed. Error message grammar fixed.
...
Thanks to @ardsrk.
2011-10-08 10:59:04 +02:00
antirez
d38ef52085
Redis Cluster: process node to node CLUSTERMSG_TYPE_PUBLISH messages and send it to the local clients.
2011-10-07 16:34:16 +02:00
antirez
c563ce463b
propagate PUBLISH messages using the redis cluster nodes bus. Still need to process the incoming packets of that type. Work in progress.
2011-10-07 15:37:34 +02:00
antirez
623131d408
Totally hackish and dirty, but working, support for Redis Cluster in redis-cli
2011-10-05 19:55:33 +02:00
antirez
9465d83efd
A node can populate a slot if a message from a trusted slot is received claiming ownership of this slot, that is currently empty or served by a node in FAIL state. However this feature was broken since calling clusterAddSlot() was not enough as the slot bit is already set in the node that pong us. We need to directly alter the table. This commit fixes the issue.
2011-10-05 17:40:02 +02:00
antirez
2aa26d2a63
CONFIG SET/GET support for loglevel
2011-10-05 16:08:35 +02:00
antirez
ad7a86fbe0
just minor aesthetic changes to cluster.c
2011-10-05 16:02:45 +02:00
antirez
eab0e26e03
replaced redisAssert() with redisAssertWithInfo() in a shitload of places.
2011-10-04 18:43:03 +02:00
antirez
bab205f787
redisAssertWithClientInfo() is now redisAssertWithInfo() that is also able to report an optional object. The client is also optional. Specifying NULL will prevent dumping the not available information (either client or object).
2011-10-04 18:05:26 +02:00
antirez
e3e6993510
Introduced a redisAssert() variant that is able to show information about the client in the context where the failed assertion was detected.
2011-10-04 17:22:29 +02:00
antirez
909aee2c6c
redis-trib: create subcommand fixed calling node info loading method. Was needed after recent refactoring.
2011-10-04 15:53:07 +02:00
antirez
0bb5160cb0
Revert "Use the new install script as make install target. Message about install script requiring root changed a bit to make it more evident."
...
After talking with Pieter he changed my mind about this, it is better to
have a simpler install script that works everywhere, and the complex one
can be always executed if needed by hand. We'll make possibly a new
target for the full featured installation script, and even suggest it
after a Make install.
This reverts commit f1e60d7530
.
2011-10-03 16:04:44 +02:00
antirez
37d650032a
Rewrite MIGRATE as DEL for AOF/replication. Also increment the dirty counter to both force replication and persistence.
2011-10-03 15:51:10 +02:00
antirez
2a95c944ff
increment server.dirty in restore command to make sure it is replicated and increments the dirty count for persistence concerns.
2011-10-03 15:45:14 +02:00
Salvatore Sanfilippo
cd73df62af
Merge pull request #114 from pietern/unstable-zcount
...
Use rank information to compute ZCOUNT
2011-10-03 06:20:23 -07:00
Pieter Noordhuis
0cfc894066
Remove ZCOUNT branches from generic RANGEBYSCORE code
2011-10-03 14:23:31 +02:00
Pieter Noordhuis
62d774e5ba
Use element rank instead of iterating in ZCOUNT
2011-10-03 14:14:43 +02:00
antirez
f1e60d7530
Use the new install script as make install target. Message about install script requiring root changed a bit to make it more evident.
2011-10-03 13:28:54 +02:00
antirez
13c7e5ef29
Exact variant of CRC16 specified into crc16.c
2011-10-02 14:05:29 +02:00
antirez
66c146592a
when processing gossip packets make sure to also update the node bitmap when associating slots to nodes. Fixed simply using the appropriate helper function to add a slot.
2011-10-01 15:11:07 +02:00
antirez
7112580cb3
fixed a few problems with redis-trib resharding.
2011-10-01 01:31:46 +02:00
antirez
a0189bbe75
redis-trib: initial working implementation of cluster rehashing, more work needed to make it more correct, more reliable.
2011-09-30 22:18:07 +02:00
antirez
d38d2fdfdc
Fixed two bugs in the CLUSTER SETSLOT ... NODE subcommand
2011-09-30 22:17:24 +02:00
antirez
9a38df8799
redis-trib: actual slot migration work in progress, more work needed.
2011-09-30 19:21:36 +02:00
antirez
c5954c1966
Clear the importing status from the slot if a CLUSTER SETSLOT command permanently assigns the slot to the importing node.
2011-09-30 19:20:56 +02:00
antirez
6c0047c430
redis-trib: better slots allocation strategy for resharding
2011-09-30 18:41:25 +02:00
antirez
841cd7684c
redis-trib: initial slots allocation strategy, still to improve for better balancing when there are just a few slots to move.
2011-09-30 18:28:51 +02:00
antirez
85b514d165
redis-trib: reshard command work in progress
2011-09-29 16:06:49 +02:00
antirez
9514aa3251
redis-trib: minor refactoring creating a method to load the cluster information starting from a single node
2011-09-29 15:45:10 +02:00
antirez
5d8f25da36
redis-trib: don't crash loading node info for nodes without assigned slots
2011-09-29 15:31:02 +02:00
antirez
3b5289a04c
added comment about SETSLOT NODE form.
2011-09-29 15:26:01 +02:00
antirez
7afc3a9611
Fixed command table for RESTORE to make it accepting keys only for the right slots when cluster is enabled.
2011-09-29 15:14:06 +02:00
antirez
d7021b081b
redis-trib: added cluster state to node info string
2011-09-29 15:04:23 +02:00
antirez
92dd76c8ee
redis-trib: all node information into a single hash
2011-09-29 14:44:27 +02:00
antirez
b08c9dd280
redis-trib: when loading node info also fetch the output of CLUSTER INFO.
2011-09-29 13:18:09 +02:00
antirez
f639f99180
redis-trib cluster check command: check that all the 4096 slots are covered
2011-09-29 12:50:46 +02:00
antirez
0cae060a26
Compilation fixed on OpenBSD making sure that _XOPEN_SOURCE is set to 700 in fmacros.h
2011-09-29 10:20:03 +02:00
antirez
d3f7fbfc09
initial node loading info code for redis-trib
2011-09-28 19:08:35 +02:00