Re: счетчик в memcached

已查看 18 次
跳至第一个未读帖子

Vasily Zorin

未读,
2017年11月5日 15:11:112017/11/5
收件人 phpd...@googlegroups.com
1) Следует использовать команду INCR.
2) Советую использовать Redis, а не Memcached.

2017-11-04 22:50 GMT+03:00 LeX LeX <dda...@gmail.com>:
Вновь доброго дня! Если не затруднит, внесите пожалуйста ясность.


Попытка набросать примитив счетчика что-то вроде приводит к полнейшей каше, $current_counterpos не инкрементируетя должным образом.

ComplexJob не используется
$memcachedObj = $this->appInstance->memcache;

$memcachedObj->get( 'counter_'.$this->appInstance->defaultOffer.'_'.$this->clientHost, function ($memcachedObj) {
$key = 'counter_'.substr( md5(rand(100,10000000).microtime()), 0, 7);
$memcachedObj_ = $this->appInstance->memcache;
if( $memcachedObj->result != NULL){
$current_counterpos = ++$memcachedObj->result;
$memcachedObj_->set( 'counter_'.$this->appInstance->defaultOffer.'_'.$this->clientHost,  $current_counterpos, 0);
//$memcachedObj_->set( $key.'_'.$current_counterpos,  $current_counterpos, 0);
$memcachedObj_->set( $key.'_'.$current_counterpos,  $current_counterpos, 0);
}else{

$memcachedObj_->add( 'counter_'.$this->appInstance->defaultOffer.'_'.$this->clientHost,  1, 0);
$memcachedObj_->add( 'counter_1',  1, 0);
}

});


Можно ли в подобном ключе реализовать счетчик, либо тупо дергать постоянно весь кеш и сортировать уже там? Проблемма в том что счетик дожен быть realtime



Заранее спасибо

--

---
Вы получили это сообщение, поскольку подписаны на группу "phpdaemon".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес phpdaemon+unsubscribe@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

回复全部
回复作者
转发
0 个新帖子