Tokyo Tyrant(TTServer)系列-介绍、安装以及应用

tts-server语音+legado阅读 tts-server + legado3.0阅读文章堪比真人朗读。默认使用晓晓、云健,晓晓对话,云键作为旁白。,一键导入,导入完成即可搜索资源。朗读引擎:TTS Server。,安卓手机,可以安装稳定版。 阅读详情

TTServer是什么?
Tokyo Cabinet 是一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统。key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。

Tokyo Tyrant 是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有Memcached兼容协议,也可以通过HTTP协议进行数据交换。Tokyo Tyrant 加上 Tokyo Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,可以将Tokyo Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。

TTServer的安装以及配置:(Linux:CentOS 5.2版本)
1、编译安装 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


2、编译安装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


注:如果安装Tokyo Cabinet时指定了目录,在安装Tokyo Tyrant时用 --with-tc 指定Tokyo Cabinet的目录,如果没指定会报:configure: error: tcutil.h is required 错误。

3、创建tokyotyrant数据文件存放目录
mkdir  /var/db/ttserver/

4、启动tokyotyrant的主进程(ttserver)
[root@localhost /]# whereis ttserver  -> /usr/local/bin/ttserver
[root@localhost /]# cd /usr/local/sbin
[root@localhost bin]#  ttserver -host 127.0.0.1 -port 1978 -thnum 8 -dmn -pid /var/db/ttserver/ttserver.pid -log /var/db/ttserver/ttserver.log -le -ulog /var/db/ttserver/ -ulim 128m
[root@localhost bin]# ps uax |grep ttserver //查找运行的进程

5、参数说明
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=1000000”,就可以将最新最热的100万条记录缓存在内存中:

[root@localhost ttserver]# ttserver -host 127.0.0.1 -port 1978 -thnum 8 -dmn -pid /var/db/ttserver/ttserver.pid -log /var/db/ttserver/ttserver.log -le -ulog /var/db/ttserver/ -ulim 128m
-sid 1 -rts /var/db/ttserver/ttserver.rts /var/db/ttserver/database.tch#bnum=1000000


应用:
1、任何Memcached客户端均可直接调用tokyotyrant。
2、还可以通过HTTP方式调用,下面以Linux的curl命令为例,介绍如何操作tokyotyrant:
  (1)、写数据,将数据“value”写入到“key”中:curl -X PUT http://127.0.0.1:1978/key -d "value"
    (2)、读数据,读取“key”中数据:curl http://127.0.0.1:1978/key
    (3)、删数据,删除“key”:curl -X DELETE http://127.0.0.1:1978/key
3. PHP 的 API 接口程序以及 DEMO 详见:http://openpear.org/repository/Net_TokyoTyrant/

注:在32位操作系统下,作为 Tokyo Tyrant 后端存储的 Tokyo Cabinet 数据库单个文件不能超过2G,而64位操作系统则不受这一限制。所以,如果使用 Tokyo Tyrant,推荐在64位CPU、操作系统上安装运行。在编译Tokyo cabinet的时候,使用如下编译选项就可以突破2G限制:--enable-off64


项目中运用的实例:统计论坛中帖子的点击数量

<?php
define('TT_PATH', substr(dirname(__FILE__), 0, -7));
require_once(TT_PATH.'/bbs/TokyoTyrant.php');

$ttObject = new Net_TokyoTyrant();

$memObject = new Memcache();
//连接TT
$memObject->connect('192.168.1.111',1979);

//写入点击数 以 fid_$fid 为 Key 保存对应的域名值
function hitsSet($fid, $num)
{
    global $memObject;
    $hitskey = "fid_".$fid;  //key
    $res = $memObject->get($hitskey );
    if(empty($res)) {
        $memObject->set($hitskey ,$num);  //设置 fid_id=>num
    } else {
        $memObject->replace($hitskey , $num);  //重置替换
    }
    $memObject->close();  //一定要记得关闭,否则 TIME_OUT  进程会越来越多
}

//获取点击数
function hitsGet($fid)
{
    global $memObject;
    $groupkey = "fid_".$fid;  //key
    $res = $memObject->get($fid);  //获取value
    $num = empty($res) ? '0' : $res;
    return $num;
    $memObject->close();
}

?>

注:序列化问题
在实际应用中更常用 memcache 协议使用ttserver,当我们从中取数据时,会是一个序列化的字符串,没有自动反序列化处理,但在memcached服务器上却是自动反序列化的哦。这样我们先将数据取出,如:
a:1:{s:5:"value";s:14:"this is a value";} ,再利用 unserialize() 函数反序列化就可以使用了。

24届数字IC设计/验证秋招总结贴——先看这个 为方便快速进行查找该专栏的内容,将所有内容链接均放在此篇博客中整理不易,欢迎订阅~~ 阅读详情

相关推荐

手把手教你学Simulink--基础微电网场景实例:基于Simulink的混合交直流微电网架构仿真

本文基于Simulink构建混合交直流微电网仿真模型,通过交流子网(风电+交流负荷)和直流子网(光伏+储能+直流负荷)的协同控制,实现系统效率提升8.5%。重点介绍了混合架构原理、下垂控制策略及Simulink建模方法,包括核心模块实现、协调控制器代码和仿真参数设置。通过三种工况测试验证了系统性能:功率转移响应时间<0.5s,电压波动<5%,显著优于传统独立子网架构。文章还提供了进阶优化方向和完整代码清单,为微电网仿真研究提供实用参考。

MHD0815的博客 109

【亲测免费】 探索TTS-Server-Android:一款高效易用的文本转语音服务

在这个数字化的时代,文本转语音(Text-to-Speech, TTS)技术已经广泛应用于各类场景,从智能手机的读屏功能到智能助手的交互体验。今天,我们要介绍的是在GitCode上开源的项目,这是一款专为Android平台设计的高效、轻量级的TTS服务器。 ## 项目简介 是一个基于Java开发的本地服务器应用,它能够接收来自客户端的文本请求,并将其转换成自然流畅的语音输出。项目的独特之处在于...

gitblog_00023的博客 2358

TTS-Server:TTS网站的服务器

一个渐进式的框架,用于构建高效且可扩展的服务器应用程序,受到极大启发。 描述 框架TypeScript入门资料库。 安装 $ npm install 运行应用 # development $ npm run start # watch mode $ npm run start:dev # production mode $ npm run start:prod 测试 # unit tests $ npm run test # e2e tests $ npm run test:e2e # test coverage $ npm run test:cov 支持 Nest是MIT许可的开源项目。 得益于赞助商和出色支持者的支持,它可以发展壮大。 如果您想加入他们,请在这里阅读更多内容。 保持联系 作者-KamilMyśliwiec 网站-https: //nestjs.com T

TTS Server v1.24.121818 仍能正常使用(附设置方法)

于是在多番努力下,发现TTS Server其实还能使用(24-12-13),只是功能稍有限制(部分失效)。虽然有替代的软件,但TTS Server有其特殊的优点(特别是上述的第③点),如果真不能用,实在可惜。TTS Server是一款手机TTS中文语音引擎,配合阅读软件使用,可以直接朗读小说。前段时间有些忙,一直没用,最近想使用TTS Server时发现异常,不能朗读。它内置微软的服务器接口,所合成的语音清晰、自然,是本人听书的首选语音引擎。③有失败重试机制,切换网络后能自动续播。②微软语音自然清晰;

2501_90254094的博客 3958

【亲测免费】 开源项目"TTS Server"下载与安装指南

**TTS Server** 是一个基于Rust编写的文字转语音(Text-to-Speech, TTS)服务器应用,由用户`litcc`在GitHub维护。该项目集成了Edge浏览器的“大声朗读”API及Azure TTS服务,旨在提供高效、灵活的文字转换为语音的能力。它利用WebSocket保持高并发请求,提升性能,并支持官方订阅接口以确保稳定性和可靠性。尽管部分功能依赖外部服务,如Edge浏...

gitblog_01300的博客 5209

TTS项目--github--soobinseo/Transformer-TTS

Transformer-TTS

zzfive的博客 2761

安装配置ttserver(tokyocabinet,Tokyo Tyrant)

本文原创,作者:python中国--老老仙 http://www.okpython.com/bbs准备软件:tokyocabinetTokyo Tyrant关联软件,bzip2:wget http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz如果不安装的话,在你配置tc,tt的时候,就会报告一个bzip2.h 未定义(bzip2.h

老老仙的专栏 1360

tokyo tyrant 安装日志

tokyo tyrant是一个可持久化的缓存服务器,类似memcachedb,tokyo tyrant本身是个缓存服务器,但需要tokyo cabinet作为存储引擎,就像memcachedb中的memcache需要berkeley db一样1)安装存储引擎tokyo cabinetwget http://1978th.net/tokyocabinet/tokyocabinet-1

pwlazy的专栏 7656

Tokyo TyrantTTServer系列-介绍安装

标签:安装 ttserver Tokyo TyrantTTServer系列-介绍安装Tokyo Cabinet 是日本人 Mikio Hirabayashi(平林幹雄)のページ  开发的一款DBM数据库(注:大名鼎鼎的DBM数据库qdbm就是他开发的),该数据库读写非常快。insert:0.4sec/1000000 recordes(2500000qps),写入100万数据只需要0...

杨镇宇的博客 482

Tokyo Cabinet和Tokyo Tyrant的详细安装手册

一、首先登陆网站下载tokyocabinet-1.4.48.tar.gz和tokyotyrant-1.1.41.tar.gz,官网地址: Tokyo Cabinet最新下载地址: http://fallabs.com/tokyocabinet/ Tokyo Tyrant最新下载地址: http://fallabs.com/tokyotyrant/ 二、在ubuntu12.04下安装,注意

IT_YUAN的专栏 2828

Tokyo TyrantTTServer系列-memcache协议 [

通过memcache协议使用ttserver 通过telnet 127.0.0.1 1978 telnet连接到到我们第一节的启动实例。以下我们通过add增加key为key1和value为value1的数据。通过get key1获取数据,如果你看不明白,可以搜索下memcache协议的东西看下。add key1 1 0 6value1STORED

半道出家的和尚 1230

ttserver安装

安装环境 虚拟机 ubuntu 9.04 内存350M安装前准备下载zlib和bzip并进行安装,因为我使用的是ubuntu系统,所以直接apt-get install libbz2-dev就 ok了。安装tokyo cabinetwget http://1978th.net/tokyocabinet/tokyocabinet-1.4.41.tar.gztar zxvf

cfw2006的专栏 3542

ubuntu下安装Tokyo Tyrantttserver

在ubuntu下安装过程如下: 官方网站地址:http://1978th.net/ 安装libbz2 apt-get install libbz2-dev 安装 Tokyo Cabinet wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.42.tar.gz tar zxvf tokyocabinet-1.4.14...

杨镇宇的博客 289

关于ttServer的一些整理

Tokyo Cabinet 是一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统。key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适

公众号:微观技术 1912

Tokyo TyrantTTServer系列(二)-启动參数和配置

启动參数介绍 ttserver命令能够启动一个数据库实例。由于数据库已经实现了Tokyo Cabinet的抽象API,所以能够在启动的时候指定数据库的配置类型。支持的数据库类型有:内存hash数据库内存tree数据库hash数据库B+ tree数据库命令通过以下的格式来使用,‘dbname’制定数据库名,假设省略。则被视作内存hash数据库ttserver [-h...

aodiyi6351的博客 194

Tokyo TyrantTTServer系列(三)-Memcache协议

通过memcache协议使用ttserver 通过telnet 127.0.0.1 9032 telnet连接到到启动的实例。以下我们通过add增加key为key1和value为value1的数据。通过get key1获取数据。( )add key1 1 0 6value1STOREDget key1VALUE key1 0 6value1END编写php脚本$mem=new Memcache

上善若水,水善利万物而不争。 3571

Tokyo TyrantTTServer系列-备份恢复和增加从库

前面我们说了TTServer的使用,以及如何在开始的时候配置主从。在使用中它非常高效和可靠,那么如果我们的服务运行一段时间后,需要增加一个从库(ttserver)来分担压力或者用于负载均衡和HA,因为是线上系统,那么就不应该停机,那么我们应该怎么对数据进行备份和拷贝,然后启动一个slave从库呢?  1.如何备份和恢复      登录到ttserver服务器,执行如

半道出家的和尚 1658

Tokyo TyrantTTServer系列-启动参数和配置

Tokyo TyrantTTServer系列-启动参数和配置 数据库类型 下面我们再来看下数据库类型的详细配置。     数据库名的命名方式被Tokyo Cabinet的抽象API指定。    如果数据库名为"*",表示内存hash数据库。    如果数据库名为"+"表示内存tree数据库。    如果数据库名为".tch",则数据库为hash数据库。    如果数据库名的后缀为...

e家 275

锂电池Modbus通信协议.pdf

经过测试,能用于ESM-48100B1,其他型号,应该也是可以的,有了这个协议,可以把华为的通信电池用于其他逆变器。

上一篇: PHP编程中问题集锦
下一篇: Memcached 缓存系统的-介绍、安装以及应用
ctowoo
博客等级 码龄17年 16粉丝 51原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值