`
gavin
  • 浏览: 83483 次
  • 性别: 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领域中被广泛应用于日志管理、缓存服务、键值对存储等场景,尤其在需要快速...

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

    论文中所提及的关键技术和工具,如Tokyo Tyrant、J2EE、SOA框架等,都是支撑智能电网数据处理领域发展的重要技术。 首先,智能电网数据采集系统的构建是整个智能电网技术的基础。为了有效地采集和管理海量的电力...

    tokyotytrant

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

    TTserver1.1.4

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

    tokyoCabint及tokyoTyrant简介

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

    Tokyo Cabinet Key:Value数据库及其扩展应用

    总结来说,Tokyo Cabinet和Tokyo Tyrant是针对高并发和大数据量需求的Key-Value数据库解决方案,通过调整参数如MMAP内存大小和bucket数组数量,可以在保持高效性能的同时,适应不断增长的数据规模。对于寻求优化...

    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研发之路

    其中,键值存储数据库如Tokyo Cabinet/Tokyo Tyrant,以极高的读写速度著称,适合高速缓存和实时数据处理;文档数据库如MongoDB,以JSON文档形式存储数据,便于数据的检索和管理;列族存储数据库如HBase,适用于大...

    PyPI 官网下载 | asynctnt-1.0b2-cp35-cp35m-manylinux1_i686.whl

    总的来说,`asynctnt-1.0b2-cp35-cp35m-manylinux1_i686.whl`是一个适用于Python 3.5的32位Linux系统的异步TNT客户端库,旨在简化与Tokyo Tyrant数据库的交互,并通过异步API提供高性能的I/O操作。如果你的项目中...

    memcached全面剖析(入门到精通)

    他们通过自己开发的工具和技术,包括Tokyo Cabinet和Tokyo Tyrant,来进一步提高缓存系统的效率和可靠性。 学习memcached的使用和管理,对于Web开发者来说是一个重要的技能。它不仅能够帮助开发者理解如何通过缓存...

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

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

    pandas-td-0.6.2.tar.gz

    Pandas是Python编程语言中广泛使用的数据处理和分析工具,而TD则是Tokyo Tyrant或 Treasure Data 的简称,这是一个云原生的数据仓库服务,常用于大规模数据处理和分析。这个压缩包可能包含了将Pandas与TD集成的代码...

Global site tag (gtag.js) - Google Analytics