在尝试使用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这种情况本身就很少见。

广告
将在 10 秒后关闭
bannerAds