Guest User

Untitled

a guest
Jan 16th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. const redis = require('redis');
  2. const client = redis.createClient();
  3. const subscriber = redis.createClient();
  4. const KEY_EXPIRING_TIME = 10; // seconds
  5.  
  6. client.setex('myKey', KEY_EXPIRING_TIME, 'myValue');
  7.  
  8. subscriber.on('message', function(channel, msg) {
  9. console.log( `On ${channel} received ${msg} event`);
  10. });
  11.  
  12. subscriber.subscribe('myKey', function (err) {
  13. console.log('subscribed!');
  14. });
  15.  
  16. const redis = require('redis');
  17. const client = redis.createClient();
  18. const subscriber = redis.createClient();
  19. const KEY_EXPIRING_TIME = 10; // seconds
  20.  
  21. var args = ['myKey', KEY_EXPIRING_TIME, 'myValue'];
  22.  
  23.  
  24. client.setex('myKey', KEY_EXPIRING_TIME, 'myValue');
  25.  
  26. subscriber.on('message', function(channel, msg) {
  27. console.log( `On ${channel} received ${msg} event`);
  28. });
  29.  
  30. subscriber.subscribe('myKey', function (err) {
  31. console.log('subscribed!');
  32. });
  33.  
  34. setInterval(function() {
  35. client.get('myKey', function(err, value) {
  36. if (err) {
  37. throw err;
  38. }
  39. if (value) {
  40. console.log('value:', value);
  41. }
  42. else {
  43. console.log('value is gone');
  44. process.exit();
  45. }
  46. });
  47. }, 5e3);
  48.  
  49. var RedisNotifier = require('redis-notifier');
  50.  
  51. var eventNotifier = new RedisNotifier(redis, {
  52. redis : { host : '127.0.0.1', port : 6379 },
  53. expired : true,
  54. evicted : true,
  55. logLevel : 'DEBUG' //Defaults To INFO
  56. });
  57.  
  58. //Listen for event emission
  59. eventNotifier.on('message', function(pattern, channelPattern, emittedKey) {
  60. var channel = this.parseMessageChannel(channelPattern);
  61. switch(channel.key) {
  62. case 'expired':
  63. this._handleExpired(emittedKey);
  64. break;
  65. case "evicted":
  66. this._handleEvicted(emittedKey);
  67. break;
  68. default:
  69. logger.debug("Unrecognized Channel Type:" + channel.type);
  70. }
  71. });
  72.  
  73. const redis = require('redis')
  74. const CONF = {db:3}
  75. var pub, sub
  76. //.: Activate "notify-keyspace-events" for expired type events
  77. pub = redis.createClient(CONF)
  78. pub.send_command('config', ['set','notify-keyspace-events','Ex'], SubscribeExpired)
  79. //.: Subscribe to the "notify-keyspace-events" channel used for expired type events
  80. function SubscribeExpired(e,r){
  81. sub = redis.createClient(CONF)
  82. const expired_subKey = '__keyevent@'+CONF.db+'__:expired'
  83. sub.subscribe(expired_subKey,function(){
  84. console.log(' [i] Subscribed to "'+expired_subKey+'" event channel : '+r)
  85. sub.on('message',function (chan,msg){console.log('[expired]',msg)})
  86. TestKey()
  87. })
  88. }
  89. //.: For example (create a key & set to expire in 10 seconds)
  90. function TestKey(){
  91. pub.set('testing','redis notify-keyspace-events : expired')
  92. pub.expire('testing',10)
  93. }
Add Comment
Please, Sign In to add comment