- 浏览: 74188 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tasen:
可以的,修改他的js,按照字符查找,修成成中文就可以了,中文最 ...
highcharts时间轴和时间趋势数据输出 -
wan368500:
问一下,时间轴能不能用中文表示,英文的怕有些领导看不懂啊,请教 ...
highcharts时间轴和时间趋势数据输出 -
yc723705336:
先将html转xml,再xml转fo,fo转pdf,目前有个问 ...
使用Apache FOP+XML-FO生成PDF文档 -
huqilong:
它这个例子有一个bug就是服务器配置成http://local ...
oauth java(google代码)的部署测试 -
jackieysz:
你好,我最近也在研究OAUTH的应用,但是看了GOOGLE上的 ...
oauth java(google代码)的部署测试
by:alex
1,下载tokyocabinet-1.4.46.tar.gz
下载tokyotyrant-1.1.41.tar.gz
要在本地连接可以选择下载tokyocabinet-java-1.22.tar.gz
详细安装文档http://www.162cm.com/p/tokyotyrant.html
2,解压缩后进入目录:先安装tokyocabinet-1.4.46.tar.gz,再安装tokyotyrant-1.1.41.tar.gz
安装方法:
cd进入对应目录
./configure
make
make install
3,写个脚本来启动,这里假设192.168.0.2和192.168.0.3互为主备机
192.168.0.2
192.168.0.3
4,http协议访问
curl http://localhost:11211/key返回value
curl -X PUT http://localhost:11211/keyname -d "strvalue"
5,java代码(节选自自己的测试代码)
需要的jar包:tokyotyrant-0.11.jar\slf4j-api-1.6.1.jar\slf4j-nop-1.6.1.jar\netty-3.2.2.Final-dist.jar
6,补充相关内容(来自网络)
Tokyo Cabinet
Tokyo Cabinet (简称TC)是Mikio Hirabayashi开发的一种DBM的开发库,其数据文件只有一个,里面存放多个<key,value>的数据记录,所有操作都是依据 key做主键操作。key,value都可以是连续不定长,即可以是二进制,也可是是字符串。数据文件中的记录组织有三种模式,hash表,B+树,定长数组。
做为hash表,主键key必须是唯一的,方法有:按key来存储value到一个记录,按key来删除一个记录,按key来获取一个记录的 value。另外还有一个获取所有key的方法,获取的key是不排序的。TC可以做为NDBM,GBM的替代品,因为有更高的性能。
当采用B+树时,可以存储相同key的多条记录,有存储,删除,读取的方法,还可以按照一定顺序来读取记录。
做为一个定长数组,key必须是自然数,其它的和hash表完全一样,因为key是自然数,所以速度比hash表要快。
以上三种数据库即可以只保存在内存中,也可以指定保持到硬盘。应用最广泛的,当然就是hash表了。
Tokyo Tyrant
单单的TC数据库,用处不大,宿主程序需要进行很多开发。TC的作者开发了Tokyo Tyrant(TT)这个网络服务程序,除了自己的二进制协议,还提供了现在被广泛应用的HTTP协议,memcached协议来访问TC数据库,这样一来,一下子就扩展了TC的使用范围,让TC从一个单纯的开发库变成了易用,高效的数据库系统。
TT支持的协议包括memcached的持续连接,http1.1的长连接,并且数据文件,有热备,更新日志,复制功能,这些都给TT很高的可用性和高性能。并且,TT内嵌lua脚本的支持,可以对数据进行处理。(看来lua脚本已经是unix下内嵌脚本的首选了)。目前(2008.12)为止TT 只能运行在linux,freebsd,macos系统上。
TT的服务器程序是ttserver,默认端口1978(作者的出生在1978?后来在他主页得到了验证)。在启动的时候,根据参数 dbname名来确定使用的TC数据库类型。如果为"*",则使用内存hash表,如果为"+",则使用内存B+库,如果后缀为".tch",则使用 hash表,如果后缀为".tcb",则使用B+树数据库,如果后缀为".tcf",则使用定长数组。如果dbname参数被省略,则采用内存hash数据库。
在ttserver众多的启动参数中,有两个参数在正式使用时非常有用,-mask expr, -unmask expr,分别是禁止的命令,允许的命令。在正式使用时,最好能把vanish(删除所有数据)屏蔽掉,就像linux系统中把rm -rf * 屏蔽了一样。
ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [-ext path] [-mask expr] [-unmask expr] [dbname]
-host name : 指定需要绑定的服务器域名或IP地址。默认绑定这台服务器上的所有IP地址。
-port num : 指定需要绑定的端口号。默认端口号为1978
-thnum num : 指定线程数。默认为8个线程。
-tout num : 指定每个会话的超时时间(单位为秒)。默认永不超时。
-dmn : 以守护进程方式运行。
-pid path : 输出进程ID到指定文件(这里指定文件名)。
-log path : 输出日志信息到指定文件(这里指定文件名)。
-ld : 在日志文件中还记录DEBUG调试信息。
-le : 在日志文件中仅记录错误信息。
-ulog path : 指定同步日志文件存放路径(这里指定目录名)。
-ulim num : 指定每个同步日志文件的大小(例如128m)。
-uas : 使用异步IO记录更新日志(使用此项会减少磁盘IO消耗,但是数据会先放在内存中,不会立即写入磁盘,如果重启服务器或ttserver进程被kill掉,将导致部分数据丢失。一般情况下不建议使用)。
-sid num : 指定服务器ID号(当使用主辅模式时,每台ttserver需要不同的ID号)
-mhost name : 指定主辅同步模式下,主服务器的域名或IP地址。
-mport num : 指定主辅同步模式下,主服务器的端口号。
-rts path : 指定用来存放同步时间戳的文件名。
(以上cp自http://blog.s135.com/post/362.htm)
-ext path : 扩展的脚本文件
-mask expr : 需要禁止的命令,多个命名用","隔开
-unmaks expr : 允许的命令
除了覆盖TC基本的操作命令,例如put,get,out,等,还有一些另类的表达式:all:所有命令,allorg:所有的二进制协议,allmc:所有的memcached协议,allhttp:所有的http协议, "allread" is the abbreviation of `get\', `mget\', `vsiz\', `iterinit\', `iternext\', `fwmkeys\', `rnum\', `size\', and `stat\'. "allwrite" is the abbreviation of `put\', `putkeep\', `putcat\', `putshl\', `putnr\', `out\', `addint\', `adddouble\', and `vanish\'. "allmanage" is the abbreviation of `sync\', `copy\', `restore\', and `setmst\'. "repl" means replication as master. "slave" means replication as slave.
如果不想这么麻烦的启动,可以使用ttservctl简单的命令来控制。ttservctl start,stop,restart,hup。使用这个命令,数据库文件位于/var/ttserver/casker.tch,log等相关文件位于 /var/ttserver。
ttulmgr:用来在二进制ulog文件(update log)和text格式的TSV文件之间转换
ttserver对外有三种协议,可以用curl程序调用http协议访问,可tt自带的客户端程序,使用私有二进制协议访问。
tcrtest :测试程序, tc remote test
tcrmttest :多线程测试程序 tc multi-thread test
两个测试程序写入的数据key,value均是8字节的,按照00000001,00000002格式
tcrtest write host rnum : 写入 rnum条记录(是重新写,不是追加)
tcrtest read host : 读出所有记录
tcrtest remote host : 删除所有记录
tcrmgr : 测试和调试ttserver的程序,很多用法就就见官方文档了,主要有:
tcrmgr inform host: 获取服务器的信息
tcrmgr put host key value : 添加记录
tcrmgr get host key : 获取记录
tcrmgr out host key : 删除记录
tcrmgr list host : 列出数据库中所有的key(这个在memcached中是需要patch才能实现的)
tcrmgr vanish host : 删除所有数据
还有一些命名是和主从同步,备份相关的
ttserver和用户数据库
TC,ttserver这种DBM方式的数据库,对我们目前的应用来说,最适合的是用来作用户数据库,完全用userid做key。通常存储用户数据库,都使用的是关系型数据库,例如:mysql,pgsql,oracle。从用户数据库特性(数据格式单一,访问量大等)来说,DBM格式是最适合的。在采用TC,ttserve上,最大的问题就是技术支持和持久性。仔细分析这点,对很多普通公司(不深入到opensource代码级)来说,用 mysql,pgsql,oracle等,有了问题,也就是用这些数据库提供的管理命令弄弄,调调参数,重启,从备份中恢复。其实和你使用 TC,ttserver,可做的事情都是一样。再退一万步来说,如果真需要深入到源代码级寻找问题,TC,ttserve两个加起来才1M不到,和 mysql,pgsql源代码的复杂程度的几十分之一。
google的账户数据库就是<key,value>形式的Berkeley DB (简称:BDB,已经被oracle收购了), Google. Accounts uses Berkeley DB HA for the storage and retrieval of user 。
ttserver和memcached
ttserver是数据库,memcached是缓存。两者都是保存<key,value>形式的数据,通过key进行任何操作。 ttserver可以将数据持久化保存,memcached全部是保存在内存中,memcached会自动删除过期数据,最长不超过30天。 memcached在和一些api配合时,能自动进行数据的出入序列化,读取反序列化。ttserver有主从复制的功能,操作日志等,这完全是数据库才有的东西。据说memcached正在对整体架构做调整,到时候支持plugin机制.会把网络,事件处理,内存存储剥离开来.以后要做基于磁盘的 key-value存储就可以写一个存储引擎就成了。memcached的二次开发又步入一个小高潮。
TC和BDB
BDB配置开发起来比较麻烦,因为它没有ttserver这个一样的网络接口。BDB的数据文件会比较大,有时需要执行文件收缩,利用BDB开发的memcachedb就有这种问题。BDB开发已经很长时间了,成熟度高,无论是bug,支持,资料会比tc要好很多。
ttserver和关系型数据库
ttserver是<key,value>形式,在根据key进行读取,写入时速度是飞快的,但在做统计的时候,就比较麻烦了,还是需要自己写程序,从ulog中到处log,转换成sql语句,后台写入关系型数据库,然后再利用成熟的接口,逻辑,进行统计。或者应用在更改 ttserver时,发送消息(mq,syslog等)到辅助进程,辅助进程进行相应的数据操作。这种情况下,关系数据库完全是ttserver的另一种形式的存在,除了性能有所缺陷,在应用,统计上更加方便。
1,下载tokyocabinet-1.4.46.tar.gz
下载tokyotyrant-1.1.41.tar.gz
要在本地连接可以选择下载tokyocabinet-java-1.22.tar.gz
详细安装文档http://www.162cm.com/p/tokyotyrant.html
2,解压缩后进入目录:先安装tokyocabinet-1.4.46.tar.gz,再安装tokyotyrant-1.1.41.tar.gz
安装方法:
cd进入对应目录
./configure
make
make install
3,写个脚本来启动,这里假设192.168.0.2和192.168.0.3互为主备机
192.168.0.2
#author:Alex case $1 in "start" ) echo "startng ttservice......" ttserver -port 11211 -dmn -pid /opt/ttserver/pid -log /opt/ttserver/log -ulog /opt/ttserver/ul og -ulim 128m -sid 60 -mhost 192.168.0.3 -mport 11212 -rcc -dmn -rts /opt/ttserver/rts /opt/ttserver/ casket.tch#bnum=1000000 echo "ttserver started.";; "stop" ) echo "stoping ttservice......" killall -9 ttserver rm -f /opt/ttserver/pid #cat /opt/ttserver/pid | kill -9 echo "ttservice stoped.";; "restart") echo "shutdown ttserver...." killall -9 ttserver rm -f /opt/ttserver/pid sleep 5 echo "restart ttserver..." ttserver -port 11211 -dmn -pid /opt/ttserver/pid -log /opt/ttserver/log -ulog /opt/ttserver/ul og -ulim 128m -sid 60 -mhost 192.168.0.3 -mport 11212 -rcc -dmn -rts /opt/ttserver/rts /opt/ttser ver/casket.tch#bnum=1000000 echo "ttserver started.";; "clean") echo "clean db" rm -f /opt/ttserver/casket.tch;; *) echo "unknown command.[usage:start|stop|restart]";; esac
192.168.0.3
#author Alex case $1 in "start" ) echo "startng ttservice......" ttserver -port 11212 -dmn -pid /opt/ttserver/pid -log /opt/ttserver/log -ulog /opt/ttserver/ulog -ulim 128m -sid 117 -mhost 192.168.0.2 -mport 11211 -rcc -dmn -rts /opt/ttserver/rts /opt/ttserver/casket.tch#bnum=1000000 echo "ttserver started.";; "stop" ) echo "stoping ttservice......" killall -9 ttserver rm -f /opt/ttserver/pid echo "ttservice stoped.";; "restart") echo "shutdown ttserver...." killall -9 ttserver rm -f /opt/ttserver/pid sleep 5 echo "restart ttserver..." ttserver -port 11212 -dmn -pid /opt/ttserver/pid -log /opt/ttserver/log -ulog /opt/ttserver/ulog -ulim 128m -sid 117 -mhost 192.168.0.2 -mport 11211 -rcc -dmn -rts /opt/ttserver/rts /opt/ttserver/casket.tch#bnum=1000000 echo "ttserver started.";; "clean") echo "clean db" rm -f /opt/ttserver/casket.tch;; *) echo "unknown command.[usage:start|stop|restart]";; esac
4,http协议访问
curl http://localhost:11211/key返回value
curl -X PUT http://localhost:11211/keyname -d "strvalue"
5,java代码(节选自自己的测试代码)
需要的jar包:tokyotyrant-0.11.jar\slf4j-api-1.6.1.jar\slf4j-nop-1.6.1.jar\netty-3.2.2.Final-dist.jar
import tokyotyrant.MRDB; import tokyotyrant.networking.NodeAddress; import com.xx.xxxx.service.Cache; public class TTCache implements Cache { private MRDB mrdb; private NodeAddress[] addresses; public RemoteTokyocanbinetCache( NodeAddress[] addresses) { this.addresses = addresses; } public void open() throws Exception { mrdb = new MRDB(); mrdb.open(addresses); } public Object get(String key) { return mrdb.await(mrdb.get(key)); } public void put(String key, Object obj) { mrdb.await(mrdb.put(key, obj)); } public void remove(String key) { mrdb.out(key); mrdb.await(mrdb.sync()); } public void close() { mrdb.close(); } }
6,补充相关内容(来自网络)
Tokyo Cabinet
Tokyo Cabinet (简称TC)是Mikio Hirabayashi开发的一种DBM的开发库,其数据文件只有一个,里面存放多个<key,value>的数据记录,所有操作都是依据 key做主键操作。key,value都可以是连续不定长,即可以是二进制,也可是是字符串。数据文件中的记录组织有三种模式,hash表,B+树,定长数组。
做为hash表,主键key必须是唯一的,方法有:按key来存储value到一个记录,按key来删除一个记录,按key来获取一个记录的 value。另外还有一个获取所有key的方法,获取的key是不排序的。TC可以做为NDBM,GBM的替代品,因为有更高的性能。
当采用B+树时,可以存储相同key的多条记录,有存储,删除,读取的方法,还可以按照一定顺序来读取记录。
做为一个定长数组,key必须是自然数,其它的和hash表完全一样,因为key是自然数,所以速度比hash表要快。
以上三种数据库即可以只保存在内存中,也可以指定保持到硬盘。应用最广泛的,当然就是hash表了。
Tokyo Tyrant
单单的TC数据库,用处不大,宿主程序需要进行很多开发。TC的作者开发了Tokyo Tyrant(TT)这个网络服务程序,除了自己的二进制协议,还提供了现在被广泛应用的HTTP协议,memcached协议来访问TC数据库,这样一来,一下子就扩展了TC的使用范围,让TC从一个单纯的开发库变成了易用,高效的数据库系统。
TT支持的协议包括memcached的持续连接,http1.1的长连接,并且数据文件,有热备,更新日志,复制功能,这些都给TT很高的可用性和高性能。并且,TT内嵌lua脚本的支持,可以对数据进行处理。(看来lua脚本已经是unix下内嵌脚本的首选了)。目前(2008.12)为止TT 只能运行在linux,freebsd,macos系统上。
TT的服务器程序是ttserver,默认端口1978(作者的出生在1978?后来在他主页得到了验证)。在启动的时候,根据参数 dbname名来确定使用的TC数据库类型。如果为"*",则使用内存hash表,如果为"+",则使用内存B+库,如果后缀为".tch",则使用 hash表,如果后缀为".tcb",则使用B+树数据库,如果后缀为".tcf",则使用定长数组。如果dbname参数被省略,则采用内存hash数据库。
在ttserver众多的启动参数中,有两个参数在正式使用时非常有用,-mask expr, -unmask expr,分别是禁止的命令,允许的命令。在正式使用时,最好能把vanish(删除所有数据)屏蔽掉,就像linux系统中把rm -rf * 屏蔽了一样。
ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas] [-sid num] [-mhost name] [-mport num] [-rts path] [-ext path] [-mask expr] [-unmask expr] [dbname]
-host name : 指定需要绑定的服务器域名或IP地址。默认绑定这台服务器上的所有IP地址。
-port num : 指定需要绑定的端口号。默认端口号为1978
-thnum num : 指定线程数。默认为8个线程。
-tout num : 指定每个会话的超时时间(单位为秒)。默认永不超时。
-dmn : 以守护进程方式运行。
-pid path : 输出进程ID到指定文件(这里指定文件名)。
-log path : 输出日志信息到指定文件(这里指定文件名)。
-ld : 在日志文件中还记录DEBUG调试信息。
-le : 在日志文件中仅记录错误信息。
-ulog path : 指定同步日志文件存放路径(这里指定目录名)。
-ulim num : 指定每个同步日志文件的大小(例如128m)。
-uas : 使用异步IO记录更新日志(使用此项会减少磁盘IO消耗,但是数据会先放在内存中,不会立即写入磁盘,如果重启服务器或ttserver进程被kill掉,将导致部分数据丢失。一般情况下不建议使用)。
-sid num : 指定服务器ID号(当使用主辅模式时,每台ttserver需要不同的ID号)
-mhost name : 指定主辅同步模式下,主服务器的域名或IP地址。
-mport num : 指定主辅同步模式下,主服务器的端口号。
-rts path : 指定用来存放同步时间戳的文件名。
(以上cp自http://blog.s135.com/post/362.htm)
-ext path : 扩展的脚本文件
-mask expr : 需要禁止的命令,多个命名用","隔开
-unmaks expr : 允许的命令
除了覆盖TC基本的操作命令,例如put,get,out,等,还有一些另类的表达式:all:所有命令,allorg:所有的二进制协议,allmc:所有的memcached协议,allhttp:所有的http协议, "allread" is the abbreviation of `get\', `mget\', `vsiz\', `iterinit\', `iternext\', `fwmkeys\', `rnum\', `size\', and `stat\'. "allwrite" is the abbreviation of `put\', `putkeep\', `putcat\', `putshl\', `putnr\', `out\', `addint\', `adddouble\', and `vanish\'. "allmanage" is the abbreviation of `sync\', `copy\', `restore\', and `setmst\'. "repl" means replication as master. "slave" means replication as slave.
如果不想这么麻烦的启动,可以使用ttservctl简单的命令来控制。ttservctl start,stop,restart,hup。使用这个命令,数据库文件位于/var/ttserver/casker.tch,log等相关文件位于 /var/ttserver。
ttulmgr:用来在二进制ulog文件(update log)和text格式的TSV文件之间转换
ttserver对外有三种协议,可以用curl程序调用http协议访问,可tt自带的客户端程序,使用私有二进制协议访问。
tcrtest :测试程序, tc remote test
tcrmttest :多线程测试程序 tc multi-thread test
两个测试程序写入的数据key,value均是8字节的,按照00000001,00000002格式
tcrtest write host rnum : 写入 rnum条记录(是重新写,不是追加)
tcrtest read host : 读出所有记录
tcrtest remote host : 删除所有记录
tcrmgr : 测试和调试ttserver的程序,很多用法就就见官方文档了,主要有:
tcrmgr inform host: 获取服务器的信息
tcrmgr put host key value : 添加记录
tcrmgr get host key : 获取记录
tcrmgr out host key : 删除记录
tcrmgr list host : 列出数据库中所有的key(这个在memcached中是需要patch才能实现的)
tcrmgr vanish host : 删除所有数据
还有一些命名是和主从同步,备份相关的
ttserver和用户数据库
TC,ttserver这种DBM方式的数据库,对我们目前的应用来说,最适合的是用来作用户数据库,完全用userid做key。通常存储用户数据库,都使用的是关系型数据库,例如:mysql,pgsql,oracle。从用户数据库特性(数据格式单一,访问量大等)来说,DBM格式是最适合的。在采用TC,ttserve上,最大的问题就是技术支持和持久性。仔细分析这点,对很多普通公司(不深入到opensource代码级)来说,用 mysql,pgsql,oracle等,有了问题,也就是用这些数据库提供的管理命令弄弄,调调参数,重启,从备份中恢复。其实和你使用 TC,ttserver,可做的事情都是一样。再退一万步来说,如果真需要深入到源代码级寻找问题,TC,ttserve两个加起来才1M不到,和 mysql,pgsql源代码的复杂程度的几十分之一。
google的账户数据库就是<key,value>形式的Berkeley DB (简称:BDB,已经被oracle收购了), Google. Accounts uses Berkeley DB HA for the storage and retrieval of user 。
ttserver和memcached
ttserver是数据库,memcached是缓存。两者都是保存<key,value>形式的数据,通过key进行任何操作。 ttserver可以将数据持久化保存,memcached全部是保存在内存中,memcached会自动删除过期数据,最长不超过30天。 memcached在和一些api配合时,能自动进行数据的出入序列化,读取反序列化。ttserver有主从复制的功能,操作日志等,这完全是数据库才有的东西。据说memcached正在对整体架构做调整,到时候支持plugin机制.会把网络,事件处理,内存存储剥离开来.以后要做基于磁盘的 key-value存储就可以写一个存储引擎就成了。memcached的二次开发又步入一个小高潮。
TC和BDB
BDB配置开发起来比较麻烦,因为它没有ttserver这个一样的网络接口。BDB的数据文件会比较大,有时需要执行文件收缩,利用BDB开发的memcachedb就有这种问题。BDB开发已经很长时间了,成熟度高,无论是bug,支持,资料会比tc要好很多。
ttserver和关系型数据库
ttserver是<key,value>形式,在根据key进行读取,写入时速度是飞快的,但在做统计的时候,就比较麻烦了,还是需要自己写程序,从ulog中到处log,转换成sql语句,后台写入关系型数据库,然后再利用成熟的接口,逻辑,进行统计。或者应用在更改 ttserver时,发送消息(mq,syslog等)到辅助进程,辅助进程进行相应的数据操作。这种情况下,关系数据库完全是ttserver的另一种形式的存在,除了性能有所缺陷,在应用,统计上更加方便。
发表评论
-
初识HEROKU
2012-10-17 13:57 1040BY ALEX HEROKU是国外的一个知名老牌的PAAS平 ... -
java版hmac-md5 with hex
2012-12-14 10:46 2016java hmac-md5 import javax.cry ... -
配置MAVEN的NEXUS私服
2012-08-01 16:37 954带plugin的更新代理 <profile> ... -
json-lib反射annotation自定义字段名的转换(bean2json_str)
2012-02-13 18:03 1702by alex 目的,根据类的annotation,将一个对 ... -
jsonlib对date类型的双向转换
2012-01-10 15:39 1392jsonlib里toBean对格式化的日期进行转换:JSON- ... -
redhat下没装start-stop-daemon,手工编译安装的note
2011-11-14 11:57 17111,下载 wget http://developer.axis ... -
python zookeeper client报错
2011-11-11 16:00 1653ImportError: libzookeeper_mt.so ... -
activemq JDBC M/S 配置的一些记录
2011-11-11 09:45 12901,到达memoryLimit之后, produce会很慢,默 ... -
limix to many open files
2011-11-09 09:04 838ulimit -SHn 65536 -
JDBC Master - Slave测试
2011-10-18 11:31 0JDBC Master - Slave测试 测试环境: m ... -
GAE的WEB APP Server实现探索
2011-07-18 10:40 0JRE白名单不像是自定义ClassLoader实现的,而且尝试 ... -
resin xdebug
2011-07-04 10:40 1087<jvm-arg>-Xdebug</jvm- ... -
tokyotyrant-0.9-sources 的一些使用
2011-05-25 13:32 867网上的例子写的例子很全了。这里补充一下做个记录 MRDB的c ... -
自己实现OAUTH V1的consumer端协议的几个小总结
2011-05-13 10:59 1051by alex params要排序, 对于java, 有个t ... -
SHELL下FTP的一段代码
2011-03-03 14:11 894#!/bin/bash FTP_SERVER=1.1.1 ... -
shell下的一段测试代码
2011-01-10 11:07 844导出的数据带有不可见字符 cat -v后显示^@ 所以用一 ... -
单主机多实例跑一片ttserver, 代码备个份
2010-12-31 12:05 1228又做了一对ttserver, 安装还是三板斧,./config ... -
ttserver管理
2010-12-29 10:50 1198ttservctl vi /usr/local/sbin/t ... -
ttserver key value 导出
2010-12-21 17:32 1388命令如下: tcrmgr list -port 11212 ... -
20101029 部署consumer的demo遇到的问题
2010-10-29 17:30 88820101029 部署consumer的demo遇到的问题: ...
相关推荐
通常,源代码包会包含README、INSTALL、ChangeLog等文件,用于指导用户如何编译、安装和使用软件。 在 "tokyotyrant-1.1.24" 这个压缩包中,我们预期会找到 Tokyo Tyrant 的源代码、文档、示例程序和测试用例。...
TTserver是一个高性能、高可用性的分布式数据库系统,其测试结果显示了优秀的同步效率。在本次测试中,TTserver被配置为multi-master模式,意味着两个master节点互相备份,确保数据的一致性和高可用性。这种设置允许...
- **安装与启动**: 安装通常涉及libevent库,然后编译安装memcached及客户端API libmemcache。启动时,可以通过命令行指定内存大小、监听IP地址和端口。 - **操作命令**: 常用命令包括`set`(设置键值对)、`get`...
"TTServer V2.1.1"是一款专为用户提供便捷远程访问服务的软件。这款工具以其高效、稳定和易用性赢得了用户的喜爱,使得无论身处何地,都能轻松实现对远程计算机的控制和管理,真正打破了地理位置的限制,实现了...
tokyocabinet-1.4.45.tar.gz tokyotyrant-1.1.41.tar.gz tokyotyrant-0.11.jar ch-tokyocabinet-java-1.24.0.jar
"TTserver1.1.4" 是一个特定版本的服务器软件,可能是一个数据库服务或某种特定的服务器平台。从给出的信息来看,它可能是Tokyo Tyrant的一个特定版本,因为压缩包中的文件名为"tokyotyrant-1.1.41"。Tokyo Tyrant是...
在Windows操作系统环境下,".exe"文件是可执行文件的标志,意味着ttserver.exe是ttserver服务器的主程序。用户可以通过运行这个文件启动服务,或者对其进行配置和管理。在部署和运行过程中,需要确保该文件的路径...
主要用于远程协助使用,比QQ远程协助速度更快,更好用一些。 被协助者请运行“ttserver.exe”运行软件之后,随便输入一个验证码,然后点击‘被协助’,并将验证码告知协助方,协助方运行“ttclient.exe”
项目包含218个文件,具体为81个Java文件、54个C++源文件、52个头文件、6个Shell脚本、6个XML文件、5个属性文件、4个配置文件和1个Markdown文件。TTServer既作为开源项目,也作为公司产品,旨在提供高效的企业通讯...
1. **安装指南**:这部分内容会介绍如何在不同的操作系统环境下安装TTServer,包括必备的系统需求、依赖库的安装以及服务器的启动和停止操作。 2. **配置详解**:TTServer的配置文件通常包含许多可定制的选项,如...
ttserver.exe是被控端程序,安装在需要被远程控制的计算机上。它的主要职责是监听网络连接,等待控制端的请求,并在接收到请求后提供远程桌面的访问权限。ttclient.exe则是控制端程序,用于发起远程控制请求,与被控...
关于使用Key/Value数据库Redis和TTSERVER的心得体会,主要集中在Redis的特性和使用场景上。Redis是一个高性能的Key/Value存储系统,它与Memcached相似,但提供了更为丰富的数据结构和更强大的功能。 首先,Redis...
###项目背景 随着蘑菇街由导购向电商转型,蘑菇街自己的IM也应运而生,IM起初只是用于商家和 买家之间沟通的工具。后面我们问自己,既然已经有了用于客服的IM,为什么不自己 做一个IM,用于公司内部的沟通工具,来...
主要用于远程协助使用,比QQ远程协助速度更快,更好用一些。...若被协助方的‘被协助’按钮为灰色,请去掉后面‘自动连接’的勾,然后退出软件重新运行 ttserver.exe 输入验证码并点击被协助即可。
1. TTAndroidClient-master:这是Android客户端的主分支源码,使用Java或Kotlin语言编写,包含Android应用的基础结构、UI设计、网络通信模块、数据存储及处理等功能。开发者可以通过阅读这些代码了解Android应用的...
###简介: TeamTalk是一套开源的企业办公即时通讯软件,作为整套系统的组成部分之一,TTServer为TeamTalk 客户端提供用户登录,消息转发及存储等基础服务。...DBProxy (JAVA): 数据库代理服务器,提供mysql以及redis的
10. **安装与配置**:被控端的安装过程应尽可能简单,通常提供一键式安装包。配置过程需明确指导,以帮助用户正确设置访问权限和安全选项。 最后,对于“新建 文本文档 (2).exe”这个文件名,它看起来像是一个...
TeamTalk是一套开源的企业办公即时通讯软件,作为整套系统的组成部分之一,TTServer为TeamTalk 客户端提供用户登录,消息转发及存储等基础服务。 TTServer主要包含了以下几种服务器: LoginServer (C++): 登录服务器...
TTMobile 是一个专门为 Android 设计的应用程序,其主要功能是收集和存储用户的 GPS 轨迹数据,并将这些数据上传到服务器,该服务器通常被称为 TTServer。这个应用程序基于 Java 语言开发,Java 作为 Android 开发的...