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

Redis Managed Pub / Sub Server

Công cụ Pub / Sub cung cấp năng lượng cho Redis ServerEvents và Redis MQ đã được trích xuất và đóng gói nó thành một lớp có thể sử dụng lại, có thể được sử dụng độc lập để xử lý các thông báo được xuất bản tới các kênh Redis Pub / Sub cụ thể.

RedisPubSubServer xử lý thư trong chuỗi nền được quản lý tự động kết nối lại khi kết nối redis-server không thành công và hoạt động giống như một Dịch vụ nền độc lập có thể dừng và khởi động theo lệnh.

API công khai được ghi lại trong giao diện IRedisPubSubServer:

public interface IRedisPubSubServer : IDisposable
{
    IRedisClientsManager ClientsManager { get; }
    // What Channels it's subscribed to
    string[] Channels { get; }

    // Run once on initial StartUp
    Action OnInit { get; set; }
    // Called each time a new Connection is Started
    Action OnStart { get; set; }
    // Invoked when Connection is broken or Stopped
    Action OnStop { get; set; }
    // Invoked after Dispose()
    Action OnDispose { get; set; }

    // Fired when each message is received
    Action<string, string> OnMessage { get; set; }
    // Fired after successfully subscribing to the specified channels
    Action<string> OnUnSubscribe { get; set; }
    // Called when an exception occurs 
    Action<Exception> OnError { get; set; }
    // Called before attempting to Failover to a new redis master
    Action<IRedisPubSubServer> OnFailover { get; set; }

    int? KeepAliveRetryAfterMs { get; set; }
    // The Current Time for RedisServer
    DateTime CurrentServerTime { get; }

    // Current Status: Starting, Started, Stopping, Stopped, Disposed
    string GetStatus();
    // Different life-cycle stats
    string GetStatsDescription();
    
    // Subscribe to specified Channels and listening for new messages
    IRedisPubSubServer Start();
    // Close active Connection and stop running background thread
    void Stop();
    // Stop than Start
    void Restart();
}

Cách sử dụng #

Để sử dụng RedisPubSubServer , khởi tạo nó với các kênh bạn muốn đăng ký và chỉ định người xử lý cho từng sự kiện bạn muốn xử lý. Ở mức tối thiểu, bạn sẽ muốn xử lý OnMessage :

var clientsManager = new PooledRedisClientManager();
var redisPubSub = new RedisPubSubServer(clientsManager, "channel-1", "channel-2") {
        OnMessage = (channel, msg) => "Received '{0}' from '{1}'".Print(msg, channel)
    }.Start();

Gọi Start() sau khi khởi chạy, nó sẽ bắt đầu nghe và xử lý mọi thông báo được xuất bản lên các kênh đã đăng ký.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tôi có thể tạo hai cột duy nhất cho nhau không? hay sử dụng khóa chính tổng hợp trong redis?

  2. Cách cấu hình redis-cluster khi sử dụng spring-data-redis 1.7.0.M1

  3. Tìm kiếm lại tổng hợp trở lại top 5 của mỗi nhóm

  4. Làm cách nào để triển khai hàng đợi phân tán đồng thời duy nhất này trong bất kỳ nền tảng MQ nào?

  5. Làm cách nào để xóa những người lao động bị kẹt / cũ?