У меня есть конфигурация master-slave с двумя подчиненными и тремя часовыми. Если я попробую команды с командной строкой, все будет в порядке. Но у меня есть некоторые проблемы с настройкой его для C#. Я использую библиотеку StackExchange.Redis. Но я не понимаю, что я должен сделать, чтобы получить/установить ключи от мастера. Должен ли я вручную найти мастера, а затем получить или установить ключи или сделать это автономно? Каков наилучший способ сделать это? Каждый раз, когда я хочу получить/установить ключ, я должен проверить, кто является мастером? На данный момент я сделал только это, и я оставил свой код другим, как это было только с одним мастером.Использование Redis Sentinel от C#
private static string ServiceName = "mymaster";
private static string IP { get { return "127.0.0.1"; } }
private static int Port = 26379;
public static readonly ConnectionMultiplexer Connection = GetConn();
public static readonly IServer Server = Connection.GetServer(IP, Port);
public static ConnectionMultiplexer GetConn()
{
try
{
// create a connection
var options = new ConfigurationOptions()
{
CommandMap = CommandMap.Sentinel,
EndPoints = { { IP, Port } },
AllowAdmin = true,
TieBreaker = "",
ServiceName = ServiceName,
SyncTimeout = 5000,
AbortOnConnectFail = true,
Ssl = false
};
var connection = ConnectionMultiplexer.Connect(options, Console.Out);
return connection;
}
catch (Exception ex)
{
ASLog.LogError(ex, 1);
return null;
}
}
, где у меня есть один из трех Стражей в порту 26379. Извините, но я немного запутался, как использовать это с C#.
когда я пытаюсь использовать 'StringSet' он говорит,' Эта операция была отключена в командной карте и не может быть использована: SETEX' .. – ayasha
У вас есть [ ' rename-command'] (http://redis.io/topics/security#disabling-of-specific-commands) на redis.conf? – thepirat000
нет .. что это? – ayasha