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/zipball/master

下載好后重命名為predis,

 

server1:192.168.1.198
server2:192.168.1.199

predis.php

 
  1. <?php  
  2. require 'predis/autoload.php';//引入predis相關包  
  3. //redis實例  
  4. $servers = array(  
  5.     'tcp://192.168.1.198:7000',  
  6.     'tcp://192.168.1.198:7001',  
  7.     'tcp://192.168.1.198:7002',  
  8.     'tcp://192.168.1.199:7003',  
  9.     'tcp://192.168.1.199:7004',  
  10.     'tcp://192.168.1.199:7005',  
  11. );  
  12.   
  13. $client = new Predis\Client($servers, array('cluster' => 'redis'));  
  14.   
  15. $client->set("name1", "11");  
  16. $client->set("name2", "22");  
  17. $client->set("name3", "33");  
  18.   
  19. $name1 = $client->get('name1');  
  20. $name2 = $client->get('name2');  
  21. $name3 = $client->get('name3');  
  22. var_dump($name1, $name2, $name3);die;  
  23. ?>  
name1,name2,name3是3個key,按照算法分配到3個slot上,有可能分到3台服務器上

 

首先運行predis.php查看結果:

然后登錄到redis客戶端進行集群驗證:

server1

 
  1. [root@localhost src]# redis-cli -c -p 7000  
  2. 127.0.0.1:7000> get name1  
  3. -> Redirected to slot [12933] located at 192.168.1.199:7004  
  4. "11"  
  5. 192.168.1.199:7004> get name2  
  6. -> Redirected to slot [742] located at 192.168.1.199:7003  
  7. "22"  
  8. 192.168.1.199:7003> get name3  
  9. "33"  
  10. 192.168.1.199:7003>  
server2
 
  1. [root@localhost src]# redis-cli -c -p 7003  
  2. 127.0.0.1:7003> get name1  
  3. -> Redirected to slot [12933] located at 192.168.1.199:7004  
  4. "11"  
  5. 192.168.1.199:7004> get name2  
  6. -> Redirected to slot [742] located at 192.168.1.199:7003  
  7. "22"  
  8. 192.168.1.199:7003> get name3  
  9. "33"  
  10. 192.168.1.199:7003>  

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM