Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да получавате събития с изтичане на Redis с възел?

Всъщност е възможно да слушате известието за ключово събитие тип "изтекъл", като използвате абониран клиент за конкретния канал ('[email protected]__:expired' ) и слушане на неговото съобщение събитие.

няма нужда от setInterval / setTimeout или допълнителни библиотеки

Доказателство за концепция (работещ:тестван с 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. как мога да накарам сесиите да работят с помощта на redis, express &socket.io?

  2. JedisPoolConfig не може да се присвои на GenericObjectPoolConfig

  3. Дали Redis TimeSeries е правилният инструмент за улавяне на свещници в цените на акциите

  4. Как да използвам Redis в C++ програма?

  5. Как да използвате jackson вместо JdkSerializationRedisSerializer през пролетта