阅读更多
Tokyo Cabinet 是日本人 平林幹雄 开发的一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。



 Tokyo Tyrant 是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有Memcached兼容协议,也可以通过HTTP协议进行数据交换。

  Tokyo Tyrant 加上 Tokyo Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,可以将Tokyo Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。这一点,跟新浪的Memcachedb性质一样。

  相比Memcachedb而言,Tokyo Tyrant具有以下优势:

  1、故障转移:Tokyo Tyrant支持双机互为主辅模式,主辅库均可读写,而Memcachedb目前支持类似MySQL主辅库同步的方式实现读写分离,支持“主服务器可读写、辅助服务器只读”模式。



这里使用 $memcache->addServer 而不是 $memcache->connect 去连接 Tokyo Tyrant 服务器,是因为当 Memcache 客户端使用 addServer 服务器池时,是根据“crc32(key) % current_server_num”哈希算法将 key 哈希到不同的服务器的,PHP、C 和 python 的客户端都是如此的算法。Memcache 客户端的 addserver 具有故障转移机制,当 addserver 了2台 Memcached 服务器,而其中1台宕机了,那么 current_server_num 会由原先的2变成1。


2、日志文件体积小:Tokyo Tyrant用于主辅同步的日志文件比较小,大约是数据库文件的1.3倍,而Memcachedb的同步日志文件非常大,如果不定期清理,很容易将磁盘写满。


3、超大数据量下表现出色:


但是,Tokyo Tyrant 也有缺点:在32位操作系统下,作为 Tokyo Tyrant 后端存储的 Tokyo Cabinet 数据库单个文件不能超过2G,而64位操作系统则不受这一限制。所以,如果使用 Tokyo Tyrant,推荐在64位CPU、操作系统上安装运行。

来自: blog.s135.com
13
0
评论 共 4 条 请登录后发表评论
4 楼 strongkill 2008-10-11 08:05
反过来了吗?

Tokyo Cabinet是API

Tokyo Tyrant是DBM
3 楼 fredzhang 2008-08-12 11:03
原来该作者也是qdbm的作者,在诸多dbm中,qdbm是效率最高的,其他一些用的是扩展hash来存储,如gdbm,性能不是非常好
bdb的hash采用改进后的线性hash,性能非常好
从数据上看,这个东东比bdb性能还要好,跟bdb一样,都支持hash和b+-tree存储方式,因此很有必要对比一下两者的实现差异
2 楼 dogstar 2008-08-11 20:06
memcached正在对整体架构做调整,到时候支持plugin机制.会把网络,事件处理,内存存储剥离开来.以后要做基于磁盘的key-value存储就可以写一个存储引擎就成了.memcached的二次开发又步入一个小高潮
1 楼 andyao 2008-08-11 18:24
集中式缓存又多了一种选择.

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 使用SQL存储过程发送邮件

    使用SQL存储过程发送邮件,方法非常简单

  • SQLServer Job 邮件发送

    SQLServer Job 邮件发送 为了方便查看定时任务执行是否成功,同时能够及时发现存储过程中抛出的异常,采用发送邮件的方式来提醒这些问题。 邮件设置 邮件服务器名称:smtp.qq.com 端口号:587 开启POP3/SMTP服务,产生第三方客户端授权码 说明邮件采用QQ邮件,由于QQ邮件服务器要求安全链接(SSL),因此采用587端口,而不是25。具体设置如下:

  • SQL SERVER 发邮箱

    【代码】SQL SERVER 发邮箱。

  • 在SQL SERVER数据库中添加发送邮件的存储过程send_mail

    –开启 Ole Automation Procedures sp_configure ‘show advanced options’, 1; GO RECONFIGURE; GO sp_configure ‘Ole Automation Procedures’, 1; GO RECONFIGURE; GO EXEC sp_configure ‘Ole Automation Procedures’; GO CREATE PROCEDURE [dbo].[send_mail] @From varchar(100

  • 在sql server中用存储过程发送邮件

    DECLARE @object intDECLARE @hr intEXEC   @hr=sp_OACreate CDONTS.NewMail,@object OUTEXEC   @hr=sp_OASetProperty @object,From,Your FriendEXEC   @hr=sp_OASetProperty @object,Body,This is

  • SQL Server 使用数据库发送邮件(sp_send_dbmail)

    项目开发中,很多地方需要发送邮件,比如下订单,取消订单等等,可以通过程序代码(c#,java等)发送,亦可以使用数据库的触发器通过sql语句发送. 使用数据库发送邮件,一般使用存储过程 xp_sendmail  或则 sp_send_dbmail (一) xp_sendmail:已经渐渐不被使用,其使用方式需求 1: 需要32位的windows操作系统(本人电脑64位,所以在我电脑上我没有用

  • SQL Server 存储过程发送邮件

    SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTP(Simple Message Transfer Protocol)去连接邮件服务器。我们想让 SQL Server 来发送邮件,首先要告诉它用户名称,密码,服务器地址,网络传送协议,邮件服务器的端口。。。等信息。  以下脚本实现了数据库邮件的配置:--下面是具体的配置邮件步骤

  • SQL Server发送邮件的存储过程

    SQL Server发送邮件的存储过程 对于DB中的资料变更,有时会有寄Mail通知相关人员的需求。下面是实现这一功能的一种方法 1.建立发Mail的存储过程 CREATE PROCEDURE [dbo].[sp_send_mail] @From varchar(100) , @To varchar(2000) , @Subject varchar(2000)=" ", @B...

  • 通过SQLServer的数据库邮件来发送邮件

    前段时间需要做一个发送邮件的功能,于是就花了一点时间研究了一下。发现通过SQLServer就可以发送邮件,只需要配置一下就可以了,而且配置过程很简单。下面来说一下配置过程:         1、启用Database Mail XPs功能。         查看Database Mail XPs功能是否打开,value为0说明没有打开,注意SQL Server早期版本是SQL MailXPs

  • SQL SERVER发送邮件设定全篇

    SQL SERVER发送邮件设定全篇备忘整理。

  • SQL Server 2008 通过配置数据库邮件实现发送邮件功能

    转:https://blog.csdn.net/zhanglong_longlong/article/details/42294001 1.简单了解数据库邮件的概念和使用的传输协议及系统体系: 数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的...

  • 怎样配置SQL Server发送电子邮件

    怎样配置SQL Server发送电子邮件朱二(2004.9 转载请注明作者)  通常大家都知道:SQL Server与Microsoft Exchange Server集成性很好,关于这方面的配置,在SQL Server的联机帮助里有详细的说明,在此不再赘述。然而我们更关心的问题是:在没有Exchange Server的情况下,如何配置SQL Server利用Internet 邮件服务器发

  • sql server 发送邮件

    SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTP(Simple Message Transfer Protocol)去连接邮件服务器。我们想让 SQL Server 来发送邮件,首先要告诉它用户名称,密码,服务器地址,网络传送协议,邮件服务器的端口。。。等信息。   以下脚本实现了数据库邮件的配置: --下面是具体的配置

  • 数据库邮件服务器中sp_send_dbmail的参数使用

    sp_send_dbmail[[@profile_name=]'profile_name'] [,[@recipients=]'recipients[;n]'] [,[@copy_recipients=]'copy_recipient[;n]'] [,[@blind_copy_recipien...

Global site tag (gtag.js) - Google Analytics