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

Làm thế nào để sử dụng lại kết nối redis trong socket.io?

Trên thực tế, bạn chỉ đang tạo một ứng dụng khách redis mới cho mọi kết nối nếu bạn đang khởi tạo ứng dụng khách trong sự kiện "kết nối". Điều tôi thích làm khi tạo hệ thống trò chuyện là tạo ba ứng dụng khách redis. Một để xuất bản, đăng ký và một để lưu trữ các giá trị vào redis.

ví dụ:

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. Kết nối với máy chủ redis từ xa

  2. Có bất kỳ cơ chế khóa nào trong Azure Redis Cache khi cập nhật một mục không?

  3. Làm thế nào để xóa nguyên tử hàng triệu phím khớp với một mẫu bằng Redis thuần túy?

  4. Giao diện người dùng Web Logstash không khởi động

  5. Đặt khóa / giá trị redis bằng camel-redis