opensuse 11.4 安装ttserver 无法使用问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opensuse 11.4 安装ttserver 无法使用问题相关的知识,希望对你有一定的参考价值。

使用解压版 ttserver后,在其他机器用telnet能够连接但是无法写入数据
telnet 连接后输入 stats 有返回

ttserver版本 1.1.41

系统版本 open suse 11.4

参考技术A 04追问

?能详细点么

追答

参考技术B opensuse默认防火墙会屏蔽消息。把telnet端口打开。追问

我关闭了防火墙的

追答

没写入权限,那要看用户权限了。
配置个新用户,给与写权限再测试。
别用管理员帐号远程登录测试。

追问

能远程登录,能连接到ttserver,但是ttserver不记录数据,是root用户,ttserver也能正常启动

追答

是root用户,ttserver也能正常启动

你这句说什么?

按这个帖子说的看看,少配置什么了没?
http://blog.csdn.net/ctowoo/article/details/4596674
Tokyo Tyrant(TTServer)系列-介绍、安装以及应用

追问

ttserver是在root用户下启动的,而且能正常启动,其他合ttserver有连接,但是无法对ttserver写入

在opensuse10.4 上同样的步骤安装ttserver就可以正常使用

不知道是不是系统的原因引起的

追答

系统与上层的应用应该不碍事的。SF上:

Tokyo Cabinet Updated 2009-08-24
Tokyo Cabinet is the successor of QDBM, a high performance database library similar to the DBM family. It also supports hash and B-tree databases and does not require any server process. The overall speed is improved compared to QDBM

Tokyo Tyrant 项目都没了啊。
tokyotyrant-1.1.31.tar.gz 13-Jul-2009 01:21 180K
tokyotyrant-1.1.32.tar.gz 16-Jul-2009 14:26 181K
tokyotyrant-1.1.33.tar.gz 21-Jul-2009 02:33 181K
这两年没动过了。它的主页都没了。

Tokyo Tyrant(TTServer)系列-Memcache协议

通过Memcache协议使用ttserver

 通过telnet 127.0.0.1 9032 telnet连接到到启动的实例。
下面我们通过add添加key为key1和value为value1的数据。

通过get key1获取数据。

<key> <flags> <exptime> <bytes>

add key1 1 0 6
value1
STORED
get key1
VALUE key1 0 6
value1
END
编写php脚本
$mem=new Memcache();
$mem->
connect("127.0.0.1",9032);
$mem->
add("key2","xifeijian");
print_r( $mem->
get("key2"));
echo "<br />";
$mem->
add("key3",array("value3"=>"this is xifeijian"));
echo $mem->
get("key3");
?>
执行后输出:(在服务器上直接执行php脚本,假设在浏览器中訪问,效果就更加直观。

 技术分享
技术分享

须要注意的问题

序列化问题

   假设你熟悉memcache协议。或者你以前用php的memcache来使用ttserver。你可能立即就发现了上面的问题。

比方我们key3是一个数组,可是我们取回来的是一个序列化的字符串,没有自己主动反序列化,在memcached服务器上是会自己主动反序列化的。

    通过上面的telnet演示样例我们能够看到,我们add key1的时候设置flag參数为1,可是我们get回来的时候,返回的flag參数是0,实际上,ttserver是没有存储flag參数的。统一的都使用0,这就造成了php使用时不会自己主动反序列化,当然。假设你使用压缩參数,一样会有这种问题。

    怎么样解决问题,假设要改动ttserver的代码实为不方便。我们全然能够在php。或者我们的client来控制。
比方value我们统一的都序列化后存储,取出来的时候我们再反序列化。

自增问题

//使用ttserver自增
$mem=new Memcache();
$mem->
connect("127.0.0.1",9032);
var_dump($mem->
increment("incr"));
//结果为int(1)
?

>

 

//使用memcache自增
$mem=new Memcache();
$mem->
connect("127.0.0.1",9023);
var_dump($mem->
increment("incr"));
//结果为bool(false)
?>
我们看到相同的代码用在memcache返回了失败(false)。我们能够在php手冊上看到这样一句话“Memcache::increment() does not create an item if it didn‘t exist.”可是相同的,用在ttserver上就是成功的。这一点要特别注意。


以上是关于opensuse 11.4 安装ttserver 无法使用问题的主要内容,如果未能解决你的问题,请参考以下文章

openSUSE - 11.4 - X86 _ 64 DVD 安装后,登录界面“系统语言”选择中文,桌面选择GNOME环境,进入系统后,

如何在 openSUSE 上安装 Pythons MySQLdb 模块?

求解答。。。opensuse的LibreOffice不能输入文字,中文英文都不行。

Tokyo Tyrant(TTServer)系列-介绍和安装

ttserver 常见操作

Tokyo Tyrant(TTServer)系列-数据丢失谁的错