首頁 >資料庫 >Redis >redis如何實現負載平衡

redis如何實現負載平衡

silencement
silencement原創
2019-06-06 16:44:208839瀏覽

redis如何實現負載平衡

redis負載平衡

在web專案裡出現高並發時,可以透過負載平衡來處理,redis的插槽分配機制就是一個負載平衡的模式

redis插槽分配機制:

在redis官方給出的群集方案中,資料的分配是按照槽位來進行分配的,每一個資料的鍵被雜湊函數映射到一個插槽位,redis-3.0.0規定一共有16384個槽位,當然這個可以依照使用者的喜好進行配置。當使用者put或是get一個資料的時候,會先找這個資料對應的插槽是多少,然後找對應的節點,然後才把資料放入這個節點。這樣就做到了把資料均勻的分配到叢集中的每一個節點上,從而做到了每一個節點的負載平衡,充分發揮了叢集的威力。 (redis教程

public static void main(String[] args) {
        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
        shards.add(new JedisShardInfo("127.0.0.1", 6379));
        shards.add(new JedisShardInfo("127.0.0.1", 6380));

        ShardedJedisPool sjp = new ShardedJedisPool(new JedisPoolConfig(), shards);
        ShardedJedis shardClient = sjp.getResource();
        try {
            shardClient.set("A", "123");
            shardClient.set("B", "234");
            shardClient.set("C", "345");

            try {
                System.out.println(shardClient.get("A"));
            } catch (Exception e) {
                e.printStackTrace();
            }

            try {
                System.out.println(shardClient.get("B"));
            } catch (Exception e) {
                e.printStackTrace();
            }

            try {
                System.out.println(shardClient.get("C"));
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sjp.returnResource(shardClient);
        }
    }

}

以上是redis如何實現負載平衡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多