HI END


一种永不妥协,追求极致与完美的精神与态度。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Tokyo Cabinet和Tokyo Tyrant安装(转)

Posted on 2013-04-23 15:49  HI END  阅读(368)  评论(0编辑  收藏  举报

来源:http://blog.csdn.net/grantxx/article/details/7547492

在编译 tokyocabinet 时会报 configure: error: bzlib.h is required 的错误。

解决方法是:   yum install bzip2-devel

 

configure: error: zlib.h is required
原来没有zlib包 
rpm -ql zlib命令查询后发现存在 
[root@cenosvmbase tokyocabinet-1.4.41]# rpm -ql zlib
/usr/lib64/libz.so.1
/usr/lib64/libz.so.1.2.3
/usr/share/doc/zlib-1.2.3
用./configure --help知道可以手工指定则用命令
如果没有安装源码包会找不到文件
装源码包的命令是 sudo yum install zlib-devel


Tokyo Cabinet和Tokyo Tyrant安装和调用手记  

 

2011-02-09 07:24:50|  分类: linux技术|字号 订阅

 
 

在对网站进行安全检测的过程中,总是会遇到密码破解的问题,破md5总是去www.cmd5.com,但是很多密码都是收费的,无奈囊中羞涩。如果遇到mysql用password加密的密码,更是无从破解,有人会说用爆破工具,那稍微复杂一点密码,就要破死人。于是想自己搞一个密码破解的网站起来,md5,mysql等密码的破解都加进去。

首 先选择数据库和web语言,cmd5用的是.net,数据库不得而知(猜测可能是sql server吧),因为不会.net,而我对开源的平台熟一些,所以web语言选用了php。数据库这块,因为想想这样的密码存储数据库是相当大的,而传 统的mysql,pgsql或者oracle,虽然功能强大,但是我感觉都不适合,因为我只需要密码和散列一一对应的功能,即key-value的功能。 在网上搜寻类似的数据库,结果发现了这个Tokyo Cabinet。它是日本人平林幹雄(只谈技术,不涉及历史问题)开发的一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍。利用Tokyo Tyrant作为Tokyo Cabinet数据库的网络接口,兼容memcached接口,也支持http协议的数据交换。

一、安装

1、首先编译安装tokyocabinet数据库

编译的时候会提示找不到zlib.h和bzlib.h,那么先安装zlib-devel和bzip2-devel这两个包分别有这两个头文件

 

rpm -ivh zlib-devel-1.2.3-3.i386.rpm
rpm -ivh bzip2-devel-1.0.3-4.el5_2.i386.rpm

 

 

wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.41.tar.gz
tar zxvf tokyocabinet-1.4.41.tar.gz
cd tokyocabinet-1.4.41/
./configure --enable-off64 #启动64位偏移,因为我机器是32位,如果数据库文件超过2G,不加此参数ttserver会崩溃
make
make install
cd ../

 

2、然后编译安装tokyotyrant

 

wget http://1978th.net/tokyotyrant/tokyotyrant-1.1.39.tar.gz
tar zxvf tokyotyrant-1.1.39.tar.gz
cd tokyotyrant-1.1.39/
./configure
make
make install
cd ../

 

二、配置

1、创建Tokyo Tyrant数据文件存放目录

mkdir -p /ttserver/

2、启动Tokyo Tyrant主进程

运行之前要设置lib搜索路径,否则会提示找不到库文件

echo '/usr/local/lib' >> /etc/ld.so.conf

ldconfig -v

1)单机模式

 

ulimit -SHn 51200
ttserver -host 127.0.0.1 -port 11111 -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)互为主辅

注:数据库类型由后缀决定,因为我只需要key-value的功能,所以采用功能简单,速度快的hash database

  • Hash Database :.tch
  • B+ tree database :.tcb
  • fixed-length database :.tcf
  • table database :.tct
  • 内存Hash Database :*
  • 内存B+ tree database :+

服务器 192.168.1.110

 

ulimit -SHn 51200
ttserver -host 192.168.1.110 -port 11111 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 110 -mhost 192.168.1.92 -mport 11111 -rts /ttserver/ttserver.rts /ttserver/database.tch

 

服务器 192.168.99.111

 

ulimit -SHn 51200
ttserver -host 192.168.1.111 -port 11111 -thnum 8 -dmn -pid /ttserver/ttserver.pid -log /ttserver/ttserver.log -le -ulog /ttserver/ -ulim 128m -sid 111 -mhost 192.168.1.91 -mport 11111 -rts /ttserver/ttserver.rts /ttserver/database.tch

 

3)参数说明

 

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 : 指定用来存放同步时间戳的文件名。

 

3、停止ttserver进程

ps aux | grep ttserver | grep -v 'grep' | awk -F ' ' '{print $2}' | xargs kill -TERM

三、调用

1、使用memcached兼容协议

2、http调用

写 curl -X PUT http://127.0.0.1:11111/key -d "value"

读 curl http://127.0.0.1:11111/key

删 curl -X DELETE http://127.0.0.1:11111/key