ホームページ  >  記事  >  データベース  >  Redis が負荷分散を実装する方法

Redis が負荷分散を実装する方法

silencement
silencementオリジナル
2019-06-06 16:44:208729ブラウズ

Redis が負荷分散を実装する方法

redis の負荷分散

Web プロジェクトで高い同時実行性が発生した場合、負荷分散を通じて処理できます。Redis のスロット割り当てメカニズム負荷分散モードです。

redis のスロット割り当てメカニズム:

redis が公式に提供するクラスター ソリューションでは、スロットに応じてデータが割り当てられ、各データのキーがスロットにマッピングされます。 Redis-3.0.0 では合計 16384 個のスロットが規定されていますが、これはユーザーの好みに応じて設定可能です。ユーザーがデータを挿入または取得する場合、まずデータに対応するスロットを検索し、次に対応するノードを検索して、そのノードにデータを挿入します。このようにして、データがクラスター内の各ノードに均等に分散されるため、各ノードで負荷分散が実現され、クラスターの能力が最大限に発揮されます。 (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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。