2016-12-21 5 views
0

Mon application est créée au démarrage de base et est sauvegardée par le magasin de données Redis. Actuellement, je n'ai qu'une connexion à un seul serveur redis et les propriétés de ce serveur (hôte/port) sont définies dans bootstrap.yml.Création dynamique de RedisTemplate pour la connexion avec un serveur Redis différent

Je souhaite prendre en charge l'hébergement multiclient en utilisant un serveur Redis distinct pour chaque client. Pour ce faire, je dois me connecter dynamiquement avec différents serveurs Redis à l'exécution. Est-ce possible avec RedisTemplate et JedisConnecitonFactory?

Répondre

0

En bref

Pas besoin de multiples instances RedisTemplate; implémenter un routage RedisConnectionFactory.

Explication

RedisTemplate utilise un RedisConnectionFactory sous-jacente pour obtenir des connexions. Pour acheminer les opérations Redis vers différentes connexions, implémentez simplement une variante de routage de RedisConnectionFactory. RedisTemplate demande le RedisConnectionFactory associé pour chaque opération pour fournir un RedisConnection.

Vous devez faire attention lorsque vous utilisez des transactions. L'utilisation transactionnelle lie la connexion Redis au thread appelant et RedisTemplate fonctionne efficacement sur la même connexion jusqu'à ce que la transaction soit terminée.

Jetez un oeil à AbstractRoutingDataSource pour avoir une idée du cheminement de la source de données est supporté pour les connexions JDBC. Un routage RedisConnectionFactory pourrait suivre le même modèle.

+0

Merci pour la réponse rapide. Laissez-moi essayer votre option. – krajwade