Tokyo Cabinet 与 Tokyo Tyrant 介绍及安装
简介
Tokyo Cabinet (简称TC) 是日本人平林幹雄 开发的一款 DBM 数据库,其数据文件只有一个,里面存放多个<key,value>的数据记录,所有操作都是依据 key做主键操作。key,value都可以是连续不定长,即可以是二进制,也可是是字符串。该数据库读写非常快,哈希模式下 写入 100 万条数据只需 0.643 秒,读取 100万 条数据只需 0.773秒,是 Berkely DB 等 DBM 的几倍。
数据文件中的记录组织有三种模式:hash表,B+树,定长数组。
1.做为hash表时,主键key必须是的,方法有:按key来存储value到一个记录,按key来删除一个记录,按key来获取一个记录的 value。另外还有一个获取所有key的方法,获取的key是不排序的。TC可以做为NDBM,GBM的替代品,因为有更高的性能。
2.当采用B+树时,可以存储相同key的多条记录,有存储,删除,读取的方法,还可以按照一定顺序来读取记录。
3.做为一个定长数组,key必须是自然数,其它的和hash表完全一样,因为key是自然数,所以速度比hash表要快。
以上三种数据库即可以只保存在内存中,也可以指定保持到硬盘。应用广泛的,是hash表。
Tokyo Tyrant(简称TT) 是由同一作者开发的 Tokyo Cabinet 数据库网络接口。它拥有 Memcached 兼容协议,也可以通过 HTTP 协议进行数据交换。
Tokyo Tyrant 加上 Tokyo Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有 Memcached客户端来讲,可以将 Tokyo Tyrant 看成是一个 Memcached,但是,它的数据是可以持久存储的。这一点,跟新浪的 Memcached 性质一样。
上面提到的Memcached简单介绍一下:
1.Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
2.Mencache中每个item都是一个key。
3.MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性;当分配给memcached内存空间用完之后,会使用LRU(Least Recently Used,近少使用)策略加上到期失效策略,失效数据首先被替换,然后再替换掉近未使用的数据。
对比
相比 Memcached 而言,Tokyo Tyrant 具有以下优势:
1.故障转移:Tokyo Tyrant 支持双机互为主辅模式,主辅库均可以读写,而 Memcachedb 目前支持类似 MySQL 主辅库同步的方式实现读写分离,支持“主服务器可读写、辅助服务器只读”模式。
2.日志文件体积小:Tokyo Tyrant 用于主辅同步的日志文件比较小,大约是数据库文件的1.3倍,而 Memcachedb 的同步日志文件非常大,如果不定期清理,很容易将磁盘写满。
3.超大数据量下表现出色。
但是,Tokyo Tyrant 也有缺点:在32位操作系统下,作为 Tokyo Tyrant 后端存储的 Tokyo Cabinet 数据库单个文件不能超过2G,而64位操作系统则不受这一限制。所以,如果使用 Tokyo Tyrant,推荐在64位CPU、操作系统上安装运行。
安装
一、首先登陆网站下载tokyocabinet-1.4.48.tar.gz和tokyotyrant-1.1.41.tar.gz,官网地址:
Tokyo Cabinet新下载地址:
http://fallabs.com/tokyocabinet/
Tokyo Tyrant新下载地址:
http://fallabs.com/tokyotyrant/
二、在CentOS7下安装,注意使用的是root用户。
使用winSCP将文件导入CentOS /home目录下,使用 tar zxvf tokyocabinet-1.4.48.tar.gz解压。
执行configure文件(出现问题)
若发现如上图问题,则是依赖包未装好。输入以下命令进行安装。
yum install zlib-devel
yum install -y gcc glibc
yum install bzip2-devel
依赖环境配置成功如下图:
后使用make和makeinstall进行安装
Tokyo Tyrant的安装与Tokyo Cabinet相似。
启动Tokyo Tyrant
配置
tokyotyrant 参数说明
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:指定线程数。默认为 9个线程
-tout num:指定每个会话的超时时间(单位为秒)。默认永不超时。
-dmn:以守护进程方式运行
-pid path:输出进程ID到指定文件(这里指定文件名)
-log path:输出日志信息到指定文件(这里指定文件名)
-ld:在日志文件中还记录 DEBUG 调试信息。
-le:在日志文件中仅记录错误信息。
-ulog path:指定同步日志文件存放路径(这里指定目录名)
-ulim num:指定每个同步日志文件的大小(例如128M)
-uas:使用异步IO记录更新日志(使用此项会减少磁盘消耗,但是数据会先放在内存中,不会立即写入磁盘。如果重启服务器或ttserver进程被kill掉,将导致部分数据丢失。一般情况下不建议使用)。
-sid num:指定服务器ID号(当使用主辅模式时,每台ttserver 需要不同的ID号)
-mhost name:指定主辅同步模式下,主服务器的域名或者IP地址
-mport num:指定主辅同步模式下,主服务器的端口号
-rts path:指定用来存放同步时间戳的文件名
调用
任何Memcached 客户端均可直接调用 tokyotyrant。
还可以通过HTTP方式调用,下面以 Linux 的curl 命令为例,介绍如何操作 tokyotyrant:
(1)写数据,将数据“value”写入到“key”中:
curl -X PUT http://127.0.0.1:11211/key -d “value”
(2)读数据、读取“key”中数据:
curl http://127.0.0.1:11211/key
(3)删数据,删除“key”:
curl -X DELETE http://127.0.0.1:11211/key
相关文章