1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-14 11:58:02 +00:00
Commit graph

2945 commits

Author SHA1 Message Date
Roman Gershman
997d2dcb69 more work on rdb load.
1. Added support of loading of compressed strings.
2. Verified we load expiry info.
3. Extended supported expiry period to 4 years (previously I set 1 year).
2022-04-13 10:50:19 +03:00
Roman Gershman
cafabce161 Support loading of zset, hset entries 2022-04-12 21:21:03 +03:00
Roman Gershman
bfcefd932d Support rdb loading.
1. Basic support of sets and hsets. No intset or dict-based hset yet.
2. Make sure that rdbloader actually loads the data into shards.
3. Support object metadata like expiry time.
4. Support lists loading.
2022-04-12 16:39:25 +03:00
Roman Gershman
7f8346cded Implement DEBUG RELOAD option.
Fix c++ and openssl deprecation warnings.
2022-04-12 11:29:42 +03:00
Roman Gershman
d2b6907f2d Improve docker entry point script.
Change default port to 6379.
Log data directory path.
2022-04-08 08:54:53 +03:00
Roman Gershman
49781e8daf Some bug fixes.
closes #19 and closes #20.
2022-04-08 06:53:22 +03:00
Roman Gershman
5ef63f41d2 Fix bugs related to error reporting.
1. Fix #9
2. SINTER now reports error if some of its keys are of wrong type.
2022-04-07 12:01:18 +03:00
Roman Gershman
d03cea5e36 Code simplifications.
1. Sets do not use anymore redis encoding constants in our codebase.
2. rdb_save serializes now expiry information as well.
3. db_slice provides a simplified api to translate from absolute time to ExpirePeriod.
4. common_types.h is renamed to common.h. cached memory usage variables are moved there.
2022-04-07 11:01:10 +03:00
Roman Gershman
fa70267729 Add ZRANK,ZCOUNT,ZREVRANK.
1. Fix #12 - return number of added items for non-increment usecase.
2. Fix #15 - fix double precision response. I use a different printing algorithm that of Redis
   therefore there could be string differences between 2 systems. However, both replies should
   be equivalent numerically.
3. Fix #13.  Reject ZADD with LT and GT options together.
4. Fix #11 - return correct error when parsing invalid scores.
2022-04-06 22:54:10 +03:00
Roman Gershman
92ebb74500 Add ZSET serialization 2022-04-06 17:17:33 +03:00
Roman Gershman
abbefd0bc4 More bug fixes.
1. RENAME now unblocks blpop/brpop.
2. Fix a deadlock bug with blpop running with the same key multiple times.
2022-04-06 10:32:42 +03:00
Roman Gershman
1fc9f11e76 Bug fixes.
1. Fix crash when calling BLPOP on the same key several times.
2. Extend RENAME functionality to cover all data-types.
   Before that it worked only for strings and that also was incorrect.
2022-04-05 23:20:05 +03:00
Roman Gershman
c6e4e97865 List fixes.
1. Fix blocked_clients statistic.
2. Add HELLO decorator.
3. Non-list keys should not wake blpop/brpop commands.
4. Fix Info output whitespacing.
2022-04-05 18:45:58 +03:00
Roman Gershman
948fbce4bd Fix GETRANGE and ascii packing bugs 2022-04-05 14:46:26 +03:00
Roman Gershman
ba1314201c Implement list serialization 2022-04-05 12:04:03 +03:00
Roman Gershman
19583ca7f2 Add HSTRLEN. Bug fixes. 2022-04-05 08:36:00 +03:00
Roman Gershman
cae1403191 Bug fixes.
1. Fix memory corruption bug in quicklist and listpack due to wrong assert usage.
2. Add HSETNX command and fix skip_exists semantics in OpSet function.
3. Add tests for hsetnx.
4. Add MEMORY USAGE decorator.
5. redis_parser accepts arrays upto 8192 elements.
6. Fix listpack replace call when passing an empty string.
7. Implement "debug object" command.
2022-04-04 22:48:49 +03:00
Roman Gershman
8a1396de31 Address HSET bugs
1. add hmset
2. hmget returns nulls when key not found
3. test for valid number of arguments in hset
2022-04-04 13:08:16 +03:00
Roman Gershman
a845e9bce1 Implement serialization of HSET 2022-04-04 12:07:27 +03:00
Roman Gershman
d5cea3f5f3 robustness fixes plus improve support for auxillary commands so we could run tcl tests.
GETRANGE - fix out of bounds bug.
Add a decorator for "config get"
Add a decorator for "function flush"
2022-04-03 22:55:56 +03:00
Roman Gershman
579ba3149b Fix GETRANGE exception. Fix SETRANGE case with empty value and non-existing key. 2022-04-03 16:09:08 +03:00
Roman Gershman
167f949c5a Support LIST, SET for rdb save 2022-04-02 19:57:52 +03:00
Roman Gershman
ff88e3117b Add HINCRBY, HVALS, HSETNX commands 2022-04-02 18:47:06 +03:00
Roman Gershman
d542c38475 Add MSETNX and SUBSTR commands 2022-04-02 18:47:06 +03:00
Roman Gershman
ba71e9a943 PUBSUB: more polishes.
Implement atomic message passing that will allow handling commands in a subscribed state together with passing
message from publishers.
2022-04-01 10:12:32 +03:00
Roman Gershman
077ebe460d
Improve formatting of the license 2022-03-31 18:58:35 +03:00
Roman Gershman
c034829a7f Add CONFIG SET stub that accept any parameters but does nothing 2022-03-31 14:43:25 +03:00
Roman Gershman
4938d8af63 Add DISCARD and BRPOP commands 2022-03-31 14:26:33 +03:00
Roman Gershman
37f09f315e Implement MATCH and TYPE options for the SCAN command 2022-03-31 12:08:45 +03:00
Roman Gershman
b9c1288c67 Implement ZINCRBY/ZADD INCR 2022-03-30 14:25:42 +03:00
Roman Gershman
39ef7bf630 Fix SDIFFSTORE bug 2022-03-30 02:04:49 +03:00
Roman Gershman
e29f76ad4d Implement the initial version of PUBSUB.
There are some things left to polish, mainly around
processing a subset of commands while being blocked in a subscribed state.
Also I need to solve the issue of atomic replies when publishing messages in parallel with
processing the whitelisted commands in a subscribed state.
2022-03-29 20:20:06 +03:00
Roman Gershman
e46f2b5384 Support returning arrays from lua scripts 2022-03-29 17:27:48 +03:00
Roman Gershman
789724584a Fix SETRANGE command 2022-03-29 12:01:36 +03:00
Roman Gershman
a6808445cf Support COUNT option in SCAN 2022-03-28 22:35:25 +03:00
Roman Gershman
7595ff6236 Support for COUNT argument in RPOP/LPOP 2022-03-28 20:13:36 +03:00
Roman Gershman
efbdebaf94 Fix Size() method for compact object 2022-03-28 17:15:33 +03:00
Roman Gershman
c98bc934f2 Fix (P)TTL issue with non-existing keys. Improve logging for binary values. Fix RENAME bugs 2022-03-28 17:02:03 +03:00
Roman Gershman
3e2929dfb6 Add SETRANGE,PSETEX commands 2022-03-27 18:29:31 +03:00
Roman Gershman
09101c70a5 Add RPUSHX/LPUSHX commands 2022-03-27 18:29:31 +03:00
Roman Gershman
b2c50a6fe3 CI fixes 2022-03-27 18:28:53 +03:00
Roman Gershman
0ce043e7a4 Add StrLen and GetRange commands 2022-03-24 14:16:00 +02:00
odedponcz
fd220ea621
Update README.md 2022-03-24 11:30:22 +02:00
Roman Gershman
47caa972da Add ZREVRANGE and skeleton for PUBLISH/SUBSCRIBE
Fix a memory leak with dispatch queue in client connection.
2022-03-23 20:45:25 +02:00
Roman Gershman
cb14df0e6b Add SSCAN command.
Update README with 2.x API commands.
2022-03-23 17:54:25 +02:00
Roman Gershman
f1ea69c0b4 Fix SDIFF/SINTER commands 2022-03-22 23:50:47 +02:00
Roman Gershman
c533ffb692 switch back to dict implementation for set due to sscan command 2022-03-22 20:53:54 +02:00
Roman Gershman
5bce920308 Add ZREMRANGEBYSCORE and ZREMRANGEBYRANK commands 2022-03-19 15:22:40 +02:00
Roman Gershman
cb0d8dfee2 Add ZRANGEBYSCORE. Cover rank case for ZRANGE 2022-03-18 05:12:22 +02:00
Roman Gershman
0611a3e760 Initial work on ZRANGE command. Support BYSCORE case 2022-03-17 09:40:09 +02:00