Tokyo Tyrant基本规范(2)--服务器程序

前端之家收集整理的这篇文章主要介绍了Tokyo Tyrant基本规范(2)--服务器程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本节介绍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[-hostname][-portnum][-thnumnum][-toutnum][-dmn][-pidpath][-kl][-logpath][-ld|-le][-ulogpath][-ulimnum][-uas][-sidnum][-mhostname][-mportnum][-rtspath][-rcc][-skelname][-mulnum][-extpath][-extpcnameperiod][-maskexpr][-unmaskexpr][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","lcnum","ncnum","dfunit"

Fixed-length database "mode","width","limsiz"

Table database "mode","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,失败时返回其他。

猜你在找的NoSQL相关文章