Document Version: v2.1 Last Updated: 2025-09-17 Maintained by: Engula Team
Engula implements kernel-level storage engine replacement within the Redis kernel, while maintaining Redis's protocol, command processing, and client ecosystem.
At the design and implementation level, Engula 2.1 and Redis 7.2 can theoretically achieve 100% compatibility (protocol and semantic consistency). Applications do not need to modify code or replace clients.
Verify the protocol and data structure compatibility level of Engula 2.1 with Redis 7.2.
make test test casesData Structure Compatibility: Operational consistency for:
Redis uses a Tcl-based testing framework (test.tcl + multiple unit/*.tcl test cases) to drive redis-server and redis-cli, executing commands via RESP protocol and validating expected outputs. Tests run directly through runtest.tcl, supporting features such as module and tag filtering, parallel execution, and data directory isolation, ensuring reproducible results and low coupling to implementation details.
Engula Compatibility Verification Approach:
runtest.tcl to initiate tests from the client side, then compare whether the expected output of test cases matches the actual response from Engula.unit/scanunit/type/stringunit/type/incrunit/type/listunit/type/list-2unit/type/list-3unit/type/setunit/type/zsetunit/type/hashunit/type/streamunit/type/stream-cgroupsunit/sortunit/expireunit/pubsubunit/pubsubshardunit/bitopsunit/bitfieldunit/geounit/hyperloglogFor more granular test items, refer to the output.log generated by Engula CompatQuick (containing execution details for each test case):

Docker Image: registry.cn-guangzhou.aliyuncs.com/montplex/engula-compat-quick
Engula CompatQuick is provided as a Docker image and can run on Linux or macOS with Docker installed. Recommended environment:
The running interface will display as shown:

After execution, a summary.html file will be generated. Open it in a browser to view the results:

The report includes:
A: Yes, there are some deletions. Some debug-type test cases have been removed. Debug-type cases test through Redis's original internal data structures. Engula's storage format differs from Redis, and these cases have been transformed to Engula's memory storage format. These cases typically do not affect Redis usage or compatibility with Redis.