如何判断memcached的是故障还是未设置key

在实现业务时,很多情况通常使用memcached,用以减轻DB压力.但我们get数据时,有时会返回false.返回false的情况有很多种.对于业务来说,需要区别两种状态.1.正常的,当前key我并未设置,或者已经过期.2.不正常.服务问题(如,服务器挂掉, timeout,and so on.) 对于第一种情况,业务通常在重新设置key.对于第二两情况,至少应该报警,抛异常等等.

其实对于memcache,是有返回状态码的.通过getResultCode来获取.其定义的看以下链接.
Memcache 预定义常量

1 <?php
2 $m = new Memcached();
3 $m->addServer('localhost', 8012);
4 $key = "liuyungu_test";
5 $a = $m->get($key);
6 var_dump($m->getResultCode());

key存在并正常获取的话,code为0.Memcached::RES_SUCCESS
key不存在或者过期,并正常获取的话,code为16.Memcached::RES_NOTFOUND
指向一个没有服务的服务器,code为26 Memcached::RES_ERRNO
没有设置服务器,code为20 Memcached::RES_NO_SERVERS
操作超时,code为31,Memcached::RES_TIMEOUT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值