PHP操作Redis(一) PHP連接Redis,含Redis密碼驗證、指定某一Redis數據庫


台服務器上都快開啟200個redis實例了,看着就崩潰了。這么做無非就是想讓不同類型的數據屬於不同的應用程序而彼此分開。

那么,redis有沒有什么方法使不同的應用程序數據彼此分開同時又存儲在相同的實例上呢?就相當於mysql數據庫,不同的應用程序數據存儲在不同的數據庫下。

redis下,數據庫是由一個整數索引標識,而不是由一個數據庫名稱。默認情況下,一個客戶端連接到數據庫0。redis配置文件中下面的參數來控制數據庫總數:

可以通過下面的命令來切換到不同的數據庫下

隨后,所有的命令將使用數據庫3,知道你明確的切換到另一個數據庫下。

每個數據庫都有屬於自己的空間,不必擔心之間的key沖突。

key-value

不同的數據庫下,相同的key取到各自的值。

key-value

flushdb命令清除數據,只會清除當前的數據庫下的數據,不會影響到其他數據庫。

key-value

flushall命令會清除這個實例的數據。在執行這個命令前要格外小心。

數據庫的數量是可以配置的,默認情況下是16個。修改redis.conf下的databases指令:

redis沒有提供任何方法來關聯標識不同的數據庫。因此,需要你來跟蹤什么數據存儲到哪個數據庫下。

因此上面的快開啟200個實例的場景,可以使用不同的數據庫來存儲,而不必開啟如此那么多的實例。

轉載請注明來自運維生存時間: http://www.ttlsa.com/html/4010.html

 

---

實際編程中,redis分片操作,引用jedis jar包

 

  1. import redis.clients.jedis.JedisShardInfo;
  2.  
  3. JedisShardInfo shard = new JedisShardInfo(node.getHost(), node.getPort(), node.getName());
  4. shard.setPassword(node.getPassword());
  5. shard.setDb(dbIndex);
  6. shards.add(shard);

這里的shard.setDb(2) 相當於控制台里輸入 "select 2"   選擇數據庫2(是從數據庫0開始的)

<?php  
   $redis = new Redis(); 
   $redis->connect('127.0.0.1', 6379); //連接Redis
   $redis->auth('mypasswords123sdfeak'); //密碼驗證
   $redis->select(2);//選擇數據庫2
   $redis->set( "testKey" , "Hello Redis"); //設置測試key
   echo $redis->get("testKey");//輸出value
?>


免責聲明!

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



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