写点什么

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:002812
用户头像

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

关注

评论

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

SpringBoot魔法堂:应用热部署实践与原理浅析

设计原则 框架 spring Boot Starter

阿里三面惨遭被虐,spring,jvm,mybatis,并发编程等一窍不通

Java架构之路

Java 程序员 架构 面试 编程语言

JVM从概述到调优图文详解,含思维脑图深度剖析!

Java架构师迁哥

甲方日常 68

句子

工作 随笔杂谈 日常

在线医疗的发展和优势

anyRTC开发者

android 音视频 WebRTC RTC 医疗方案

量化交易APP系统软件开发(现成)

系统开发

没弄懂这些Java基础,简历上千万别写熟悉:异常+反射+注解+泛型

小Q

Java 学习 编程 面试 基础

LeetCode题解:429. N叉树的层序遍历,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

互联网新规鼓励保险与大数据、区块链等新技术融合!业内呼吁配套产品管理制度尽快出炉

CECBC

互联网金融

SSO的通用标准OpenID Connect

程序那些事

OAuth 2.0 程序那些事 授权框架 安全框架 openid

架构作业--大数据

Nick~毓

旷工三天被开除,公司赔偿十万五 | 法庭上的CTO(9)

赵新龙

CTO 法庭上的CTO

有了Git这个功能,再也不需要依赖IDE了!

编程 架构

探营苏州数字人民币试点

CECBC

数字人民币

Java并发编程:多线程如何实现阻塞与唤醒

码农架构

Java并发

架构之书:雄伟与《Domain Driven Design》

lidaobing

架构 领域驱动设计

第三代人工智能基础设施背后,是一次技术应用的常识普及运动

脑极体

架构师训练营W09作业

Geek_f06ede

BAT等大厂面试复习资料文档整理:ActiveMQ+redis+Spring+高并发多线程+JVM

Java架构之路

Java 程序员 架构 面试 编程语言

生产环境全链路压测建设历程之十 淘宝网2013年的建设过程

数列科技杨德华

数据类型第2篇「字典和集合的原理和应用」

清菡软件测试

测试开发

Spring Boot 集成 Redis

噜噜猫

Spring Boot

从零开始学习Java8 Stream,看这篇就够了

Silently9527

Java stream java8

BATJ面试常被问到的100+题:Spring+微服务+SpringMVC+MyBatis

Java架构之路

Java 程序员 架构 面试 编程语言

1428万的Adobe采购纠纷 | 法庭上的CTO(10)

赵新龙

CTO 法庭上的CTO

【小菜学网络】数据链路层概述

fasionchan

网络编程 计算机网络 网络协议 TCP/IP

手把手教你免费获取正版 Jetbrains 全家桶 License

郭旭东

ide JetBrains

赶紧看!阿里架构师必备“绝杀版”Tomact架构笔记堪称绝技

比伯

Java tomcat 编程 架构 程序人生

C语言服务器编程必备常识

MySQL从删库到跑路

c

期权代持的“坑”里,加拿大人也在 | 法庭上的CTO(11)

赵新龙

CTO 法庭上的CTO

架构师训练营 Week8 - 课后作业

极客大学架构师训练营

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