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

Bagaimana cara menggunakan kembali koneksi redis di socket.io?

Sebenarnya Anda hanya membuat klien redis baru untuk setiap koneksi jika Anda membuat instance klien pada acara "koneksi". Apa yang saya lebih suka lakukan saat membuat sistem obrolan adalah membuat tiga klien redis. Satu untuk memublikasikan, berlangganan, dan satu lagi untuk menyimpan nilai ke dalam redis.

misalnya:

var socketio = require("socket.io")
var redis = require("redis")

// redis clients
var store = redis.createClient()
var pub = redis.createClient()
var sub = redis.createClient()

// ... application paths go here

var socket = socketio.listen(app)

sub.subscribe("chat")

socket.on("connection", function(client){
  client.send("welcome!")

  client.on("message", function(text){
    store.incr("messageNextId", function(e, id){
      store.hmset("messages:" + id, { uid: client.sessionId, text: text }, function(e, r){
        pub.publish("chat", "messages:" + id)
      })
    })
  })

  client.on("disconnect", function(){
    client.broadcast(client.sessionId + " disconnected")
  })

  sub.on("message", function(pattern, key){
    store.hgetall(key, function(e, obj){
      client.send(obj.uid + ": " + obj.text)
    })
  })

})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Contoh penggunaan RedisStore di socket.io

  2. Migrasi data dengan Redis

  3. blpop berhenti memproses antrian setelah beberapa saat

  4. Bagaimana saya bisa mendapatkan semua set di redis?

  5. Menginstal dan Mengonfigurasi Redis di Ubuntu