Commit Graph

568 Commits

Author SHA1 Message Date
Pieter Noordhuis
3f973463a7 make sure that the resulting value in hincrby is encoded when possible 2010-04-17 12:46:23 +02:00
Pieter Noordhuis
edc2f63ad9 increment dirty counter after hmset 2010-04-17 12:35:22 +02:00
Pieter Noordhuis
97224de7f9 strip tryObjectEncoding from hashSet, to enable the arguments being encoded in-place 2010-04-17 12:33:43 +02:00
antirez
c651fd9ee3 Added support for Guru Mediation, and raising a guru mediation if refCount <= 0 but decrRefCount is called against such an object 2010-04-17 11:35:05 +02:00
Pieter Noordhuis
55017f9da0 fix small error and memory leaks in SORT 2010-04-16 18:11:57 +02:00
antirez
b4eb9ccdcb Merge branch 'hash-refactor' of git://github.com/pietern/redis 2010-04-16 15:53:44 +02:00
Pieter Noordhuis
b6f07345c9 check object type in lookupKeyByPattern 2010-04-16 13:37:40 +02:00
Pieter Noordhuis
705dad386d make sortCommand aware that lookupKeyByPattern always increased the refcount of the returned value 2010-04-16 13:31:17 +02:00
Pieter Noordhuis
a3f3af860b revert 0c390a to stop using tricks with o->refcount 2010-04-16 13:20:12 +02:00
Pieter Noordhuis
c44d3b56df store the hash iterator on the heap instead of the stack 2010-04-16 12:48:48 +02:00
Pieter Noordhuis
c811bb381d drop inline directive 2010-04-16 12:13:41 +02:00
Pieter Noordhuis
feb8d7e6a6 rename hashReplace to hashSet 2010-04-16 12:12:50 +02:00
Konstantin Merenkov
d4dd6556c3 Don't set expire to keys with ttl=0, remove them immediately. 2010-04-15 21:29:46 +02:00
Pieter Noordhuis
16fa22f12b make sure that cmpobj is in decoded form when sorting by ALPHA (this solves edge case from previous commit where (!sortby && alpha) == 1) 2010-04-15 20:55:34 +02:00
Pieter Noordhuis
6d7d1370c3 enable hash dereference in SORT on BY and GET 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
6e9e463f80 use shared replies for hset 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
0c390abc69 set refcount of string objects retrieved from zipmaps to 0, so we don't have to touch the refcount of the objects inside dicts 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
1f1c769518 added HSETNX 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
7fb16bacae refactor of hash commands to use specialized api that abstracts zipmap and dict apis 2010-04-15 19:16:39 +02:00
Pieter Noordhuis
a71f072f73 move retrieval of long up to prevent an empty hash from being created 2010-04-15 19:16:38 +02:00
antirez
8ca3e9d10b Active rehashing 2010-04-15 18:07:57 +02:00
antirez
5413c40da7 Incrementally rehahsing hash table! Thanks to Derek Collison and Pieter Noordhuis for feedbacks/help 2010-04-15 11:59:13 +02:00
antirez
e6cca5dba6 Does not allow commands other than Pub/Sub commands when there is at least one pattern 2010-04-14 12:12:25 +02:00
Alex McHale
9a22de8270 Fixed a tiny memory leak when loading the configuration file. 2010-04-13 11:48:33 -05:00
antirez
b60bace9f9 Merge branch 'hmget' of git://github.com/pietern/redis 2010-04-13 18:30:55 +02:00
Alex McHale
bbe025e04b Validate numeric inputs. 2010-04-13 10:23:10 -05:00
Alex McHale
e0a62c7fdb Remove trailing whitespace. 2010-04-13 10:21:39 -05:00
antirez
4e27f26863 Now all the commands returning a multi bulk reply against non existing keys will return an empty multi bulk, not a nil one 2010-04-12 16:03:41 +02:00
Pieter Noordhuis
09aeb5790f implemented HMGET 2010-04-12 14:57:38 +02:00
Pieter Noordhuis
d33278d160 implemented HMSET 2010-04-12 12:29:37 +02:00
antirez
05df762175 Sharing of small integer objects: may save a lot of memory with datasets having many of this 2010-04-12 11:38:08 +02:00
antirez
10d91d7fb3 removed a no longer true assert in the VM code 2010-04-09 18:35:24 +02:00
antirez
bdcb92f273 shareobjects feautres killed - no gains most of the time, but VM complexities 2010-04-09 17:13:39 +02:00
antirez
78ebe4c88f use directly the real key object in VM I/O jobs to match by pointer, and to handle different keys with the same name living in different DBs, but being at the same moment in the IO job queues 2010-04-09 17:02:56 +02:00
antirez
884d4b39d4 Prevent hash table resize while there are active child processes in order to play well with copy on write 2010-04-08 20:08:51 +02:00
antirez
5727b9aa94 Merge branch 'issue_218' of git://github.com/pietern/redis 2010-04-08 16:07:26 +02:00
antirez
10c2baa50a -1 not needed... 2010-04-08 16:07:18 +02:00
antirez
6fcb180039 Skiplist theoretical fix 2010-04-08 15:56:21 +02:00
antirez
454eea7c44 Now when a child is terminated by a signal, the signal number is logged as well 2010-04-07 17:36:44 +02:00
Pieter Noordhuis
aa7c29340f use long long reply type for HINCRBY 2010-04-05 16:51:48 +02:00
Pieter Noordhuis
5e26ae88b8 last argument is never encoded for HINCRBY 2010-04-05 16:51:34 +02:00
antirez
4005fef124 Now PUBLISH commands are replicated to slaves 2010-04-02 16:42:15 +02:00
Pieter Noordhuis
8bca8773b4 use the right object when cleaning up after zunion/zinter (fixes issue 216) 2010-04-01 22:07:50 +02:00
antirez
14ae26d89d Merge branch 'zipmap' of git://github.com/pietern/redis 2010-04-01 18:48:14 +02:00
Pieter Noordhuis
e9484a8502 reduce code complexity because zipmapLen now is O(1) 2010-04-01 14:31:13 +02:00
antirez
ffc6b7f864 Pub/Sub pattern matching capabilities 2010-04-01 13:13:29 +02:00
antirez
958cd5f394 Deny EXEC under out of memory 2010-03-31 19:49:12 +02:00
antirez
d6cc8867b7 No timeouts nor other commands for clients in a Pub/Sub context 2010-03-29 17:48:13 +02:00
antirez
ff767a7580 free hash table entries about no longer active classes, so that PUBSUB can be abused with millions of different classes 2010-03-29 12:33:41 +02:00
antirez
201037f562 Fixed a refcount stuff leading to PUBSUB crashes 2010-03-29 12:23:02 +02:00
antirez
fc46bb71ae First pubsub fix 2010-03-29 12:13:35 +02:00
antirez
befec3cd91 PUBSUB implemented 2010-03-29 11:47:58 +02:00
antirez
cac154c580 Redis version is now 1.3.8 2010-03-29 08:38:23 +02:00
antirez
570e43c828 Merge branch 'hincrby' of git://github.com/pietern/redis 2010-03-26 17:08:47 +01:00
Pieter Noordhuis
53476b82a1 removed unnecessary refcount increase that caused the HINCRBY memleak 2010-03-26 16:45:41 +01:00
Pieter Noordhuis
01426b054c implements HINCRBY and tests (todo: find and fix small memleak) 2010-03-26 16:03:19 +01:00
antirez
168ac5c6e3 Removed a useless if spotted by Pieter Noordhuis 2010-03-26 11:21:11 +01:00
antirez
248ea31003 Fixed a critical replication bug: binary values issued with the multi bulk protocol caused a protocol desync with slaves. 2010-03-26 10:56:27 +01:00
antirez
b61a28fe35 Fixed the reply about denied write commands under maxmemory reached condition: now the error will no longer lead to a client-server protocol desync 2010-03-24 21:58:34 +01:00
antirez
500ece7c17 CONFIG command implemened -- just a start but already useful 2010-03-24 21:46:51 +01:00
antirez
e940927314 with --help states that you can use - as config file name to feed config via stdin 2010-03-23 20:04:55 +01:00
antirez
2a6a2ed102 New INFO field: expired_keys 2010-03-23 19:40:13 +01:00
antirez
1763929f23 the Cron timer function is now called 10 times per second instead of 1 time per second to make Redis more responsibe to BGSAVE and to delete expired keys more incrementally 2010-03-23 19:15:02 +01:00
antirez
d36c4e97e5 key deletion on empty value fix + some refactoring 2010-03-23 12:29:35 +01:00
antirez
3ea27d37d1 Empty value trigger key removal in all the operations 2010-03-23 12:15:44 +01:00
antirez
44efe66ef2 Merged gnrfan patches fixing issues 191, 193, 194 2010-03-22 17:31:46 +01:00
antirez
7bf90179a3 Merge branch 'issue_193' of git://github.com/gnrfan/redis 2010-03-22 17:29:20 +01:00
antirez
5e2022bb48 Merge branch 'issue_191' of git://github.com/gnrfan/redis 2010-03-22 17:29:09 +01:00
antirez
a9c723ea1e Redis master version is now 1.3.7 2010-03-22 17:08:29 +01:00
Jeremy Zawodny
b3f83f1272 support for include directive in config parser 2010-03-19 22:24:17 -07:00
antirez
aa42c9a791 Removed a stupid overriding of config values due to a wrong cut&paste 2010-03-19 19:02:24 +01:00
antirez
a97b906092 VM hash type swappability implemented. Handling of failed pthread_create() call. 2010-03-19 18:02:37 +01:00
Antonio Ognio
42ab0172ab Solving issue #191 on Google Code: -v and --version should print the version of Redis 2010-03-19 04:19:42 -05:00
Antonio Ognio
723fb69b9e Solves issue #194 on Google Code: --help parameter to redis-srver prints the usage message 2010-03-19 01:49:09 -05:00
Antonio Ognio
6bccf64a5e Fixing issue 193 2010-03-19 01:01:08 -05:00
antirez
c77169b7e9 increment server.dirty on HDEL 2010-03-18 18:56:07 +01:00
antirez
7b7f987e91 Redis 1.3.6 2010-03-18 16:55:49 +01:00
antirez
db5946fc27 Optimization fixed and re-activated 2010-03-18 03:06:08 +01:00
antirez
bf0da6174c reverted an optimization that makes Redis not stable 2010-03-18 02:59:28 +01:00
antirez
2a1198b4c4 HDEL fix, an optimization for comparison of objects in hash table lookups when they are integer encoding 2010-03-17 19:26:53 +01:00
antirez
a4c507866c Version is now 1.3.5 2010-03-17 18:30:15 +01:00
antirez
4583c4f0ea Merged Pietern patch for VM key args helper function. Fixed an obvious bug in the redis-cli passwd auth stuff 2010-03-17 17:14:07 +01:00
antirez
17d68f9c99 Merge branch 'aggregates' of git://github.com/pietern/redis 2010-03-17 16:59:29 +01:00
antirez
a86f14b190 HEXISTS and tests implemented 2010-03-17 13:34:27 +01:00
antirez
2069d06a0b Fixed a bug in HSET, a memory leak, and a theoretical bug in dict.c 2010-03-17 02:00:03 +01:00
Pieter Noordhuis
76583ea455 added preloading keys from VM when using ZINTER or ZUNION 2010-03-16 20:43:49 +01:00
Pieter Noordhuis
d2764cd692 added explicit AGGREGATE [SUM|MIN|MAX] option to ZUNION/ZINTER 2010-03-16 20:34:45 +01:00
antirez
164ee59564 HGET fix for integer encoded field against zipmap encoded hash 2010-03-16 18:44:37 +01:00
antirez
78409a0f84 HKEYS / HVALS / HGETALL 2010-03-16 16:09:58 +01:00
antirez
6d4fb107b2 Solved a memory leak with Hashes 2010-03-16 01:11:23 +01:00
antirez
dd88747b78 pretty big refactoring 2010-03-15 23:59:40 +01:00
antirez
92b27fe946 An interesting refactoring + more expressive internal API 2010-03-15 22:46:20 +01:00
antirez
653c9240b7 Fixed the same problem in ZREVRANK 2010-03-15 19:33:26 +01:00
antirez
cc3b01c30a Fixed a ZRANK bug 2010-03-15 19:33:01 +01:00
antirez
bae2c7ec6b zipmap to hash conversion in HSET 2010-03-15 18:28:12 +01:00
antirez
55a8298fcf max zipmap entries and max zipmap value parameters added into INFO output 2010-03-14 13:58:28 +01:00
antirez
07efaf7467 HDEL and some improvement in DEBUG OBJECT command 2010-03-14 13:54:31 +01:00
antirez
9c8e3cee26 Append only file support for hashes 2010-03-14 13:40:41 +01:00
antirez
5de9ad7c85 A minor fix and a few debug messages removed 2010-03-12 23:46:27 +01:00
antirez
8c5abee892 Applied the replication bug patch provided by Jeremy Zawodny, removing temp file collision after the slave got the dump.rdb file in the SYNC stage 2010-03-12 11:38:53 +01:00
antirez
bcd1190644 Fix for HGET against non Hash type, debug messages used to understand a bit better a corrupted rdb file 2010-03-11 16:10:36 +01:00
Pieter Noordhuis
b9eed483ae fix: use zmalloc instead of malloc 2010-03-09 17:32:24 +01:00
antirez
c1d57a1063 Merged zsetops branch from Pietern 2010-03-09 16:25:55 +01:00
antirez
ee5cfe3853 Merged ZREMBYRANK from Pietern 2010-03-09 16:22:50 +01:00
antirez
e3f46030fc Merged ZREVRANK from Pietern 2010-03-09 16:19:33 +01:00
Pieter Noordhuis
8f92e76831 use a struct to store both a dict and its weight for ZUNION and ZINTER, so qsort can be applied 2010-03-09 16:12:34 +01:00
antirez
ada386b218 Hash auto conversion from zipmap to hash table, type fixed for hashes, hash loading from disk 2010-03-09 13:18:49 +01:00
Pieter Noordhuis
2830ca539b replaced ZMERGE by ZUNION and ZINTER. note: key preloading by the VM does not yet work 2010-03-09 12:38:50 +01:00
antirez
b1befe6a8e Hashes saving / fixes 2010-03-08 21:33:07 +01:00
Pieter Noordhuis
b287c9bb2b use ZMERGE as starting point 2010-03-08 21:27:26 +01:00
antirez
cbba7dd7c9 HSET fixes, now the new pointer is stored back in the object pointer field 2010-03-07 23:41:48 +01:00
Pieter Noordhuis
798d9e5531 added ZREVRANK 2010-03-07 20:35:53 +01:00
antirez
18e61fa2ff Fix for replicaiton with over 2GB dump file initial SYNC stage 2010-03-06 12:08:22 +01:00
antirez
978c2c944c first implementation of HSET/HSET. More work needed 2010-03-06 01:56:16 +01:00
antirez
5234952bee zipmaps functions to get, iterate, test for existence. Initial works for Hash data type 2010-03-05 14:04:17 +01:00
Pieter Noordhuis
841053366f moved code to delete a single node from a zset to a separate function 2010-03-04 17:55:16 +01:00
Pieter Noordhuis
f84d393374 rename zslDeleteRange to zslDeleteRangeByScore (to differentiate between deleting using score or rank) 2010-03-04 17:50:25 +01:00
Pieter Noordhuis
2424490f9b use 1-based rank across zsl*Rank functions consistently 2010-03-04 17:48:31 +01:00
Pieter Noordhuis
9212eafd5d implemented ZREMBYRANK 2010-03-04 17:42:33 +01:00
antirez
94e543b5c2 A fix for initialization of augmented skip lists 2010-03-04 17:00:06 +01:00
antirez
ddfaca9d81 A fix for an invalid access when VM is disabled 2010-03-04 16:48:26 +01:00
antirez
947efa8d6e Merge branch 'zsl-get-rank' of git://github.com/pietern/redis 2010-03-04 16:43:50 +01:00
Pieter Noordhuis
a50ea45c84 merged memory reduction patch 2010-03-04 16:35:57 +01:00
antirez
520b5a33ae Now list push commands return the length of the new list, thanks to Gustavo Picon 2010-03-04 16:16:01 +01:00
Pieter Noordhuis
edb519581a first check if starting point is trivial (head or tail) before applying log(N) search 2010-03-04 14:23:59 +01:00
Pieter Noordhuis
e74825c24f use rank to find starting point for ZRANGE and ZREVRANGE 2010-03-04 14:16:07 +01:00
Pieter Noordhuis
27b0ccca71 lookup rank of a zset entry in a different function 2010-03-04 13:35:46 +01:00
antirez
8fe7fad771 SUBSTR fix for integer encoded vals 2010-03-04 13:10:50 +01:00
Pieter Noordhuis
67cac14343 fix ZRANK (realize that rank is 1-based due to the skip list header) 2010-03-04 01:33:37 +01:00
antirez
3919155375 initial implementation of SUBSTR 2010-03-03 23:15:52 +01:00
Pieter Noordhuis
2b37892e9b use less memory as element->span[0] will always be 1; any level 0 skip list is essentially a linked list 2010-03-03 19:04:38 +01:00
Pieter Noordhuis
912b9165a9 rank is very unlikely to overflow integer range 2010-03-03 18:40:42 +01:00
Pieter Noordhuis
709d0a1bbc x->backward never equals zsl->header 2010-03-03 18:35:56 +01:00
Pieter Noordhuis
69d95c3e1c initial implementation for augmented zsets and the zrank command 2010-03-03 18:21:02 +01:00
antirez
54bac49d92 minor fix for a Linux warning 2010-03-02 17:42:22 +01:00
antirez
ed7451548a Better to increment the version minor number when a VM bug is fixed... it will be simpler to understand what's going on when users will report problems with the INFO trace. 2010-03-02 00:57:09 +01:00
antirez
ba76a8f901 Fixed a subtle VM bug... was not flushing the buffer so the child process read truncated data 2010-03-02 00:52:50 +01:00
antirez
a3f9eec291 KEYS now returns a multi bulk reply 2010-03-01 23:46:24 +01:00
Damian Janowski
18b6cb7643 Add DISCARD command to discard queued MULTI commands. 2010-03-01 23:29:48 +01:00
antirez
c8c72447f6 Swappability bug due to a typo fixed thanks to code review by Felix Geisendörfer @felixge 2010-03-01 22:15:49 +01:00
antirez
5921aa36ed Bug #169 fixed (BLOP/BRPOP interrupted connections are not cleared from the queue) 2010-02-27 12:26:08 +01:00
antirez
9ebed7cf06 Fixed 32bit make target to work on Linux out of the box 2010-02-22 17:36:54 +01:00
antirez
12d090d2d0 A problem with replication with multiple slaves connectiong to a single master fixed. It was due to a typo, and reported on github by the user micmac. Also the copyright year fixed from many files. 2010-02-19 11:23:57 +01:00
antirez
7c775e0943 VM now is able to block clients on swapped keys for all the commands 2010-02-09 14:01:49 +01:00
antirez
f44dd42872 ZRANGEBYSCORE now supports open intervals, prefixing double values with a open paren. Added ZCOUNT that can count the elements inside an interval of scores, this supports open intervals too 2010-02-07 21:52:35 +01:00
antirez
3a3978b10b WITHSCORES in ZRANGEBYSCORE thanks to Sam Hendley 2010-02-07 10:32:28 +01:00
Sam Hendley
0500ef2736 Added "withscores" option to zrangebyscore command. Based on withscores support in zrange function, ugliest part was the argument parsing to handle
using it with the limit option.
2010-02-06 18:41:25 -05:00
antirez
59146ef3c1 DEBUG OBJECT provide info about serialized object length even when VM is disabled 2010-02-06 18:53:39 +01:00
antirez
6766f45ef2 multi bulk requests in redis-benchmark, default fsync policy changed to everysec, added a prefix character for DEBUG logs 2010-02-06 13:39:07 +01:00
antirez
4b00bebd3d APPEND command 2010-02-04 15:55:52 +01:00