Perl DBI模块允许我透明地连接到许多不同类型的SQL数据库。是否存在用于非关系键值对数据库的等效Perl模块?
例如,一个接口可能让我开始使用BerkeleyDB(甚至只是一个Perl哈希?),但切换到类似memcachedb或CouchDB,甚至像Amazon SinmpleDB或Google AppEngine Datastore提供的云数据库。
(这是Tie :: Hash的作用吗?在这种情况下,我在哪里可以找到实现的摘要?)
答案 0 :(得分:10)
不确定KiokuDB是否符合要求。它有CouchDB,BDB(BerkeleyDB)和DBI后端。
答案 1 :(得分:4)
tie是一种“在一个简单变量中隐藏对象类的通用机制”。 Tie::Hash是实现哈希关系的便捷实用程序类。
因此,将对象绑定到散列中是访问键值对数据库的适当抽象。据我所知,没有共同的基础设施可以创建这样的联系,所以你应该自己创建一个Factory来隔离你的项目与创建不同联系的各种方式。
答案 2 :(得分:4)
通常,对于每种类型的键值对存储,您都需要单独的模块。
例如:
Cache::Memcached
DB::CouchDB
BerkeleyDB
Amazon::S3
我不确定是否有适用于Google AppEngine数据存储区的模块 - 通常会在MetaCPAN上搜索适合您的内容。
答案 3 :(得分:3)
CHI看起来很有希望,来自Cache::Cache的制造者。