Как установить на определенный сервер Redis с клиентом StackExchange.Redis? - PullRequest
0 голосов
/ 11 октября 2018

У меня 3 сервера Redis, работающих в контейнерах Docker.Из Redis-Cli я могу установить на конкретном сервере.

SET myValue 100

Как я могу сделать это с клиентом StackExchange.Redis?

Я не вижу в API сервера ничего, что позволяло бы это делать.Имейте в виду, что я совсем немного знаю о Redis.

var connection = ConnectionMultiplexer.Connect("localhost:6379,localhost:6380,localhost:6381");
var server = connection.GetServer("localhost", 6381);
server.???

1 Ответ

0 голосов
/ 23 октября 2018

SE.Redis предполагает управление одним логическим пространством ключей;поддержка нескольких узлов предназначена либо для установок master / replica, либо для redis-cluster (хотя, в случае кластера, обнаружение узлов достигается через API redis, так что с одним узлом все будет в порядке.если это достижимо).Имея это в виду: выбор серверов неявно зависит от операции (т. Е. Записи должны идти к мастеру, а в случае «кластера» должно применяться сопоставление осколков пространства ключей).

Если выхотите писать на отдельные серверы , как если бы они были отдельными базами данных , вы должны использовать соединение для каждого сервера;ни одно соединение, которое охватывает их всех.В настоящий момент SE.Redis, вероятно, обнаруживает 3 мастер-узла и выбирает один из них для произвольного использования.Вы можете увидеть, что он думает, передав TextWriter методу Connect / ConnectAsync.

...