在尝试使用Memcached获取通过Memcache设置的值时,遇到了困难
作为一个用于使用PHP的Memcache的类
Memcache
和操作准确的服务器相比,她更注重操作系统和用户界面的可用性。
Memcached
有一个。
在这一点上已经变得有些复杂了…
在现场有很多复杂的情况,当使用Memcached获取使用Memcache设置的值时,出现了问题,导致困扰不已。
假设有下面这样一个程序。
$host = 'localhost';
$port = 11211;
$array = array( 'name' => 'tadasuke' );
// Memcacheインスタンス作成
$mem = new Memcache();
// Memcahce接続
$mem -> connect( $host, $port );
// 値をセット
$mem -> set( 'test', $array );
// セットした値を取得
$result = $mem -> get( 'test' );
// 接続解除
$mem -> close();
var_dump( $result );
输出的结果如下所示。
array(1) { ["name"]=> string(8) "tadasuke" }
这次我将使用Memcached来获取它。
$host = 'localhost';
$port = 11211;
$array = array( 'name' => 'tadasuke' );
// Memcacheインスタンス作成
$mem = new Memcache();
// Memcahce接続
$mem -> connect( $host, $port );
// 値をセット
$mem -> set( 'test', $array );
// セットした値を取得
$result = $mem -> get( 'test' );
// 接続解除
$mem -> close();
//var_dump( $result );
// Memcahcedインスタンス作成
$memd = new Memcached();
// Memcacheに接続
$memd -> addServer( $host, $port );
// セットした値を取得
$result = $memd -> get( 'test' );
// 接続解除
$memd -> quit();
var_dump( $result );
出乎意料的输出结果竟然是这样的感觉。
int(0)
当我尝试将设置值从数组更改为数字或字符串时,无论是在Memcache还是Memcached中,都会产生相同的输出结果。
嗨,似乎在Memcahce和Memcached中,对于数组和对象的序列化方法有所不同。
你能明白这种事吗?
所以,大家要注意了哦。同时使用Memcache和Memcached这种情况本身就很少见。