启动tokyo tyrant
单机模式
ulimit -SHn 51200
ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /data/tt.pid -log /data/tt.log -le -ulog /data/ -ulim 128m -sid 1 -rts /data/tt.rts /data/data.tch#bnum=10000#rcnum=100000#xmsiz=256m
如果希望提高查询的性能,可以把hash的桶设置得再大些,然后缓存的记录多一些。
同时,设置-uas参数异步写入日志,可提高写入的性能。不过这样可能导致日志丢失,降低了数据安全性。
双机互为主辅模式
服务器192.168.1.11:
ulimit -SHn 51200
ttserver -host 192.168.1.11 -port 11211 -thnum 8 -dmn -pid /data/tt.pid -log /data/tt.log -le -ulog /data/ -ulim 128m -sid 1 -mhost 192.168.1.12 -mport 11211 -rts /data/tt.rts /data/data.tch#bnum=10000#rcnum=100000#xmsiz=256m
服务器192.168.1.12:
ulimit -SHn 51200
ttserver -host 192.168.1.12 -port 11211 -thnum 8 -dmn -pid /data/tt.pid -log /data/tt.log -le -ulog /data/ -ulim 128m -sid 2 -mhost 192.168.1.11 -mport 11211 -rts /data/tt.rts /data/data.tch#bnum=10000#rcnum=100000#xmsiz=256m
应用程序可以访问任意一个服务器进行读写,且应用程序发现某服务器不能访问后,可立即转到另一台服务器。
注:
数据库类型由后缀决定
Hash Database: tch
B+ tree database: tcb
fixed-length database: tcf
table database: tct
内存Hash Database: *
内存B+ tree database: +
参数说明:
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] [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: 指定用来存放同步时间戳的文件名。
#bnum=xxx: 指定bucket存储桶的数量。例如#bnum=10000,将新热的1万条记录缓存在内存中
hash数据库持参数: "bnum", "apow", "fpow", "opts", "rcnum", 和 "xmsiz".
rcnum'指定大的缓存记录数。如果它不大于零,那么缓存记录不可用。默认不可用。
xmsiz 指定外部内存的大小。如果不大于0,内存不可用。默认是67108864,即64M。
`bnum' 指定bucket存储桶的数量。如果指定的数目不大于0,将会使用默认的数值131071.推荐数量应该在所有需要存储的记录总数的0.4-4倍
`apow' 跟一个key关联的记录数,2的N次方表示. 如果不指定,默认2^4=16.
`fpow' specifies the maximum number of elements of the free block pool by power of 2. 默认2^10=1024.
`opts' 指定选项,位或:`HDBTLARGE' 指定数据库的大小通过使用64位数组桶能够超过2G。
`HDBTDEFLATE' 指定每个记录被Deflate encoding压缩。
`HDBTBZIP' 指定每个记录被BZIP2 encoding压缩
`HDBTTCBS'指定每个记录被 TCBS encoding压缩.
停止数据库
ps aux | grep ttserver | grep -v 'grep' | awk -F ' ' '{print $2}' | xargs kill -TERM