Rails自带memcache-client,作为操作memcached缓存的客户端,然而最近我却在糗事百科的后台中发现大量的MemCacheError,我起初以为是memcached的问题,以保守参数重新编译了memcached,发现问题依旧。
最后通过替换成libmemcached才解决了这个问题(至今没有搞明白为什么)
并且在使用memcache-client的过程中发现了两个问题。
1. 如果通过Rails中的mem_cache_store来调用memcache-client,那么increment和decrement操作只能针对使用了:raw=>true参数的缓存才有效,因为mem_cache_store是默认将数据使用Marshal进行序列化的。
2. memcache-client支持get_multi,也就是向memcached一次请求多个key,但是其文档中明确说明,默认获取数据进行过Marshal的,raw数据就只能自己写multiget了。然而libmemcached可以直接通过get操作获取多个key,并且支持指定是否要序列化。
测试下来,我推荐最好使用Ruby的memcached这个gem来操作memcached,因为它这个gem是一个使用了libmemcached的C扩展,相对于纯ruby的memcache-client效率高出很多,而且功能更加强大,可以使用二进制协议和udp协议,能最大限度发挥memcached的效率。
要在Rails中使用libmemcached作为cache store,可以安装LibmemcacheStore 的Rails插件,然后指定以下配置,API符合Cache Store标准
config.cache_store = :libmemcached_store
分享到:
相关推荐
Memcache-client for php 一个PHP 的 Memcached缓存 客户端
tar -zxvf pecl-memcache-4.0.4.tar.gz && cd /root/pecl-memcache-4.0.4 && /usr/local/php7/bin/phpize && ./configure --with-php-config=/usr/local/php7/bin/php-config && make && make install
赠送jar包:netty-codec-memcache-4.1.73.Final.jar; 赠送原API文档:netty-codec-memcache-4.1.73.Final-javadoc.jar; 赠送源代码:netty-codec-memcache-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:...
php_memcache-3.0.8-5.6-nts-vc11-x86 example.php memcache.php
Installing Memcache on Wamp 2.1e and Windows 7 php_memcache-cvs-20090703-5.3-VC6-x86+使用方法+php5.3.X
php的memcache扩展,linux下的,php的memcache扩展分为两种,一种是memcache,一种是基于libmemcached的memcached,这个是memcache版本的beta版本
linux下安装包memcache-2.2.4.tgz
赠送jar包:netty-codec-memcache-4.1.74.Final.jar; 赠送原API文档:netty-codec-memcache-4.1.74.Final-javadoc.jar; 赠送源代码:netty-codec-memcache-4.1.74.Final-sources.jar; 赠送Maven依赖信息文件:...
php_memcache-5.2 5.3 5.4
php_memcache-3.0.8-5.5-ts-vc11-x64 用于 for php5.5 64位版本
memcache-4.0.5.2.tgz
赠送jar包:netty-codec-memcache-4.1.74.Final.jar; 赠送原API文档:netty-codec-memcache-4.1.74.Final-javadoc.jar; 赠送源代码:netty-codec-memcache-4.1.74.Final-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:netty-codec-memcache-4.1.73.Final.jar; 赠送原API文档:netty-codec-memcache-4.1.73.Final-javadoc.jar; 赠送源代码:netty-codec-memcache-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:...
使用github上的php7分支自行编译,未修改源码。 匹配API20151012,NTS,VC14
在windows 64位机器上的memcached应用程序 以及 php_memcache.dll扩展 注意:是64位的版本!! 测试在Win7-64bit,php5.3.13-vc9-ts 环境下可以使用~~
memcache-2.2.6.tgz memcache-2.2.6.tgz
memcached-client.php
php7开始普及起来,但是memcache扩展却很难找到
memcache.dll 跟PHP版本关联有2个参数,一个是PHP Extension Build 例如:API20151012,NTS,VC14 一个是Architecture 例如:x86 所以我们选择的dll文件应该是 vc14 x86 nts 7.0版
php_memcache-3.0.7-5.3-ts-vc9-x86.zip php 5.3 32位 线程安全