Необходимо кешировать данные с помощью memcached

284
23 октября 2021, 15:20

Пробовал гетеры сетеры, но ничего не выводится, даже прологировать не вышло(попали ли данные в кеш или нет или подключился memcached или нет) https://www.npmjs.com/package/memcached

Пробовал вот такой вариант, но опять же ничего не выводится https://jsonworld.com/demo/how-to-implement-memcached-in-nodejs-application

var Memcached = require('memcached'); 
// Created object for memcached 
var memcached = new Memcached(); 
/* code to connect with your memecahced server */ 
memcached.connect( 'localhost:11211', function( err, conn ){//Если прописать localhost:3000, то в console.log(conn); выводится следующее, если же использовать localhost:11211, то ничего не выводится... 
  /*      vnodes: {}, 
        servers: [], 
        cache: [Cache] }, 
     connections: 
      { 'localhost:3000': [Manager], 'localhost:11211': [Manager] }, 
     issues: [] }, 
  [Symbol(asyncId)]: 11, 
  [Symbol(lastWriteQueueSize)]: 0, 
  [Symbol(timeout)]: 
   Timeout { 
     _called: false, 
     _idleTimeout: 5000, 
     _idlePrev: [TimersList], 
     _idleNext: [Timeout], 
     _idleStart: 1820, 
     _onTimeout: [Function: bound ], 
     _timerArgs: undefined, 
     _repeat: null, 
     _destroyed: false, 
     [Symbol(unrefed)]: true, 
     [Symbol(asyncId)]: 164, 
     [Symbol(triggerId)]: 24 }, 
  [Symbol(kBytesRead)]: 0, 
  [Symbol(kBytesWritten)]: 0 }*/ 
if( err ) { 
  console.log( conn.server,'error while memcached connection!!'); 
} 
}); 
 
var user = { 
  'userId':'iuytredcvb12345sdfgh', 
  'userName':'testUser', 
  'emailId':'demo.jsonworld@gmail.com', 
  'phone' : 8287374553, 
  'availableFor' : '2 hours', 
  'createdOn':1543122402 
} 
 
memcached.set('user', user, 10000, function (err) { 
  if(err) throw new err; 
}); 
 
memcached.get('user', function (err, data) { 
  //логировал попадание в функцию get, но функция не выполняется 
  console.log(data); 
});

Итоговая цель кешировать данные получаемые из бд

router.get('/:shortUrl', async (req, res) => { 
  const dbItem = await Url.findOne({shortUrl: req.params.shortUrl}); 
  dbItem.counter = parseInt(++dbItem.counter); 
  res.redirect(dbItem.url); 
  dbItem.save(); 
});

Буду благодарен за любую помощь

READ ALSO
Среднее арифметическое узлов графа

Среднее арифметическое узлов графа

Есть ф-я которая суммирует значения узлов графа

198
Построить линию по полученным данным

Построить линию по полученным данным

из базы получаю данные json = {[x,y],[x,y]}

94
Как добавлять изменения в eventListener в хуке update Vue Directive? или как удалить прошлого слушателя с элемента

Как добавлять изменения в eventListener в хуке update Vue Directive? или как удалить прошлого слушателя с элемента

Есть директива, которая на эвенты mouseenter, mouseleave и другие приходящие эвенты из binding параметра показывает тултип на элементеИногда при изменениях...

154
Где нужно инициализировать MongoDB?

Где нужно инициализировать MongoDB?

Например, я хочу создать индексы для коллекцииГде я это должен делать, в DbContext? Он будет часто инициализироваться и каждый раз создавать индексы,...

80