Maison  >  Article  >  base de données  >  Comment Redis implémente l'équilibrage de charge

Comment Redis implémente l'équilibrage de charge

silencement
silencementoriginal
2019-06-06 16:44:208786parcourir

Comment Redis implémente l'équilibrage de charge

équilibrage de charge redis

Lorsqu'une concurrence élevée se produit dans les projets Web, elle peut être gérée via l'équilibrage de charge. Le mécanisme d'allocation d'emplacements de redis est. Un mode d'équilibrage de charge

mécanisme d'allocation d'emplacement redis :

Dans la solution de cluster officielle fournie par redis, les données sont allouées en fonction des emplacements, et la clé de chaque donnée est mappée à un emplacement par la fonction de hachage Redis-3.0.0 stipule un total de 16384 emplacements. Bien entendu, cela peut être configuré selon les préférences de l'utilisateur. Lorsque l'utilisateur met ou obtient une donnée, il recherche d'abord l'emplacement correspondant aux données, puis recherche le nœud correspondant, puis place les données dans le nœud. De cette manière, les données sont réparties uniformément sur chaque nœud du cluster, réalisant ainsi un équilibrage de charge sur chaque nœud et exploitant pleinement la puissance du cluster. (tutoriel 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);
        }
    }

}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn