Visualiser une révision

[PHP] Tester si le serveur cache Memcached fonctionne

voxdemonix : 🐦 (18 avril 2019 00:03:30)

Voici une méthode en PHP permettant de tester si le serveur cache [Memcached](https://fr.wikipedia.org/wiki/Memcached) est bien joingnable.
Vous pouvez voir un exemple type de son fonctionnement dans [ce script de HealthCheck](https://gitlab.com/voxdemonix/cluster/blob/master/HealthCheck/nextcloud/HealthCheck.php) pour nextcloud.

### Tester un seul unique serveur

```php
<?php
if(memcache_connect("www.my_server_memcached.com", 11211)){
	echo "work";
}else{
	echo "not work";
}
?>
```

### Tester plusieurs serveurs




```php
<?php
 
$CONFIG['memcached_servers' => [
     [ 'server0.example.com', 11211 ],
     [ 'server1.example.com', 11211 ],
     [ 'server2.example.com', 11211 ],
 ];
 
echo checkCacheMemcached($CONFIG);
 
 
function checkCacheMemcached($CONFIG){
			/*	on récupère le nombre de serveur qui va servir de nombre de serveur actif	*/
	$cpt=count($CONFIG["memcached_servers"]);
			/*	on recupere la liste des serveurs et ports et lance une boucle pour chaque couple*/
    	foreach ($CONFIG["memcached_servers"] as $srvInfo) {
    		/* on definit le port par défaut si l'utilisateur ne l'a pas défini */
        if(empty($srvInfo[1])){   $srvInfo[1]=11211;  }
        	/* on tente de se connecter au serveur */
        if(!memcache_connect($srvInfo[0], $srvInfo[1])){
            return false;
        }
    }
    return true;	/*	un serveur n'est pas dispo, on diminue le nombre de serveur actif	*/
            $cpt--;
        }
    }
    if($cpt > 0){
    	/*	au moins un serveur est dispo	*/
    	return true;
    }else{
    	return false;
	}
}
?>
```