Change serialization functions in PHP for Memcached
By default Memcached module in PHP uses PHP's built in serialization functions. Because I'm accesing the same keys from other programming languages, I have found a serialization module that works in all languag开发者_如何学Ces. How do I use my serialization module instead of PHP's when storing/retrieving keys from Memcached?
If your memcached php module has been compiled with HAVE_JSON_API defined (which I think is true by default since php 5.2. Documentation says "Requires PHP 5.2.10+") you can set the JSON serializer with
$memchache->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);
(and there are json en-/decoders for many, many languages)
see http://docs.php.net/memcached.constants
Just put your serialized data in a string and save it with memcache,
$memcache->add('your_key', str, false, 30);
If the serailization generates binary data. You should base64 encode it yourself because PHP's binary encoding is very in-efficient.
精彩评论