2015-03-13 1 views
1

Я использую команду SetBit в Predisне может использовать BITOP в Predis PHP

$key = 'ONLINE_APP:1234:2015_03_13:12_11'); 
$redis->setbit($key,1,1); 
$redis->expire($key,1000); 

$redis->setbit($key,2,1); 
$redis->expire($key,1000); 

$key2 = 'ONLINE_APP:1234:2015_03_13:12_12'; 
$redis->setbit($key,3,1); 
$redis->expire($key,1000); 

и используя BITOP сосчитать пользователей онлайн

$redis->bitop('OR','ONLINE', $key1.' '.$key2); 
$totalOnline = $redis->bitcount('ONLINE'); 
echo 'Total Online: '.$totalOnline 

и результат:

Total Online: 0 

, что это мой не так? правильный результат должен быть:

Total Online: 3 
+0

Кто-нибудь мне помогает? – MrBii

+0

Спасибо @misterion, вот правильный код '$ redis-> bitop ('OR', 'ONLINE', $ key1, $ key2);' – MrBii

ответ

1

Похоже, вы просто ошиблись в передаче параметров в этой библиотеке. Похоже, это должно быть

$redis->bitop('OR','ONLINE', $key1, $key2); 
+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http: //meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – Bono

+0

О да, это сработало, спасибо вам большое !!!!! – MrBii