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
?phprequire predis/autoload.php //引入predis相關包//redis實例$servers = array( tcp://192.168.1.198:7000 , tcp://192.168.1.198:7001 , tcp://192.168.1.198:7002 , tcp://192.168.1.199:7003 , tcp://192.168.1.199:7004 , tcp://192.168.1.199:7005 ,$client = new Predis/Client($servers, array( cluster = 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查看結果:
然后登錄到redis客戶端進行集群驗證:
server1
[root@localhost src]# redis-cli -c -p 7000127.0.0.1:7000 get name1- Redirected to slot [12933] located at 192.168.1.199:7004192.168.1.199:7004 get name2- Redirected to slot [742] located at 192.168.1.199:7003192.168.1.199:7003 get name3192.168.1.199:7003
server2
[root@localhost src]# redis-cli -c -p 7003127.0.0.1:7003 get name1- Redirected to slot [12933] located at 192.168.1.199:7004192.168.1.199:7004 get name2- Redirected to slot [742] located at 192.168.1.199:7003192.168.1.199:7003 get name3192.168.1.199:7003
可以看到數據分布在各個服務器上,可以根據ps -ef | grep redis,殺掉其中幾個redis實例,再看效果
以上就是php操作redis cluster集群成功的實例講解的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答