当前位置:首页 > 开发 > 编程语言 > 持续集成 > 正文

TokyoTyrant 搭建 session 服务器

发表于: 2011-05-15   作者:aburrido   来源:转载   浏览:
摘要: 纯记录    #安装 Tokyo Cabinet wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.47.tar.gz tar zxvf tokyocabinet-1.4.47.tar.gz cd tokyocabinet-1.4.47 ./configure --enable-off64 #32位系统需

纯记录 

 

#安装 Tokyo Cabinet

wget http://1978th.net/tokyocabinet/tokyocabinet-1.4.47.tar.gz
tar zxvf tokyocabinet-1.4.47.tar.gz
cd tokyocabinet-1.4.47
./configure --enable-off64
#32位系统需要 --enable-off64,以让它支持大于2GB的文件
make
make install
cd ..
#安装 lua
wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
#要根据系统而定,直接make它会有提示
make linux
make install
ln -s /usr/local/bin/lua /usr/bin/lua
cd ..
#安装Tokyo Cabinet 的 lua 扩展
wget http://1978th.net/tokyocabinet/luapkg/tokyocabinet-lua-1.10.tar.gz
tar zxvf tokyocabinet-lua-1.10.tar.gz
cd tkoyocabinet-lua-1.10
./configure
make
make install
cd ..
#安装 Tokyo Tyrant
wget http://1978th.net/tokyotyrant/tokyotyrant-1.1.41.tar.gz
tar zxvf tokyotyrant-1.1.41.tar.gz
cd tokyotyrant-1.1.41
./configure --enable-lua --with-lua
make
make install
cd ../
mkdir -p /session/
#还需要一个 expire.lua 文件,这个文件用于定时将过期的 session 清理。代码如下:
cat > /session/expire.lua << "EOF" 
function expire()
local args = {}
local cdate = string.format("%d", _time())
table.insert(args, "addcond\0ts\0NUMLE\0" .. cdate)
table.insert(args, "out")
local res = _misc("search", args)
if not res then
_log("expiration was failed", 2)
end
end
EOF
ulimit -SHn 51200
ttserver -host 127.0.0.1 -port 11222 -ext /session/expire.lua -extpc expire 5.0 -thnum 8 -dmn -pid /session/session.pid -log /session/session.log -le -ulog /session/ -ulim 128m -sid 1 -rts /session/session.rts '/session/session.tct#idx=key:lex#idx=ts:dec#dfunit=8'
#安装pecl tokyo_tyrant
wget http://pecl.php.net/get/tokyo_tyrant
tar zxvf tokyo_tyrant
cd tokyo_tyrant-*
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config 
make && make install
echo '[tokyo_tyrant]
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613//tokyo_tyrant.so"' >> /usr/local/php/lib/php.ini
cd ../

<?php

/**
 * Encoding     :   UTF-8
 * Created on   :   2011-05-15 05:18:09
 */
class Session {

    private $sessionCN = 'sessionid';
    private $sessionid;
    private $tt;

    public function __construct() {
        define('SESS_EXPIRE', 3600);
        $this->sessionCN;
        $this->issessionid();
        $this->tt =  new TokyoTyrantTable('127.0.0.1', 11222);
    }

    public function get($name) {
        $sessvl = $this->tt->get($this->sessionid);
        $arr = unserialize($sessvl['vaule']);
        return $arr[$name];
    }

    public function set($name, $vaule=NULL, $sessiontimeleft=SESS_EXPIRE) {
        $sessvl = $this->tt->get($this->sessionid);
        $arr = unserialize($sessvl['vaule']);
        if ($vaule == NULL)
            unset($arr[$name]);
        else
            $arr[$name] = $vaule;
        $this->tt->put($this->sessionid, array('vaule' => serialize($arr), 'ts' => time() + $sessiontimeleft));
    }

    private function creatsessionid() {

        $this->sessionid = md5(uniqid());
        setcookie($this->sessionCN, $this->sessionid, 9999999999, NULL, NULL, NULL, TRUE);
    }

    private function issessionid() {
        if (isset($_COOKIE[$this->sessionCN]))
            $this->sessionid = $_COOKIE[$this->sessionCN];
        else
            $this->creatsessionid();
    }

}
 使用方法
<?php header("Content-type: text/html; charset=utf-8"); ?>
<?php

include 'class/Session.php';
$ss = new Session();
$ss->set('a', 's2a');
$ss->set('b', 's2b');
$ss->set('bc', 's2b');

$ss->set('bc', '');
var_dump($ss->get('bc'));
 


 

TokyoTyrant 搭建 session 服务器

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
使用zend framework 搭建网站(七)--实现多服务器共享 SESSION 数据 2008/12/07 08:12 P.M. 参考:
Android服务器——TomCat服务器的搭建 作为一个开发人员,当然是需要自己调试一些程序的,这个时候
1. 前言 2. 参考资料链接 3. 使用介绍 3.1. 基本概念 3.2. Tokyo Cabinet 简介 3.3. 性能介绍 3.4.
1. 前言 2. 参考资料链接 3. 使用介绍 3.1. 基本概念 3.2. Tokyo Cabinet 简介 3.3. 性能介绍 3.4.
1. 前言 2. 参考资料链接 3. 使用介绍 3.1. 基本概念 3.2. Tokyo Cabinet 简介 3.3. 性能介绍 3.4.
elk+redis 搭建日志分析平台 这个是最新的elk+redis搭建日志分析平台,今年时间是2015年9月11日。 E
日志简介: 日志:即历史事件,按时间序列将发生的事件予以记录;日志记录了事件发生的时间,时间内
1 安装SVN 官网下载:http://subversion.apache.org/packages.html SVN客户端:TortoiseSVN,官网下
HTTPS简介 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通
CentOS fastDFS结合nginx的配置以及php端的调用方法 2013-04-18 22:54:55| 分类: 默认分类 | 标签
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号