关于tokyo的一些认识

牛嘉谊
2023-12-01
  • tokyocabinet :一个key-value的DBM数据库,但是没有提供网络接口,以下称TC。
  • tokyotyrant :是为TC写的网络接口,他支持memcache协议,也可以通过HTTP操作,以下称TT。
  • Tokyo Tyrant支持双机互为主辅模式,主辅库均可读写。
  • 使用 $memcache->addServer 而不是 $memcache->connect 去连接 Tokyo Tyrant 服务器。
  • Tokyo Tyrant用于主辅同步的日志文件比较小,大约是数据库文件的1.3倍。
  • Tokyo Tyrant 也有缺点: 在32位操作系统下,作为 Tokyo Tyrant 后端存储的 Tokyo Cabinet 数据库单个文件不能超过2G ,而64位操作系统则不受这一限制。
  • 方式
  • 安装过程:
  • 请先安装tokyocabinet,再安装tokyotyrant.后者依赖前者
  • 编译安装tokyocabinet数据库
  • wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.28.tar.gz
    tar zxvf tokyocabinet-1.4.28.tar.gz
    cd tokyocabinet-1.4.28/
    ./configure
    make
    make install
    cd ../

  • 编译安装tokyotyrant
  • wget http://tokyocabinet.sourceforge.net/tyrantpkg/tokyotyrant-1.1.29.tar.gz
    tar zxvf tokyotyrant-1.1.29.tar.gz
    cd tokyotyrant-1.1.29/
    ./configure
    make
    make install
    cd ../

     

     

    make -p /usr/local/ttserver

     

  • 启动tokyotyrant的主进程(ttserver)
    1. 单机模式
      ulimit -SHn 51200
      ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch
    2. 双机互为主辅模式服务器192.168.1.91:
      ulimit -SHn 51200
      ttserver -host 192.168.1.91 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 91 -mhost 192.168.1.92 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch
      服务器192.168.1.92:
      ulimit -SHn 51200
      ttserver -host 192.168.1.92 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 92 -mhost 192.168.1.91 -mport 11211 -rts /ttserver/ttserver.rts /ttserver/database.tch

       

    3. 参数说明

       

      ttserver -host -port -thnum -tout [-dmn] -pid -log [-ld|-le] -ulog -ulim [-uas] -sid -mhost -mport -rts [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=1000000”,就可以将最新最热的100万条记录缓存在内存中:
      ttserver -host 127.0.0.1 -port 11211 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 1 -rts /ttserver/ttserver.rts /ttserver/database.tch#bnum=1000000
      如果大量的客户端访问ttserver,请确保文件描述符够用。许多服务器的默认文件描述符为1024,可以在启动ttserver前使用ulimit命令提高这项值。例如:
      ulimit -SHn 51200

  • 停止tokyotyrant(ttserver)

     

    ps -ef | grep ttserver
    找到ttserver的进程号并kill,例如:
    kill -TERM 2159
  • 调用
    1. 任何Memcached客户端均可直接调用tokyotyrant。
    2. 还可以通过HTTP方式调用,下面以Linux的curl命令为例,介绍如何操作tokyotyrant;
  • 写数据:将数据“value”写入到“key”中:
    curl -X PUT http://127.0.0.1:11211/key -d "value"
  • 读数据,读取“key”中数据:
  • 删数据,删除“key”:
  • 参考地址:http://docs.linuxtone.org/ebooks/NOSQL/tokyotyrant.html

 类似资料: