博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php memcached使用中的坑
阅读量:2429 次
发布时间:2019-05-10

本文共 1248 字,大约阅读时间需要 4 分钟。

1、过期时间的坑

比如现在我们要设置缓存1秒后过期,用memcached默认的配置(默认采用余数分布算法--Memcached::DISTRIBUTION_MODULA),代码应该这样写

$servers = array        (            0 => array                (                    0 => '127.0.0.1',                    1 => 11212                ),            1 => array                (                    0 => '127.0.0.1',                    1 => 11213                )        );$cache = new Memcached();$cache->addServers($servers);$cache->set('cclehui_test',1,time()+1);//1秒后过期sleep(1);var_dump($cache->get('cclehui_test'));
如果采用一致性hash算法,代码确应该这样写

$servers = array        (            0 => array                (                    0 => '127.0.0.1',                    1 => 11212                ),            1 => array                (                    0 => '127.0.0.1',                    1 => 11213                )        );$cache = new Memcached();$cache->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);$cache->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, TRUE);$cache->addServers($servers);$cache->set('cclehui_test',1,1);//1秒后过期sleep(1);var_dump($cache->get('cclehui_test'));

2、使用默认配置挂掉的server不会自动摘除,但使用一致性哈希算法会自动摘除挂掉的server

我们都知道memcache的分布式是通过客户端来实现的,在php中也是如此,php 的memcached扩展中就存在如标题所述的一个Bug,关于这个bug的解释可以参考:

转载地址:http://iksmb.baihongyu.com/

你可能感兴趣的文章
怎样以程序员的方式来用百度呢?
查看>>
程序员是如何运用增长思维找到女朋友?
查看>>
@程序员,离职让企业损失近900亿,还遭疯抢!他凭什么?
查看>>
如何用 Python 一键查房价?
查看>>
累死累活干不过写 PPT 的?新东方年会吐槽视频俞敏洪不罚反奖 12 万!
查看>>
“离开360时,它只给了我一块钱”
查看>>
PDF 翻译神器,再也不担心读不懂英文 Paper 了
查看>>
漫话:如何给女朋友解释什么是RPC
查看>>
@程序员,为什么别人比你优秀?!
查看>>
你的红包狂欢夜,互联网巨头们的流量争夺战
查看>>
35 岁程序员,年后第一天被辞退
查看>>
情人节她说:是的,嫁人当嫁程序员
查看>>
骚操作!代码写情诗 | 程序员有话说
查看>>
二线城市容不下程序员
查看>>
不要成为自己讨厌的那种程序员 | 程序员有话说
查看>>
为什么程序员下班后只关显示器从不关电脑?
查看>>
滴滴裁员 2000 人,具体补偿方案已出
查看>>
余生,做个不焦虑的程序员!
查看>>
世界排名第 3 的滴滴裁员,开春求职必知的独角兽排行榜
查看>>
Spring Boot 中的响应式编程和 WebFlux 入门
查看>>