Я работаю с PHP (я новичок в этом), и у меня есть такой сценарий:PHP Memcache для хранения повторяющихся ключей для различных значений
У меня есть список с 3 (или более) IP-адреса + порты, что приходит из файла, так что каждая строка моего файла имеет:
192.168.3.41:8013
192.168.3.41:8023
192.168.3.41:8033
Так что в моем массиве, эти элементы array[0], array[1], array[2]
. Цель приложения проста, пинг IP: PORT и знать, отвечает ли он и сколько ошибок ping у него есть. Но это еще не все, я должен посчитать время, необходимое для выполнения процесса в течение 3 минут и 1 минуты. Итак, меня попросили работать с MemCache, чтобы сделать следующее:
Для каждого IP: PORT мне нужно сохранить в MemCache, сколько ошибок у меня есть за 3 минуты, а также количество ошибок, которые у меня есть в течение 1 минуты, так что-то вроде этого:
Для числа ошибок в 3 минуты
Map<Key, Value> = Map<IP:PORT, NumberOfErrors3Mins>
Для числа ошибок в 1 минуту
Map<Key, Value> = Map<IP:PORT, NumberOfErrors1Min>
Таким образом, выборка данных может быть как т его:
За 3 минуты:
<192.168.3.41:8013, 5>
<192.168.3.41:8023, 2>
<192.168.3.41:8023, 0>
в течение 1 минуты:
<192.168.3.41:8013, 3>
<192.168.3.41:8023, 1>
<192.168.3.41:8023, 1>
Итак, у меня есть две карты и 3 записи для каждой карты. Я довольно новыми для PHP и MemCache отчасти трудно мне, логика я тверда является следующее:
$array = array('192.168.3.41:8013','192.168.3.41:8023','192.168.3.41:8033');
for ($i = 0; $i < count($array); ++$i){
$currentProxy = $array[$i];
echo "working on $i : <br/>";
echo "good to see you friend:".$currentProxy."<br/>";
$res1 = $memt1->get($currentProxy);
$res2 = $memt2->get($currentProxy);
echo "response for proxy:".$res1."<br/>";
echo "response for proxy:".$res2."<br/>";
if (!$res1){
echo "Does not exist - create<br/>";
$memt1->set($currentProxy, 1, null, 0);
} else {
echo "Does exist - help<br/>";
$memt1->increment($currentProxy);
}
if (!$res2){
echo "Does not exist - create<br/>";
$memt2->set($currentProxy, 1, null, 0);
} else {
echo "Does exist - help<br/>";
$memt2->increment($currentProxy);
}
}
Проблема я столкнулся, что оба memt1 и memt2 имеют в виду то же самое, например, , если я увеличиваю значение < 192.168.3.41:8013> для memt1, он также увеличивает его для memt2, я думаю, что это может быть очень вопрос noob, но я только что вошел в мир PHP, и я не знаю, как обращаться это вообще то, что я пробовал, если кто-то мог мне помочь, пожалуйста, я был бы очень благодарен. Заранее спасибо.