Je travaille avec PHP (je suis très nouveau à ce sujet) et j'ai ce scénario:php Memcache pour stocker les clés répétées pour différentes valeurs
J'ai une liste avec 3 (ou plus) les adresses IP + ports qui provient d'un fichier, de sorte que chaque ligne de mon fichier a:
192.168.3.41:8013
192.168.3.41:8023
192.168.3.41:8033
donc, dans mon tableau, ce sont des éléments array[0], array[1], array[2]
. Le but de l'application est simple, ping sur IP: PORT et savoir si elle répond et combien d'erreurs ping elle a. Mais ce n'est pas tout, je dois compter le temps qu'il faut pour faire le processus pendant 3 minutes et 1 minute. Donc, on m'a demandé de travailler avec MemCache pour faire ce qui suit:
Pour chaque IP: PORT, je dois enregistrer dans MemCache combien d'erreurs ai-je en 3 minutes ainsi que le nombre d'erreurs que j'ai en 1 minute, quelque chose comme ça:
Pour nombre d'erreurs en 3 minutes
Map<Key, Value> = Map<IP:PORT, NumberOfErrors3Mins>
Pour nombre d'erreurs en 1 minute
Map<Key, Value> = Map<IP:PORT, NumberOfErrors1Min>
Ainsi, un échantillon de données pourrait ressembler t son:
3 minutes:
<192.168.3.41:8013, 5>
<192.168.3.41:8023, 2>
<192.168.3.41:8023, 0>
1 minute:
<192.168.3.41:8013, 3>
<192.168.3.41:8023, 1>
<192.168.3.41:8023, 1>
Alors, j'ai deux cartes et 3 entrées pour chaque carte. Je suis assez nouveau pour PHP et MemCache est un peu difficile pour moi, la logique I affermis est la suivante:
$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);
}
}
Le problème que je suis face est que les deux memt1 et memt2 font référence au même, par exemple , si je incrémente < 192.168.3.41:8013> pour memt1, il l'incrémente aussi pour memt2, je pense que cela pourrait être une question très noob, mais je viens d'entrer dans le monde PHP et je ne sais pas comment gérer ceci du tout, c'est ce que j'ai essayé, si quelqu'un pouvait m'aider, s'il vous plaît, je serais vraiment reconnaissant. Merci d'avance.