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

Làm thế nào để nhận các sự kiện hết hạn của Redis với nút?

Trên thực tế, có thể nghe thông báo keyevent loại "hết hạn" bằng ứng dụng khách đã đăng ký kênh cụ thể ('[email protected]__:expired' ) và nghe thông điệp của nó sự kiện.

không cần setInterval / setTimeout hoặc các thư viện bổ sung

Bằng chứng về khái niệm (hoạt động:đã thử nghiệm với NodeJS v.9.4.0 )

const redis = require('redis')
const CONF = {db:3}
var pub, sub
//.: Activate "notify-keyspace-events" for expired type events
pub = redis.createClient(CONF)
pub.send_command('config', ['set','notify-keyspace-events','Ex'], SubscribeExpired)
//.: Subscribe to the "notify-keyspace-events" channel used for expired type events
function SubscribeExpired(e,r){
 sub = redis.createClient(CONF)
 const expired_subKey = '[email protected]'+CONF.db+'__:expired'
 sub.subscribe(expired_subKey,function(){
  console.log(' [i] Subscribed to "'+expired_subKey+'" event channel : '+r)
  sub.on('message',function (chan,msg){console.log('[expired]',msg)})
  TestKey()
 })
}
//.: For example (create a key & set to expire in 10 seconds)
function TestKey(){
 pub.set('testing','redis notify-keyspace-events : expired')
 pub.expire('testing',10)
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy cập redis dockezed từ máy chủ windows

  2. Làm thế nào để chia sẻ phiên giữa NodeJ và PHP bằng Redis?

  3. Spring Boot redisTemplate tự động tạo không thành công

  4. Catbox-redis đang hiển thị lỗi đã ngắt kết nối trên ứng dụng hapijs của tôi

  5. xử lý các tình huống tối đa của redis với đường ray khi sử dụng bộ nhớ đệm đường ray