<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Redis 分區 分區是分割數據到多個Redis實例的處理過程,因此每個實例只保存key的一個子集。 ### 分區的優勢 * 通過利用多臺計算機內存的和值,允許我們構造更大的數據庫。 * 通過多核和多臺計算機,允許我們擴展計算能力;通過多臺計算機和網絡適配器,允許我們擴展網絡帶寬。 ### 分區的不足 redis的一些特性在分區方面表現的不是很好: * 涉及多個key的操作通常是不被支持的。舉例來說,當兩個set映射到不同的redis實例上時,你就不能對這兩個set執行交集操作。 * 涉及多個key的redis事務不能使用。 * 當使用分區時,數據處理較為復雜,比如你需要處理多個rdb/aof文件,并且從多個實例和主機備份持久化文件。 * 增加或刪除容量也比較復雜。redis集群大多數支持在運行時增加、刪除節點的透明數據平衡的能力,但是類似于客戶端分區、代理等其他系統則不支持這項特性。然而,一種叫做presharding的技術對此是有幫助的。 ## 分區類型 Redis 有兩種類型分區。 假設有4個Redis實例 R0,R1,R2,R3,和類似user:1,user:2這樣的表示用戶的多個key,對既定的key有多種不同方式來選擇這個key存放在哪個實例中。也就是說,有不同的系統來映射某個key到某個Redis服務。 ### 范圍分區 最簡單的分區方式是按范圍分區,就是映射一定范圍的對象到特定的Redis實例。 比如,ID從0到10000的用戶會保存到實例R0,ID從10001到 20000的用戶會保存到R1,以此類推。 這種方式是可行的,并且在實際中使用,不足就是要有一個區間范圍到實例的映射表。這個表要被管理,同時還需要各 種對象的映射表,通常對Redis來說并非是好的方法。 ### 哈希分區 另外一種分區方法是hash分區。這對任何key都適用,也無需是object_name:&lt;id&gt;這種形式,像下面描述的一樣簡單:&lt;/id&gt; * 用一個hash函數將key轉換為一個數字,比如使用crc32 hash函數。對key foobar執行crc32(foobar)會輸出類似93024922的整數。 * 對這個整數取模,將其轉化為0-3之間的數字,就可以將這個整數映射到4個Redis實例中的一個了。93024922 % 4 = 2,就是說key foobar應該被存到R2實例中。注意:取模操作是取除的余數,通常在多種編程語言中用%操作符實現。<split> # Java 使用 Redis ## 安裝 開始在 Java 中使用 Redis 前, 我們需要確保已經安裝了 redis 服務及 Java redis 驅動,且你的機器上能正常使用 Java。 Java的安裝配置可以參考我們的 [Java開發環境配置](java-environment-setup.html "Java開發環境配置") 接下來讓我們安裝 Java redis 驅動: * 首先你需要下載驅動包,[**下載 jedis.jar**](//repo1.maven.org/maven2/redis/clients/jedis/2.1.0/jedis-2.1.0-sources.jar),確保下載最新驅動包。 * 在你的classpath中包含該驅動包。 ## 連接到 redis 服務 ``` import redis.clients.jedis.Jedis; public class RedisJava { public static void main(String[] args) { //連接本地的 Redis 服務 Jedis jedis = new Jedis("localhost"); System.out.println("Connection to server sucessfully"); //查看服務是否運行 System.out.println("Server is running: "+jedis.ping()); } } ``` 編譯以上 Java 程序,確保驅動包的路徑是正確的。 ``` $javac RedisJava.java $java RedisJava Connection to server sucessfully Server is running: PONG Redis Java String Example ``` ## Redis Java String(字符串) 實例 ``` import redis.clients.jedis.Jedis; public class RedisStringJava { public static void main(String[] args) { //連接本地的 Redis 服務 Jedis jedis = new Jedis("localhost"); System.out.println("Connection to server sucessfully"); //設置 redis 字符串數據 jedis.set("w3ckey", "Redis tutorial"); // 獲取存儲的數據并輸出 System.out.println("Stored string in redis:: "+ jedis.get("w3ckey")); } } ``` 編譯以上程序。 ``` $javac RedisStringJava.java $java RedisStringJava Connection to server sucessfully Stored string in redis:: Redis tutorial ``` ## Redis Java List(列表) 實例 ``` import redis.clients.jedis.Jedis; public class RedisListJava { public static void main(String[] args) { //連接本地的 Redis 服務 Jedis jedis = new Jedis("localhost"); System.out.println("Connection to server sucessfully"); //存儲數據到列表中 jedis.lpush("tutorial-list", "Redis"); jedis.lpush("tutorial-list", "Mongodb"); jedis.lpush("tutorial-list", "Mysql"); // 獲取存儲的數據并輸出 List<String> list = jedis.lrange("tutorial-list", 0 ,5); for(int i=0; i<list.size(); i++) { System.out.println("Stored string in redis:: "+list.get(i)); } } } ``` 編譯以上程序。 ``` $javac RedisListJava.java $java RedisListJava Connection to server sucessfully Stored string in redis:: Redis Stored string in redis:: Mongodb Stored string in redis:: Mysql ``` ## Redis Java Keys 實例 ``` import redis.clients.jedis.Jedis; public class RedisKeyJava { public static void main(String[] args) { //連接本地的 Redis 服務 Jedis jedis = new Jedis("localhost"); System.out.println("Connection to server sucessfully"); // 獲取數據并輸出 List<String> list = jedis.keys("*"); for(int i=0; i<list.size(); i++) { System.out.println("List of stored keys:: "+list.get(i)); } } } ``` 編譯以上程序。 ``` $javac RedisKeyJava.java $java RedisKeyJava Connection to server sucessfully List of stored keys:: tutorial-name List of stored keys:: tutorial-list ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看