호스트에 여러 redis 인스턴스가 있습니다 (포트 6379, 6380). 현재 아래 설정을 사용하여 첫 번째 인스턴스 (6379)에 연결할 수 있습니다.
services.AddSingleton<IRedisClientsManager>(p =>
new PooledRedisClientManager(Configuration.GetValue<long>("Redis:DatabaseId"), Configuration.GetValue<string>("127.0.0.1:6379"))
{
ConnectTimeout = Configuration.GetValue<int>("Redis:connectTimeOut"),
IdleTimeOutSecs = Configuration.GetValue<int>("Redis:idleTimeOutSecs"),
PoolTimeout = Configuration.GetValue<int>("Redis:poolTimeOut")
});
단일 Redis 인스턴스 또는 Redis 센티넬에 대한 과거 경험을 감안할 때 작업 부하를 분산하기 위해 여러 Redis 인스턴스에서 상호 배타적 인 작업을 분할하기로 결정했습니다.
예를 들면 :
모든 작업 A는 6379 인스턴스를 사용하고 모든 작업 B는 6380 인스턴스를 사용합니다.
ServiceStack 설명서를 읽었지만 관련 정보를 찾지 못했습니다.
이것이 어떻게 달성 될 수 있는지에 대한 제안이 있습니까?
기본 및 복제본 서버로 PooledRedisClientManager 를 구성 했으므로 읽기 / 쓰기 클라이언트를 확인할 때, 즉 :
using var redis = clientsManager.GetClient();
읽기 전용 클라이언트를 확인할 때 주 서버에 연결된 클라이언트를 확인합니다.
using var redisReadOnly = clientsManager.GetReadOnlyClient();
대신 복제본 중 하나에 연결된 클라이언트를 확인합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다