Cơ chế Pub/Sub trên Redis và cách sử dụng.

Hi all,

Hiện nay vấn đề Realtime (cập nhật thời gian thực)  trong các ứng dụng ngày một phổ biến, chúng ta có thể nhìn sơ qua như các ứng dụng Chat hiện tại, việc giao tiếp giữa những người chat với nhau đòi hỏi thông tin phải cập nhật liên tục và tự động đẩy đến cho các người dùng còn lại. Hay việc sử dụng để thông báo các nội dung liên quan khi hệ thống có dữ liệu mới được thêm vào.

Hiện tại có rất nhiều cơ chế được các DB hỗ trợ việc này như RabitMQ (cung cấp cơ chế message system), RethinkDB( cung cấp cơ chế hỗ trợ Realtime dễ dàng cho lập trình viên – dựa trên message system nhưng được chú trọng xây dựng), Redis (cung cấp cơ chế Pub/Sub),…

Chú ý ở đây mình chỉ nói việc các DB này được hỗ trợ cơ chế Realtime sẵn nên sẽ tiện hơn cho chúng ta lập trình, chứ không phải nói rằng các DB khác ta không thể làm được Realtime( ta có thể sử dụng các kỹ thuật khác để đạt được mục đích này).

Hôm nay chúng ta sẽ cùng tìm hiểu về cơ chế Pub/Sub trên Redis và cách sử dụng nó.

1) Redis là gì? (Đã có bài giới thiệu trước rồi)

2) Cơ chế PUB/SUB

PUB: PUBLISH (Đẩy dữ liệu vào 1 kênh)

SUB:  SUBSCRIBE (Đăng kí vào 1 kênh)

Nếu hiểu đơn giản thì hình dung như ta đăng kí vào 1 kênh truyền hình nào đó, khi đài truyền hình đẩy về kênh đó các dữ liệu, ta không cần làm gì cả dữ liệu vẫn luôn được tự cập nhật.

Và trong Redis cơ chế này cũng y như vậy thôi các bạn, khi các bạn đăng kí vào 1 kênh, khi dữ liệu được đẩy vào kênh này bạn sẽ nhận được dữ liệu mới.

pub_sub Sử dụng đặc tính này bạn hình dung cho bài toán cập nhật số các bản tin mới được thêm vào cho người dùng một cách tự động.

Ta thực hiện việc đặt người dùng(SUB) vào 1 kênh (ở đây kênh này là số bản tin mới). Thì khi có một bản tin được thêm vào hệ thống Redis sẽ tự động phát sinh sự kiện (PUB), sự kiện(PUB) này chúng ta có thể bắt được nhờ vào Redis cung cấp, ta thực hiện xử lý số liệu để cập nhật cho người dùng.

3) Cách sử dụng:

Đơn giản đối với Redis-CLI, bạn có thể dùng 3 cửa sổ minh hoạ để thấy điều này.

(Cùng xem clip sau để thấy được điều này)

Mong rằng qua bài viết này bạn hiểu được cơ chế Pub/Sub trên Redis, cũng như có thể có những mường tượng ban đầu cho việc sử dụng cơ chế này hỗ trợ Realtime cho app của bạn.

Thân,

P/s: Bài sau mình sẽ cố gắng hiện thực cách sử dụng và xây dựng một sample app với cơ chế này vào Rails.

 

Tiến An

Admin tại RubySG.com

You may also like...