Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Cách sử dụng ServiceStack.Redis.Sentinel

Bạn chỉ nên cung cấp máy chủ của Máy chủ Redis Sentinel cho RedisSentinel vì nó nhận được danh sách hoạt động của các máy chủ redis chủ / nô lệ khác từ máy chủ Sentinel.

Một số thay đổi đối với RedisSentinel gần đây đã được thêm vào v4.0.37 mới nhất hiện đã có trên MyGet, bao gồm ghi nhật ký bổ sung và gọi lại các sự kiện Redis Sentinel. v4.0.37 mới API trông giống như:

var sentinel = new RedisSentinel(sentinelHost, masterName);

Khởi động RedisSentinel sẽ kết nối với Máy chủ Sentinel và trả về RedisClientManager được cấu hình trước (tức là nhóm kết nối redis) với

đang hoạt động
var redisManager = sentinel.Start();

Sau đó, bạn có thể đăng ký IOC với:

container.Register<IRedisClientsManager>(redisManager);

RedisSentinel sau đó sẽ lắng nghe các thay đổi chủ / nô lệ từ máy chủ Sentinel và chuyển đổi dự phòng redisManager cho phù hợp. Các kết nối hiện có trong nhóm sau đó được xử lý và thay thế bằng một nhóm mới cho các máy chủ mới được định cấu hình. Bất kỳ kết nối nào đang hoạt động bên ngoài pool, chúng sẽ ném các ngoại lệ kết nối nếu được sử dụng lại, lần tiếp theo RedisClient được truy xuất từ ​​pool, nó sẽ được định cấu hình với các máy chủ mới.

Gọi lại và ghi nhật ký

Dưới đây là một ví dụ về cách bạn có thể sử dụng các lệnh gọi lại mới để xem xét các sự kiện RedisServer:

var sentinel = new RedisSentinel(sentinelHost, masterName)
{
    OnFailover = manager => 
    {
        "Redis Managers were Failed Over to new hosts".Print();
    },
    OnWorkerError = ex =>
    {
        "Worker error: {0}".Print(ex);
    },
    OnSentinelMessageReceived = (channel, msg) =>
    {
        "Received '{0}' on channel '{1}' from Sentinel".Print(channel, msg);
    },                
};

Ghi nhật ký các sự kiện này cũng có thể được kích hoạt bằng cách định cấu hình Đăng nhập trong ServiceStack:

LogManager.LogFactory = new ConsoleLogFactory(debugEnabled:false);

Ngoài ra còn có một FailoverToSentinelHosts() rõ ràng bổ sung có thể được sử dụng để buộc RedisSentinel để tra cứu lại và chuyển đổi dự phòng sang máy chủ chủ / máy chủ phụ mới nhất, ví dụ:

var sentinelInfo = sentinel.FailoverToSentinelHosts();

Các máy chủ mới có sẵn trong sentinelInfo được trả về:

"Failed over to read/write: {0}, read-only: {1}".Print(
    sentinelInfo.RedisMasters, sentinelInfo.RedisSlaves);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Rails Redis thiết lập maxmemory và maxmemory-policy

  2. Kết nối với AWS ElastiCache bằng Mã hóa In-Transit

  3. MISCONF Redis được định cấu hình để lưu ảnh chụp nhanh RDB

  4. Cần tây / Làm lại cùng một tác vụ được thực hiện song song nhiều lần

  5. 6 công cụ phân tích bộ nhớ Redis miễn phí hàng đầu