You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Implement HSETEX command with Redis 8.0 compatibility
- Adds `HSETEX` command parsing and handling, including `EX`, `PX`,
`EXAT`, `PXAT`, `FNX`, and `FXX` options. - Modifies `DEL` command to
accept multiple keys and return the count of deleted keys, aligning with
Redis behavior. - Introduces `ExpireOption` enum to represent various
TTL/expiration settings for commands. - Implements `handle_hsetex`
function in `server.rs` to manage the logic for `HSETEX`, including
conditional writes (`FNX`, `FXX`) and expiration. - Integrates `HSETEX`
into the shard manager for both synchronous and asynchronous write
operations, handling `expires_at` logic for hash fields. - Updates
`README.md` to document the new `HSETEX` command and the updated `DEL`
command usage.
Copy file name to clipboardExpand all lines: README.md
+31-2Lines changed: 31 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,7 +52,7 @@ Blobasaur is a high-performance, sharded blob storage server written in Rust. It
52
52
53
53
-**🚀 High Performance Sharding**: Distributes data across multiple SQLite databases using multi-probe consistent hashing for optimal concurrency and scalability
54
54
-**🔄 Shard Migration**: Built-in support for migrating data between different shard configurations with data integrity verification
55
-
-**🔌 Redis Protocol Compatible**: Full compatibility with Redis clients using standard commands (`GET`, `SET`, `DEL`, `EXISTS`, `HGET`, `HSET`, `HDEL`, `HEXISTS`)
55
+
-**🔌 Redis Protocol Compatible**: Full compatibility with Redis clients using standard commands (`GET`, `SET`, `DEL`, `EXISTS`, `HGET`, `HSET`, `HSETEX`, `HDEL`, `HEXISTS`)
56
56
-**⚡ Asynchronous Operations**: Built on Tokio for non-blocking I/O and efficient concurrent request handling
57
57
-**💾 SQLite Backend**: Each shard uses its own SQLite database for simple deployment and reliable storage
0 commit comments