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