Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Bagaimana cara mendesain redis pub/sub untuk sistem pesan instan?

Seperti biasa, Anda perlu membandingkan hal-hal seperti ini untuk kasus penggunaan Anda sendiri -- tidak mungkin memberikan saran umum. Anda mungkin perlu menambah jumlah maksimum file terbuka di sistem Anda, baik di seluruh sistem atau untuk pengguna redis. Ini juga berlaku untuk pengguna yang menjalankan server web Anda, tentunya.

Karena itu, Anda harus memastikan untuk mendengarkan socket.on('disconnect') dan quit() pelanggan redis saat pengguna pergi. Anda mungkin juga tertarik untuk mengetahui bahwa socket.io memiliki backend redis, yang memanfaatkan redis pub/sub, dan juga memiliki konsep kamar, jadi Anda dapat menghemat masalah dengan menggunakannya karena Anda sudah bergantung pada soket .io.

Sunting: Setelah pemeriksaan cepat, saya mendapatkan pesan kesalahan ini dari Redis setelah 991 pelanggan:

Ready check failed: Error: Error: ERR max number of clients reached

Ini dari redis.conf default :

# Set the max number of connected clients at the same time. By default
# this limit is set to 10000 clients, however if the Redis server is not
# able ot configure the process file limit to allow for the specified limit
# the max number of allowed clients is set to the current file limit
# minus 32 (as Redis reserves a few file descriptors for internal uses).
#
# Once the limit is reached Redis will close all the new connections sending
# an error 'max number of clients reached'.
#
# maxclients 10000

Sistem saya (Ubuntu 11.11) dilengkapi dengan nofile default batas 1024, jadi tes cepat saya akan gagal setelah 992 klien terhubung, yang tampaknya benar dari pengujian (saya juga punya satu klien untuk penerbit). Saran saya kepada Anda adalah untuk memeriksa nofile Anda limit (di sistem saya ada di /etc/security/limits.{conf,d/*} dan maxclients redis Anda pengaturan, lalu tolok ukur, tolok ukur, tolok ukur!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis pub sub max pelanggan dan penerbit

  2. redis - Menggunakan Hash

  3. Bagaimana saya bisa menerapkan antrian terdistribusi konkurensi tunggal ini di platform MQ apa ​​pun?

  4. Redis - memantau penggunaan memori

  5. Menginstal Redis di Ubuntu 16.04/18.04