首頁  >  文章  >  後端開發  >  php操作redis cluster叢集成功的實例講解

php操作redis cluster叢集成功的實例講解

不言
不言轉載
2019-01-09 10:21:062756瀏覽

這篇文章帶給大家的內容是關於php操作redis cluster叢集成功的實例講解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

java操作redis cluster叢集可使用jredis

php要操作redis cluster叢集有兩種方式:

1、使用phpredis擴展,這是一個c擴展,效能更高,但phpredis2.x擴充不行,需升級phpredis到3.0,但這個方案參考資料很少

2、使用predis,純php開發,使用了命名空間,需要php5.3 ,靈活性高

我用的是predis,下載網址https://github.com/nrk/predis...

下載好後重新命名為predis,

server1:192.168.1.198
server2:192.168.1.199

predis.php

<?php require &#39;predis/autoload.php&#39;;//引入predis相关包
//redis实例
$servers = array(
    &#39;tcp://192.168.1.198:7000&#39;,
    &#39;tcp://192.168.1.198:7001&#39;,
    &#39;tcp://192.168.1.198:7002&#39;,
    &#39;tcp://192.168.1.199:7003&#39;,
    &#39;tcp://192.168.1.199:7004&#39;,
    &#39;tcp://192.168.1.199:7005&#39;,
);
 
$client = new Predis\Client($servers, array(&#39;cluster&#39; => 'redis'));
 
$client->set("name1", "11");
$client->set("name2", "22");
$client->set("name3", "33");
 
$name1 = $client->get('name1');
$name2 = $client->get('name2');
$name3 = $client->get('name3');
var_dump($name1, $name2, $name3);die;

name1,name2,name3是3個key,依照演算法分配到3個slot上,有可能分到3台伺服器上
先執行predis.php檢視結果:

php操作redis cluster叢集成功的實例講解

然後登入redis用戶端進行叢集驗證:

server1

[root@localhost src]# redis-cli -c -p 7000
127.0.0.1:7000> get name1
-> Redirected to slot [12933] located at 192.168.1.199:7004
"11"
192.168.1.199:7004> get name2
-> Redirected to slot [742] located at 192.168.1.199:7003
"22"
192.168.1.199:7003> get name3
"33"
192.168.1.199:7003>

server2

[root@localhost src]# redis-cli -c -p 7003
127.0.0.1:7003> get name1
-> Redirected to slot [12933] located at 192.168.1.199:7004
"11"
192.168.1.199:7004> get name2
-> Redirected to slot [742] located at 192.168.1.199:7003
"22"
192.168.1.199:7003> get name3
"33"
192.168.1.199:7003>

可以看到資料分佈在各個伺服器上,可以根據ps -ef | grep redis,殺掉其中幾個redis實例,再看效果

以上是php操作redis cluster叢集成功的實例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除