Redka 项目在 SQLite 之上开发 Redis 协议和 API 的实现

Redka 项目的第一个版本已经发布,旨在提供与 Redis DBMS 兼容的 RESP 协议和 API,但在 SQLite 库之上实现。此外,使用 SQLite 还允许您使用 SQL 语言访问数据,例如生成报告或分析数据。支持使用 ACID 事务。 Redka 可以作为接受网络请求的服务器运行,也可以用作 Go 模块。该项目代码是用 Go 编写的,并在 BSD 许可证下分发。

目前,Redka 添加了对使用字符串和哈希的类型的支持,以及用于操作字符串数据、键、事务和哈希的命令。例如,命令可用于设置和获取与密钥关联的一个或多个字符串值、设置密钥的生命周期、递增/递减值、通过模板搜索密钥、重命名密钥、在事务中执行一系列命令,取消交易,使用哈希中的字段。

在不久的将来,我们计划添加对列表、集合(集)和排序集合的支持。从长远来看,HyperLogLog 算法的实现、使用发布/订阅模型操作地理坐标和交互命令的能力是值得期待的。目前还没有计划添加对 Lua 语言脚本、身份验证、ACL、监视/取消监视以及在一台服务器上使用多个数据库的功能的支持。对集群(Redis Cluster)和监控(Redis Sentinel)的支持肯定不会实现。

使用 Redis 项目的工具进行的性能测试表明,由于缺乏以键/值格式存储数据的特定优化,Redka 落后 Redis 2-6 倍。特别是,在所创建的测试环境中,Redis 表现出每秒 133 万次 SET 操作和每秒 139 万次 GET 操作的性能,而 Redka 在数据库不可用的情况下,性能为每秒 30 万次 SET 和 63 万次 GET 操作。位于随机存取存储器中。将数据库存储在磁盘上时,Redka 的性能为每秒 22 次 SET 操作和每秒 56 次 GET 操作。

来源: opennet.ru

添加评论