`
gavin
  • 浏览: 82912 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

Flash Socket连接Tokyo Tyrant

阅读更多
Tokyo Tyrant 是 Tokyo Cabinet 数据库网络接口。Tokyo Cabinet 是一款 DBM 数据库,该数据库读写非常快。Tokyo Tyrant拥有Memcached兼容协议,也可以通过HTTP协议进行数据交换,这里要使用的却是它的二进制协议。为什么呢?Tokyo Tyrant以epoll/kqueue/eventports解决了 "c10k" 问题,HTTP协议也很方便,可是短连接每次请求数据都要重新建立连接。有些富客户端应用想保持一个TCP连接,用flash提供的socket连接Tokyo Tyrant可以做到。
网上有很多介绍编译运行Tokyo Tyrant的文章,需要linux环境,如果是windows,可以使用colinux来测试。在windows下安装很方便,要下载的东西总共几十兆,不像虚拟机要下整个映像,运行还很慢。colinux就像其它的windows程序,性能很好。同一台机器windows下装colinux,在colinux里跑nginx,比直接跑在windows上的apache还快。
Tokyo Tyrant运行起来后,可以用以下actionscript测试,注意改IP。
package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.net.Socket;
	import flash.utils.ByteArray;
	import flash.utils.Endian;
	
	public class test extends Sprite
	{
		private var socket:Socket;		
		public function test()
		{
			socket = new Socket();			
			socket.addEventListener(Event.CONNECT,connectFun);
			socket.addEventListener(ProgressEvent.SOCKET_DATA,syncFun);
			socket.connect("192.168.0.6",1978);
		}
		private function connectFun(e:Event):void{
		  	trace("连接成功");		  			
			testput();
		}		
		private function syncFun(e:ProgressEvent):void{
		  if(socket.bytesAvailable == 1){//put成功返回1byte
		  	trace(socket.readByte());//0表示成功
		  	testget();
		  }else{//get返回
		  	trace(socket.readByte());//0表示成功
			var n:int = socket.readInt();
			trace(socket.readUTFBytes(n));//取回的值
		  }
		}
		private function testput():void{
			var key:String = "key2";
			var val:String = "value222";
			var ha:ByteArray=new ByteArray();
	    	ha.endian = Endian.BIG_ENDIAN;
	    	ha.writeByte(0xc8);
	    	ha.writeByte(0x10);
	    	ha.writeUnsignedInt(key.length);
			ha.writeUnsignedInt(val.length);
	    	ha.writeUTFBytes(key);
	    	ha.writeUTFBytes(val);
	    	socket.writeBytes(ha,0,ha.length);
	    	socket.flush();
		}
		private function testget():void{
			var key:String = "key2";
			var ha:ByteArray=new ByteArray();
	    	ha.endian = Endian.BIG_ENDIAN;
	    	ha.writeByte(0xc8);
	    	ha.writeByte(0x30);
	    	ha.writeUnsignedInt(key.length);
	    	ha.writeUTFBytes(key);
	    	socket.writeBytes(ha,0,ha.length);
	    	socket.flush();
		}
	}
}
1
0
分享到:
评论

相关推荐

    C#版Tokyo Tyrant客户端

    1. 连接管理:TTClient可以建立到Tokyo Tyrant服务器的连接,支持配置不同的连接参数,如主机地址、端口号等。连接池的概念也可能被应用,以提高性能并管理资源。 2. 数据操作:客户端提供API接口,用于执行基本的...

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

    标题中的“memcached, mongdb, redis, Tokyo Tyrant”都是知名的NoSQL数据库系统,它们在现代互联网应用中被广泛使用。这篇博文很可能是关于如何在操作系统环境下安装和使用这四种数据库的教程。 1. **Memcached**...

    tokyo cabinet tyrant研究资料

    Tokyo Cabinet 和 Tokyo Tyrant 是一组开源的数据库管理系统,由日本公司 Resin Software 开发,主要用于数据存储和检索。这两个工具在IT领域中被广泛应用于日志管理、缓存服务、键值对存储等场景,尤其在需要快速...

    tokyotytrant

    6. **网络通信协议**:Tokyo Tyrant使用自定义的简单网络协议,允许客户端通过TCP/IP连接进行通信,降低了与其他系统的集成难度。 7. **副本集**:Tokyo Tyrant可以通过配置副本集来提高数据的可用性和容错性,当主...

    TTserver1.1.4

    从给出的信息来看,它可能是Tokyo Tyrant的一个特定版本,因为压缩包中的文件名为"tokyotyrant-1.1.41"。Tokyo Tyrant是一个轻量级、高性能的键值存储系统,常用于数据缓存和快速查找应用。 Tokyo Tyrant主要知识点...

    tokyo tyrant文档

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

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

    #资源达人分享计划#

    tokyoCabint及tokyoTyrant简介

    标题 "tokyoCabinet及tokyoTyrant简介" 指向了两个与数据库管理相关的开源工具,Tokyo Cabinet和Tokyo Tyrant。这两个工具由日本开发者开发,主要用于小型到中型的数据存储,尤其适合那些对数据读写速度有较高要求的...

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

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

    ttserver

    Tokyo Tyrant 是 Tokyo Cabinet 的网络接口,它提供了一个简单易用的服务器端程序,允许远程客户端通过TCP/IP协议进行数据操作。"tokyocabinet-1.4.27.tar" 是 Tokyo Cabinet 的源代码压缩包,版本号为1.4.27。这个...

    no关系型数据库,nosql

    Tokyo Cabinet具有高性能和多种存储引擎选择,Tokyo Tyrant则通过热备份、update log和异步复制提高可用性,并允许通过Lua脚本进行原子性操作。 3. MongoDB:MongoDB是一个面向文档的数据库,支持无固定规格的JSON...

    memadmin.zip

    主要功能: 服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新 服务器性能监控:GET、... 兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外) 支持服务器连接池,多服务器管理切换方便简洁

    MemAdmin v1.0.5

    MemAdmin主要功能: 服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新 ...兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外) 支持服务器连接池,多服务器管理切换方便简洁

    NoSQL技术交流.pptxNoSQL技术交流.pptx

    1. **高并发读写**:在高流量的Web应用中,NoSQL的键值对数据库(如TC/TT中的Tokyo Cabinet和Tokyo Tyrant)能够提供快速的读写性能,适合对数据库进行频繁的读取和更新操作。 2. **海量数据存储和访问**:文档型...

    memcached全面剖析.docx

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

    tokyocabinet-1.4.47.tar.gz

    Tokyo Cabinet虽然不再更新,但它有一个类似项目Tokyo Tyrant,提供了更高级的功能,如网络服务器接口。社区仍然活跃,开发者可以通过文档和论坛获取帮助。 总的来说,Tokyo Cabinet是一款强大的键值存储系统,凭借...

    TT server 操作手册

    TT Server 是一款基于 Tokyo Cabinet 和 Tokyo Tyrant 的高性能键值存储系统,主要服务于开发和运维人员,用于数据存储和快速检索。本文将详细介绍TT Server的安装、常用命令以及服务管理。 ### 一、安装步骤 1. *...

    php调用KyotoTycoon简单实例

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

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

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

Global site tag (gtag.js) - Google Analytics