纯记录
#安装 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是Tokyo Cabinet的一个网络服务器接口,它允许通过网络进行数据存取,提供了高性能、轻量级的数据存储解决方案。TokyoTyrant 1.1.40是该软件的一个版本,适用于CentOS 7 x64操作系统。在安装和使用...
媲美memcached的缓存服务器软件包,tokyocabinet-1.4.45.tar.gz+tokyotyrant-1.1.40.tar.gz
TokyoTyrant 是一个轻量级的键值存储服务器,基于 Tokyo Cabinet 数据库引擎。它提供了一个简单的网络接口,使得分布式系统可以方便地存取数据。TokyoTyrant 的设计目标是高性能和低延迟,适用于缓存服务、日志记录...
标题 "tokyoCabinet及tokyoTyrant简介" 指向了两个与数据库管理相关的开源工具,Tokyo Cabinet和Tokyo Tyrant。这两个工具由日本开发者开发,主要用于小型到中型的数据存储,尤其适合那些对数据读写速度有较高要求的...
Tokyo Cabinet 是一个DBM的实现。这里的数据库由一系列key-value对的记录构成。key和value都可以是任意长度的字节序列,既可以是二进制也可以是字符串。这里没有数据类型和数据表的概念。 当做为Hash表数据库使用时,...
通过`TcpClientIOPool.GetInstance`获取链接池实例,并使用`SetServers`方法设置服务器地址和端口。然后,可以通过`InitConnections`、`MinConnections`、`MaxConnections`等属性设置连接池参数。 2. CRUD操作: ...
Tokyotyrant是Tokyocabinet的网络服务器版本,允许远程访问Tokyocabinet数据库。按照类似上述步骤下载、解压、配置、编译和安装Tokyotyrant: ``` # 下载并解压Tokyotyrant源代码 tar xvf tokyotyrant-1.1.54....
tokyocabinet-1.4.45.tar.gz tokyotyrant-1.1.41.tar.gz tokyotyrant-0.11.jar ch-tokyocabinet-java-1.24.0.jar
兼容程序如TokyoTyrant等数据库系统,也可以与Memcached结合使用,进一步扩展其应用场景。 总之,Memcached通过提供简单高效的缓存机制,能够显著提升数据密集型应用的性能。了解其内部结构和使用方式对于开发者来...
- **TokyoTyrant案例**:TokyoTyrant是一个开源的高性能key-value存储系统,它可以与memcached兼容,提供更强大的功能。 #### 总结 Memcached作为一款高性能的分布式缓存系统,在现代互联网应用中扮演着至关重要的...
从给出的信息来看,它可能是Tokyo Tyrant的一个特定版本,因为压缩包中的文件名为"tokyotyrant-1.1.41"。Tokyo Tyrant是一个轻量级、高性能的键值存储系统,常用于数据缓存和快速查找应用。 Tokyo Tyrant主要知识点...
- **兼容应用程序**:如TokyoTyrant等软件与memcached的兼容使用。 ### 总结 memcached作为一个内存缓存系统,具有简单、高效的特点,特别适合Web应用中缓存数据,减少数据库的访问次数。其分布式特性使得系统更加...
- **TokyoTyrant 案例**:TokyoTyrant 是一个兼容 MemCached 协议的高性能键值存储系统。 以上内容覆盖了 MemCached 的基本概念、安装使用、内存管理、删除机制、分布式算法以及实际应用场景等方面的知识点,为深入...
在 "tokyotyrant-1.1.24" 这个压缩包中,我们预期会找到 Tokyo Tyrant 的源代码、文档、示例程序和测试用例。Tokyo Tyrant 提供了丰富的API,使得开发人员可以轻松地在各种编程语言(如C、Python、Ruby等)中与之...