【AICon】硅谷视野+中国实践,汇聚全球顶尖技术的 AI 科技盛会 >>> 了解详情
写点什么

Moneta:一个面向 Tokyo Cabinet 和 Memcache 等键 / 值存储方式的接口

  • 2009-02-25
  • 本文字数:797 字

    阅读完需:约 3 分钟

关系型数据库只是各种数据存储方式中的一种。根据实际情况不同,键 / 值存储方式可能是更合适的选择。如果数据主要通过一个主键进行访问,那么键 / 值存储方式可能比关系型数据库更适合此类场景。那么,什么是键 / 值存储?听上去和传统的散列非常接近——实际上,这本就是相同的东西。

键 / 值存储方式相比成熟而复杂的 RDBMS 要简单得多,这也是该方面出现大量实现并相互竞争的原因。这里我们体验了 Tokyo Cabient,以及一个不同键 / 值存储方式的统一接口:Moneta。

Tokyo Cabinet 是一个 C 语言编写的类库,实现了一个非常高效,并节省空间的键 / 值存储:

数据存储在一个简单的文件中,每条记录为一个键 / 值对。每个键和值是一系列字节,长度可变,它们都支持两种形式:二进制数据和字符串。这里没有数据表或数据类型等概念。记录通过散列表或定长的数组进行组织。

除了对Ruby 的支持之外,也有面向Perl,Java 和Lua 的API。

Tokyo Tyrant 还提供了用于并行和远程连接的服务器,使 Tokyo Cabinet 能够跨多台机器使用。您可以从 Ilya Grigorik 的介绍文章中了解到 Tokyo Cabinet 的更多示例和信息。

假设您已经决定要采用键 / 值存储方式,但是还没有确定要使用哪种具体实现,则不妨尝试一下Moneta 。它和Rack 之于Web 服务器的作用类似,“希望能够为各种键/ 值存储方式提供统一的接口”。如 Yehuda Katz 所述,“那些希望利用键 / 值存储优势的类库(例如 Rails 和 Merb 的缓存支持)可以在后端使用 Moneta”。

Moneta 创造性地支持文件、memcache、内存、文件系统中的 xattrs、DataMapper,以及之前提过的 Tokyo Cabinet(通过 rufus-tokyo 进行支持,这是个“基于 ruby-ffi 的 Tokyo Cabient 和 Tokyo Tyrant 接口”)等多种存储方式。

您可以从 Yehuda 的 blog 中得到有关Moneta 的更多信息,或访问其 github repository

查看英文原文: Moneta: An Interface to Key-Value Stores like Tokyo Cabinet, Memcache

2009-02-25 23:002761
用户头像

发布了 157 篇内容, 共 52.8 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

CLI新功能之多项目启动器

小鑫同学

前端 Node 10月月更

我用了7个月拿下3个ACP认证

跟YY哥学Jira

Atlassian Jira Cloud JiraServiceManagement Atlassian认证

搭建组件库最小原型(支线)

小鑫同学

前端 Node 10月月更

【抓包】青花瓷实战教程②

小鑫同学

前端 Node 10月月更

【抓包】青花瓷使用教程①

小鑫同学

前端 Node 10月月更

构建工具Gulp-lesson3

小鑫同学

前端 Node 10月月更

构建工具Gulp-lesson4

小鑫同学

前端 Node 10月月更

打包 Composition API、Vue3

小鑫同学

前端 Node 10月月更

Docker下Nacos持久化配置

程序员欣宸

Docker Spring Cloud nacos 10月月更

构建工具Gulp-lesson1

小鑫同学

前端 Node 10月月更

从URL输入到页面展现到底发生什么?

loveX001

JavaScript

正确发送统计数据到服务器

小鑫同学

前端 Node 10月月更

【Ajv】JSON Schema Validator

小鑫同学

前端 Node 10月月更

Vue2.x组件间通信汇总表

小鑫同学

前端 Node 10月月更

标签与指标到底有什么区别?

雨果

标签 指标

Java基础(四)| 数组及内存分配详解

timerring

Java 数组 内存分配 10月月更

HashSet源码全方位解读

知识浅谈

10月月更

【愚公系列】2022年10月 Go教学课程 027-深拷贝和浅拷贝

愚公搬代码

10月月更

构建工具Gulp-lesson5

小鑫同学

前端 Node 10月月更

Java 如何将 List 转换为 MAP

HoneyMoose

Web3 中最佳 AI 艺术工具

devpoint

AI web3 starry

数据库-MySQL-基础(2)-DDL操作

Geek_a7ae15

MySQL 数据库 sql 10月月更

【Java深入学习】线程状态

Geek_65222d

10月月更

熬夜整理最近前端面试知识点

loveX001

JavaScript

QtCreator配置protobuf环境

中国好公民st

qt Qt Creator 10月月更

构建工具Gulp-lesson2

小鑫同学

前端 Node 10月月更

如何搭建组件库的最小原型

小鑫同学

前端 Node 10月月更

Spring JPA 查询的时候提示错 org.hibernate.TransientObjectException

HoneyMoose

Qt | 线程 QThread

YOLO.

c++ qt 10月月更

【个人成长】我认为的好的日报

非晓为骁

个人成长 日报

谈谈前端性能优化-面试版

loveX001

JavaScript

Moneta:一个面向Tokyo Cabinet和Memcache等键/值存储方式的接口_Ruby_Mirko Stocker_InfoQ精选文章