`
waterdh
  • 浏览: 95923 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tokyo Tyrant使用小结

阅读更多

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

 

而Tokyo Tyrant(翻译成中文是:东京暴君)则是在Tokyo Cabinet上封装了网络应用接口,用于提供网络服务等一系列功能, 支持memcached协议和http协议 。因此我们可以方便地使用memcached java客户端直接访问,唯一需要注意的是,tt是持久化的,并且value只支持String类型。

 

接触TT还不到一年,之前使用的是memcachedb,memcachedb在高并发写入和读取的时候性能并不太理想,于是尝试了下TT。在同等硬件条件下,tt性能比memcachedb提升还是非常明显的 , 千万级的数据量下面达到了读写4k+/s。

 

一些优化总结:

1. 硬盘读写速度要快,我们采用的是SAS硬盘,15000转的。

2. 通过bnum和xmsiz参数来把硬盘数据缓存或映射到内存加快IO,rcnum来指定缓存最近访问的记录数。条件允许的话,xmsiz的值大于数据库文件大小。

3. 相应地,内存要够大。

4. 每天做完全备份, 通过tt提供的工具。

 

tt的应用场景:

1. 存储版本信息,存储实时浏览次数等小颗粒实时动态数据

2. 作为持久化缓存,用于减轻关系型数据库负载。

 

tt的集群方式:

1. 参考memcached集群方式,由客户端实现集群。

2. 采用主从模式的集群方式,1台master,多台slave,方便水平扩展。

 

每种方式都有优点和缺点,主从模式受限于master的承受能力,只能扩展读,写就不能无限扩展。

客户端集群方式伸缩性不好,加减机器都比较难,一旦某一台服务down了,会导致局部数据失效 ,因此可能需要针对每一各节点做热备(互为主从方式)。

技术上没有十全十美的方案,最简单的才是最合适,如何选择就看实际应用场景了。

 

 

 

分享到:
评论
2 楼 waterdh 2011-01-04  
oolala 写道
作为持久化缓存,用于减轻关系型数据库负载。

怎么给关系型数据库作负载呢,是写到tt上面再写到关系型 数据库里面吗?
复杂…………

看业务需求,可以同时持久化缓存放一份,数据库放一份。
也可以只放在持久化缓存中, 比如评论总数、最后登录时间等写入更新要求比较频繁的。
1 楼 oolala 2010-11-20  
作为持久化缓存,用于减轻关系型数据库负载。

怎么给关系型数据库作负载呢,是写到tt上面再写到关系型 数据库里面吗?
复杂…………

相关推荐

    C#版Tokyo Tyrant客户端

    C#版Tokyo Tyrant客户端 来源:cnblogs

    tokyo cabinet tyrant研究资料

    tokyo cabinet tyrant研究资料

    memcached,mongdb,redis,Tokyo Tyrant的安装和使用

    NULL 博文链接:https://leadtoit.iteye.com/blog/1076241

    tokyo tyrant文档

    一个小型快速数据库的安装使用及原理介绍。

    基于Tokyo Tyrant的智能电网数据处理与应用研究.pdf

    #资源达人分享计划#

    miyazakiresistance:MiyazakiResistance是ActiveRecord之类的库,可以使用Tokyo Tyrant

    宫崎电阻描述: MiyazakiResistance是一个类似于ActiveRecord的库,可以使用Tokyo Tyrant。 宫崎县抵抗支持师傅/奴隶。 如果从服务器关闭,它将自动分离。 宫崎骏电阻支持双主控(主动/待机)。 如果活动服务器关闭...

    memadmin.zip

    MemAdmin是一款可视化的Memcached管理与监控工具,使用PHP开发,体积小,操作简单。... 兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外) 支持服务器连接池,多服务器管理切换方便简洁

    MemAdmin v1.0.5

    MemAdmin是一款可视化的Memcached管理与监控工具,基于PHP5 & JQuery开发,体积小,操作简单。...兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外) 支持服务器连接池,多服务器管理切换方便简洁

    memcached全面剖析.docx

    如今,越来越多的 Web 应用程序开始...而日本的 mixi(http://mixi.jp)则在这方面走在了前面,不仅大规模使用 memcached 作为缓存来加速 Web 应用,而且自行开发了 Tokyo Cabinit、Tokyo Tyrant 等一系列相关的软件。

    php调用KyotoTycoon简单实例

    Kyoto Tycoon(简称KT)是Tokyo Tyrant 的作者Mikio Hirabayashi 的系列作品之一,KT 是一个数据库网络层服务,它提供一个插件机制,可以挂载几乎所有的数据库存储设备。 这里提供一个简单的应用实例: <?php ...

    tyrant-profiteur#daily_notes#前端随笔1

    1.1.标签 2.1.选择器 2.2.边距 3.1.sql拼写方法问题 3.1.在同一个页面同时使用两个ng-app问题

    web-tyrant:改造项目x

    web-tyrant改造项目xNo。1

    opendatakit.build:自动从code.google.compopendatakit.build导出

    依存关系该项目具有一个本地依赖项:Tokyo Tyrant。 我们将其用作我们的数据存储。 您必须为要在其上运行服务器的任何系统本地构建它。 有关详细信息,请参见 。 一旦有了这些,所有Rubygem依赖项都将由Ruby Bundler...

    OFFICALTYRANT

    OFFICALTYRANT

    Tyrant II-开源

    《暴君2》是一款基于mikera 的roguelike,游戏玩法将进化为Angband,游戏世界将进化为Arena:Elder Scrolls。 关键词:游戏、Java、OOP、随机世界生成、AI、RPG、角色扮演游戏。

    tyrant:Java中的暴君Roguelike游戏

    暴君用Java编写的经典图形类Roguelike游戏。 暴君(Tyrant)最早写于1997年,从那以后慢慢扩展。有趣的功能具有自定义32x32 Tileset的图形roguelike 一个非常灵活且可配置的动态对象模型

    field-tyrant:场霸

    该项目使用 node.js 和提供服务器端调度功能,以将可用的场地空间分配给具有任意数量预定义首选项的运动队集合。 包含一个简单的 Web 应用程序用于显示结果。 要求 除了 node.js 安装之外,该程序还要求 lp_solve 可...

    Tyrant - Java Roguelike-开源

    暴君是一款图形化的类Roguelike幻想冒险游戏。 它具有错综复杂的随机生成的景观,城镇和地牢。 它是用Java编写的,具有高度可扩展的游戏引擎。

    firefox-tu-analyzer:将各种 Tyrant Unleashed 事件记录到中央数据库的 Firefox 插件

    firefox-tu-cardlog 将 Tyrant Unleashed 卡的购买记录到中央数据库的 Firefox 插件

Global site tag (gtag.js) - Google Analytics