We're excited to announce the release of cachegrand v0.2.0, packed with new features, optimizations, and improvements to elevate your data storage experience. Here's what's new in this release:
✨ New Features:
- RDB Load/Save support: Exchange data with Redis or other Redis-like platforms (currently supporting strings only)
- Keys Eviction: Configurable limits and policies with default hard limit at 75% usable memory and soft limit at 70%
- Auto-tuning keys eviction aggressiveness based on soft and hard limits
- Clock Performance Improvements: Switched to TSC for most time-related operations
- Optimized Hashtable: Efficiently identifies and skips empty sections to save cycles and avoid unnecessary data scanning
- io_uring Cooperative Taskrun and Single Issuer Support: Boosts performance (5.19 kernel required for Taskrun; 6.0 kernel required for Single Issuer)
- FFMA Support without Hugepages: Rewritten and optimized, outperforming other memory allocators in most cases under low and high concurrency
🔗 Visit our website https://cachegrand.io/ and GitHub repository https://github.com/danielealbano/cachegrand for more information.
Also, don't miss out on the opportunity of joining the beta testing for a Cache-as-a-Service platform based on top of cachegrand, visit https://cachegrand.io/cache-as-a-service for more information.
🎯 To try it out
docker run \
-it \
--pull=always \
--ulimit memlock=-1:-1 \
--ulimit nofile=262144:262144 \
-p 6379:6379 \
-p 6380:6380 \
--rm \
cachegrand/cachegrand-server:latest
📋 Below the list of supported Redis commands
Command | Notes |
---|---|
✔ APPEND | |
✔ COPY | Missing DB parameter |
✔ DBSIZE | |
✔ DECR | |
✔ DECRBY | |
✔ DEL | |
✔ EXISTS | |
✔ EXPIRE | |
✔ EXPIREAT | |
✔ EXPIRETIME | |
✔ FLUSHDB | Missing ASYNC parameter |
✔ GET | |
✔ GETDEL | |
✔ GETEX | |
✔ GETRANGE | |
✔ GETSET | |
✔ HELLO | Missing AUTH and SETNAME parameters |
✔ INCR | |
✔ INCRBY | |
✔ INCRBYFLOAT | |
✔ KEYS | |
✔ LCS | Missing IDX, MINMATCHLEN and WITHMATCHLEN parameters |
✔ MGET | |
✔ MSET | |
✔ MSETNX | |
✔ PERSIST | |
✔ PEXPIRE | |
✔ PEXPIREAT | |
✔ PEXPIRETIME | |
✔ PING | |
✔ PSETEX | |
✔ PTTL | |
✔ QUIT | |
✔ RANDOMKEY | |
✔ RENAME | |
✔ RENAMENX | |
✔ SCAN | Missing TYPE parameter |
✔ SET | |
✔ SETEX | |
✔ SETNX | |
✔ SETRANGE | |
✔ SHUTDOWN | |
✔ STRLEN | |
✔ SUBSTR | |
✔ TOUCH | |
✔ TTL | |
✔ UNLINK |
We appreciate your feedback and questions in the comments below. Thank you for trying cachegrand v0.2.0, and happy coding! 🎉