Tokyo Tyrant基本规范,翻译自tt官网,地址。
本节介绍Tokyo Tyrant的服务器程序。
三. 服务器程序
1) ttserver
命令'ttserver'运行服务器端管理一个数据库实例。因为数据库被视为Tokyo Cabinet的抽象API,你可以在服务器启动时选择方案。支持的方案有on-memory hash database, on-memory tree database, hash database, 和 B+ tree database. 这个命令的使用格式如下。'dbname'指定数据库名称。缺省使用on-memory hash database。
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 : 指定服务器的主机名或地址。默认,每个网络地址都将被绑定
-port num : 指定端口号。默认为1978
-thnum num : 指定工作线程。默认为8
-tout num : 指定每个会话(session)的超时时间,单位秒。默认不超时。
-dmn : 作为守护进程工作
-pid path : 输出进程id到文件
-kl : 如果发现进程id文件存在,杀死已存在的进程
-log path : 输出日志信息到文件
-ld : 将debug信息写入日志文件
-le : 仅仅写入错误信息到日志文件
-ulog path : 指定更新日志目录
-ulim num : 指定每个更新日志文件的大小限制
-uas : 为更新日志使用异步I/O
-sid num : 指定服务器ID
-mhost name : 指定复制主服务器的主机名
-mport num : 指定复制主服务器的端口号
-rts path : 指定复制时间戳文件
-rcc : 检查复制的一致性
-skel name : 指定骨架(skeleton,基本?)数据库类库的名称
-mul num : 指定多数据库机制的分区数量
-ext path : 指定脚本语言扩展文件
-extpc name period : 指定周期命令的函数名和调用周期
-mask expr : 指定禁用命令的名称
-unmask expr : 指定容许使用的命令的名称
发送SIGINT或SIGTERM到进程可正常关闭服务器,。也可以在控制终端中按Ctrl-C。发送SIGHUP可重启服务器。如果端口号不大于0,将使用UNIX domain socket同时socket文件的路径将由主机参数指定。这个命令成功时返回0,失败返回其他。
数据库命名协定由Tokyo Cabinet的抽象API指定。名称为
名称 数据库
"*" on-memory hash database
'+' on-memory tree database
".tch"后缀 hash database
".tcb"后缀 B+ tree database
".tcf" fixed-length database
".tct" table database
别的名称则这个方法失败。
名字后面可以追加调整参数,用"#"分隔。每个参数由名称和值组成,用"="分隔。
数据库 支持参数
On-memory hash database "bnum", "capnum", "capsiz"
On-memory tree database "capnum", "capsiz"
Hash database "mode", "bnum", "apow", "fpow", "opts", "rcnum", "xmsiz", "dfunit"
B+ tree database "mode", "lmemb", "nmemb", "bnum", "apow", "fpow", "opts", "lcnum", "ncnum", "xmsiz", "dfunit"
Fixed-length database "mode", "width", "limsiz"
Table database "mode", "bnum", "apow", "fpow", "opts", "rcnum", "lcnum", "ncnum", "xmsiz", "dfunit", "idx"
参数名 作用
"bnum" 指定bucket number
"capnum" 指定记录的容量数
"capsiz" 指定使用内存的容量大小. 超过容量的记录将基于存储顺序被删除.
"mode" 可包含"w"/写, "r"/读, "c"/创建, "t"/缩短(truncating), "e"/不加锁, "f"/不阻塞锁. 默认模式为"wc".
"opts" 可包含"l" / large选项, "d" / Deflate选项,"b" / BZIP2 选项, "t" / TCBS 选项
"idx" 指定索引的列名和类型,用":"分隔。例如,"casket.tch#bnum=1000000#opts=ld" 表示数据库文件名是"casket.tch", bucket number 是 1000000, 选项是large和Deflate.
命令掩码表达式(command mask expression)是由","分隔的命令列表。例如,"out,vanish,copy"表示"out", "vanish"和"copy"的集合。memcached 兼容协议命令和HTTP 兼容协议命令也同样被禁止或容许,和每个初始命令的掩码相关。此外,还有meta 表达式:
表达式 表示的命令
"all" 所有命令
"allorg" 所有原始二进制协议的命令
"allmc" 所有memcached兼容协议的命令
"allhttp" 所有HTTP兼容协议的命令"allread" 缩写,包括'get', 'mget', 'vsiz', 'iterinit', 'iternext', 'fwmkeys', 'rnum', 'size', 'stat'.
"allwrite" 缩写,包括'put', 'putkeep', 'putcat', 'putshl', 'putnr', 'out', 'addint', 'adddouble', 'vanish', 'misc'.
"allmanage" 缩写,包括'sync', 'optimize', 'copy', 'restore', 'setmst'.
"repl" 作为master复制
"slave" 作为slave复制
2) ttservctl
'ttservctl'命令是服务器的启动脚本。可以被操作系统的启动程序的RC脚本调用。这个命令的使用格式如下:
1. ttservctl start
启动服务器
2. ttservctl stop
停止服务器
3. ttservctl restart
重启服务器
4. ttservctl hup
为日志轮换发送HUP信号到服务器
数据库放置于"/var/ttserver/casket.tch"。日志和相关文件放置于"/var/ttserver"。这个命令成功时返回0,失败时返回其他。
3) ttulmgr
'ttulmgr'命令是导入导出更新日志的工具。对于通过使用文本工具如grep和sed来过滤日志文件非常有用。这个命令的使用格式如下。'upath'指定更新日志目录。
1. ttulmgr export [-ts num] [-sid num] upath
导出更新日志为TSV文本数据到标准输出
2. ttulmgr import upath
从标准输入中导入TSV文本数据到更新日志
选项如下
-ts num : 指定开始的时间戳
-sid num : 指定自己的服务器ID
这个命令成功时返回0,失败时返回其他。