ttserver命令可以启动数据库实例,再启动的时候需要指定数据库的配置类型。
支持的数据库类型有:
内存HASH数据库;
内存TREE数据库;
HASH数据库;
B+TREE数据库;
命令格式:
ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pid path] [-kl] [-log path] [-ld|-le] [-ulog path] [-ulim num] [-uas]
[-sid num] [-mhost name] [-mport num] [-rts path] [-rcc] [-skel name] [-mul num] [-ext path] [-extpc name period] [-mask expr]
[-unmask expr] [dbname]
每个参数解释:
[-host name]:指定需要绑定的服务器功能变量名称或ip地址。.默认情况下,绑定这台机器上的所有Ip地址。
[-port num]:指定服务器启动的端口号,默认1978,如果启动多个数据库实例,端口需要不同。
[-thnum num]:指定服务器工作线程的数量,默认是8.
[-tout num]:指定每个会话的超时时间(单位为秒),默认永不超时。
[-dmn]:以守护进程方式运行。
[-pid path]:输出进程ID到指定文件。(这里指文件名,绝对路径)
[-kl]:如果发现进程id文件存在,杀死已存在的进程。
[-log path]:输出日志信息到指定文件。(这里指文件名,绝对路径)
[-ld]:在日志文件中还记录debug调试信息。
[-le]:在日志文件中只记录错误信息。
[-ulog path]:指定存放更新日志的目录,可以用来备份恢复数据库,主从库之间同步。(这里指目录名,绝对路径)
[-ulim num]:指定每个更新日志的大小限制。
[-uas]:使用异步IO记录更新日志。(使用此项可以减少写入日志的IO开销,但服务器被意外关机,进程被 KILL时可能会丢失数据。)
[-sid num]:指定服务器ID,主从复制模式的时候通过不同的ID号来区别。
[-mhost name]:指定主从复制模式下的主服务器的IP。
[-mport num]:指定主从复制模式下的主服务器的端口号。
[-rts path]:指定用于主从复制的时间戳存放文件。(这里指文件名,绝对路径)
[-rcc]:检查复制的一致性。
[-skel name]:指定主干数据库的名称。用户自定义数据库的名称。
[-mul num]:指定多数据库机制的分区数量
[-ext path]:指定扩展脚本语言文件。
[-setpc name period]:指定被周期调用的函数名和间隔时间。
[-mask expr]:指定被禁止的命令名(例如:禁止使用清空vanish)
[-unmask expr]:指定被允许的命令名。
[dbname]:指定的数据库名,如果省略,则被认为是内存HASH数据库。
我们使用内存HASH数据库,和HASH数据库,hash数据库名的后缀位".tch",内存hash数据库位“*”。
数据库的调整参数通过数据库名的延伸来指定,通过“#”分开,每个参数通过一个参数名和值来指定,用“=”隔开。
HASH数据库支持"mode","bnum","apow","fpow","opts","rcnum","xmsiz"。
"xmisiz":指定存储器映射尺寸,单位字节。32位机应用程序不能设置达到3G,因为rcnum还会指定占用存储器,所以建议32位机xmsiz配置2G;64位机不受这个限制。但都不能设置超过机器可用存储器。
在小数据量“特快”用法中,这个最重要的参数必须>=db档尺寸,依赖存储器来保证每秒几万的读写性能,缺点是耗存储器,例如db档几个月后达到8G,则xmsiz设置为8G;
在大数据量“普快”用法中,例如30G数据,xmsiz可小于db,例如8G,随机读写性能接近磁盘速度,依赖磁盘的性能,随机读写每秒只能几百次。“普快”用法中,即使不设置xmsiz,TT也会强制将刚启动时的db初始大小映射到存储器,包含header、hash桶,这些频繁访问的信息一定要在内存中,重启可修改。
"bnum":指定hash桶尺寸,用来保存计算完hash值后的每个key在db档的位置,要减少hash碰撞次数,推荐设置bnum为key个数的4倍(75%的一次命中率)以上,尤其是“普快”用法中依赖磁盘性能时,如一年后key要达到1亿个,bnum则设置为4亿。
碰撞的key依次用hash map链接起来,二分法查找,增加了磁盘读写次数;
该值默认很小是131071,最大可以设几十亿以上,bnum持久化到db档,全映射在内存,重启不可修改,能用tcrmgr optimize命令,慢慢重写db档。重启不可修改。
“apow”:默认4.
“fpow“:用来指定管理的空闲块数目,默认10表示2的10次方(即默认只能管理1024个空闲块,多余的成为碎片,不能重复利用),最大可设20(表示1024*1024)但CPU占用太高。
设置”#fpow=15”可满足批量删除32768个记录,经基准测试,设置fpow 10~17是OK的,重启后不可修改
”opts“: 指定压缩方式(hash的短数据压缩比不高)和bucket array对每条数据用4字节还是8字节保存档偏移量。
要支持db档>64G请加“#opts=l”。
要用gzip压缩记录后存储到db档,请加“#opts=d”。
要支持db档>64G并且用gzip压缩记录后存储到db档,请加“#opts=ld”。
hash方式单条数据平均长度<1KB时压缩效果差,所以hash一般不压缩。
记录数很少时,压缩让性能降低到30%,记录数越多降低越明显,重启后不可修改。
”rcnum“:rcnum参数控制的是缓存在内存中的记录条数。热点数据缓存hash map能缓存的记录数,在有明显热点数据时或xmsiz小于db尺寸时,需要设置这个参数,推荐设置为1000万~2000万,会把rnum条key和value不加压缩地放存储器cache。get时将key写到这个缓存,set时从缓存清掉该key,默认0不缓存,设置则最小256,B+tree不需这个参数。
"dfunit":动态碎片整理的步长,表示更新多少次记录后进行一次动态碎片整理(unit step number of auto defragmentation),而且碎片整理时只检查2 * dfunit个位置(记录或空闲块),发现记录的前面有空闲块则往前挪动记录.
如此逐步将db从头到尾整理一遍后再返回db档记录区的开始位置继续整理。
示例“#dfunit=1024”,默认为0表示不动态碎片整理,基准测试设置16~1024的范围是OK的. 重启可修改。
“mode":可以为w,r,c,t,e,f分别代表写、读、创建、截断、不锁、非阻塞锁,默认模式是“wc”。Mode不能设置为wr.
例子:如果使用的是哈希数据库,可以指定参数“#bnum=xxxx”来提高性能,它可以指定hash桶的数量。例如指定“#bnum=1000000,
./bin/ttserver -host 127.0.0.1 -port 11211 -thnum 4 -tout 10 -dmn -pid /home/yujiahua/tokyotyrant/tokyotyrant-1.1.41/output/ttserver.pid -log /home/yujiahua/tokyotyrant/tokyotyrant-1.1.41/output/ttserver.log -ld /data/tt_data/large_test.hdb#bnum=100000000#mode=wc#apow=4#fpow=20#opts=l#rcnum=0#xmsiz=1000000000#dfunit=0
如果大量的客户端访问ttserver,请确保档描述符够用。许多服务器的默认档描述符为1024,可以在启动ttserver前使用ulimit命令提高这项值。例如:
ulimit -SHn 51200
./bin/ttserver -host 127.0.0.1 -port 11211 -thnum 4 -tout 10 -dmn -pid /home/wlh/tokyotyrant/tokyotyrant-1.1.41/output/ttserver.pid -log /home/wlh/tokyotyrant/tokyotyrant-1.1.41/output/ttserver.log -ld /data/tt_data/large_test.hdb#bnum=100000000#mode=wc#apow=4#fpow=20#opts=l#rcnum=0#xmsiz=1000000000#dfunit=0
内存hash数据库支持"bnum", "capnum", "capsiz"。
“bnum”:指定hash桶尺寸。
"capnum":指定记录的容量数。
"capsiz":指定使用内存的容量大小. 超过容量的记录将基于存储顺序被删除。
分享到:
相关推荐
- **操作命令**: 常用命令包括`set`(设置键值对)、`get`(获取键对应的值)、`stats`(查看统计信息)等。 - **分布式**: 缺乏内置的分布式功能,依赖客户端来实现数据的分发和一致性,常用的一致性哈希算法可以...
"ttserver" 是一个基于 Tokyo Cabinet 的服务器程序,主要用于数据存储和管理。Tokyo Cabinet 是一个非常著名的键值存储系统,提供了高效、轻量级的数据持久化解决方案。它支持BDB(Berkeley DB)和HDB(Hash DB)两...
"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是...
主要用于远程协助使用,比QQ远程协助速度更快,更好用一些。 被协助者请运行“ttserver.exe”运行软件之后,随便输入一个验证码,然后点击‘被协助’,并将验证码告知协助方,协助方运行“ttclient.exe”
《ttserver被协助端详解与应用》 在IT行业中,"ttserver被协助端"是一个常见的话题,尤其对于网络服务开发者和系统管理员来说,它扮演着至关重要的角色。"ttserver"通常指的是一个用于提供特定服务或功能的服务器...
本项目为蘑菇街自主研发的企业级办公即时通信软件TTServer的设计源码,采用C++作为主要开发语言,并涉及Java、C、Shell等多种编程语言。项目包含218个文件,具体为81个Java文件、54个C++源文件、52个头文件、6个...
4. TTServer-master:这是服务端的源码,可能是用Java、Python、Go等后端语言实现。这部分代码涉及服务器架构设计,数据库操作,消息路由,用户认证,以及可能的负载均衡和安全性策略。理解这部分源码有助于学习大...
【TTServer-Docs:蘑菇街TeamTalk TTServer文档】 蘑菇街TeamTalk的TTServer是一款专为团队协作设计的服务器端软件,它提供了丰富的通信和协作功能,助力企业或团队高效沟通与工作。TTServer-Docs是该软件的官方文档...
关于使用Key/Value数据库Redis和TTSERVER的心得体会,主要集中在Redis的特性和使用场景上。Redis是一个高性能的Key/Value存储系统,它与Memcached相似,但提供了更为丰富的数据结构和更强大的功能。 首先,Redis...
服务端平台: Linux 客户端平台: Windows,Mac, iOS, Android ###子系统分类 各个子系统的详细说明请参考子系统的README文档 -TTPhpServer TT的Web后台管理服务器 -TTCppServer TT的服务器,包括登陆分配,长连接接入...
首先,我们要了解ttvnc2.2的两个核心组件:ttserver.exe和ttclient.exe。ttserver.exe是被控端程序,安装在需要被远程控制的计算机上。它的主要职责是监听网络连接,等待控制端的请求,并在接收到请求后提供远程桌面...
主要用于远程协助使用,比QQ远程协助速度更快,更好用一些。...若被协助方的‘被协助’按钮为灰色,请去掉后面‘自动连接’的勾,然后退出软件重新运行 ttserver.exe 输入验证码并点击被协助即可。
如果需要以守护进程模式运行,可以使用`ttServer`命令。 1.6. 停止服务 使用`ttStop`命令关闭正在运行的TimesTen实例。 2. 卸载 2.1. Linux上卸载 通过命令`rpm -e package_name`或`yum remove package_name`来...
TeamTalk是一套开源的企业办公即时通讯软件,作为整套系统的组成部分之一,TTServer为TeamTalk 客户端提供用户登录,消息转发及存储等基础服务。 TTServer主要包含了以下几种服务器: LoginServer (C++): 登录服务器...
不用像ttvnc那样区分ttserver和ttclient) 适用场景: 临时的远程协助, 如: 远程给老板电脑杀毒, 远程给老板娘安装视频播放器 , 远程给收银妹子找电影资源等. 适用对象: 各种闷骚 / 不闷骚型技术男,以及技术妹子. ...
【远程工具ttvnc】是一款轻量级的远程协助软件,以其小巧的体积(几百KB)和高效实用的功能,深受用户喜爱。这款软件的核心特点在于它的便捷性和易用性,使得用户无需复杂的设置,只需输入相同的验证码,即可实现...