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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

  本节介绍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。

 

1
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,失败时返回其他。




















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1643964 ,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
基于UDP/TCP实现客户端服务器的网络通信程序
基于UDP/TCP实现客户端服务器的网络通信程序
|
5月前
|
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
206 1
如何将nodejs项目程序部署到阿里云服务器上
该文章详细描述了将Node.js项目部署到阿里云服务器的步骤,包括服务器环境配置、项目上传及使用PM2进行服务管理的过程。
阿里云2核4G服务器支持多少人在线?程序效率、并发数、内存CPU性能、公网带宽多因素
2核4G云服务器支持的在线人数取决于多种因素:应用效率、并发数、内存、CPU、带宽、数据库性能、缓存策略、CDN和OSS使用,以及用户行为和系统优化。阿里云的ECS u1实例2核4G配置,适合轻量级应用,实际并发量需结合具体业务测试。
135 0
阿里云2核4G服务器支持多少人在线?程序效率、并发数、内存CPU性能、公网带宽多因素
【Mac os】如何在服务器上启动Jupyter notebook并在本地浏览器Web端环境编辑程序
本文介绍了如何在服务器上启动Jupyter Notebook并通过SSH隧道在本地浏览器中访问和编辑程序的详细步骤,包括服务器端Jupyter的启动命令、本地终端的SSH隧道建立方法以及在浏览器中访问Jupyter Notebook的流程。
312 0
实时计算 Flink版操作报错之程序在idea跑没问题,打包在服务器跑就一直报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
【5月更文挑战第12天】Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
280 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等