Чем Redis / Memcached кэширование отличается от Etag кэширования? - PullRequest
0 голосов
/ 18 мая 2018

Я вижу, что restful имеет встроенный механизм кэширования под названием Etags, тогда зачем нам кэшировать конечные точки с помощью redis или memcached.добавив к этому с помощью etags, мы можем проверить, изменился ли ресурс.

вот пример кода кэширования redis

const getBook = (req, res) => {
  let isbn = req.query.isbn;
  let url = `https://www.googleapis.com/books/v1/volumes?q=isbn:${isbn}`;
  return axios.get(url)
    .then(response => {
      let book = response.data.items;
      // Set the string-key:isbn in our cache. With he contents of the cache : title
      // Set cache expiration to 1 hour (60 minutes)
      client.setex(isbn, 3600, JSON.stringify(book));

      res.send(book);
    })
    .catch(err => {
      res.send('The book you are looking for is not found !!!');
    });
};

const getCache = (req, res) => {
  let isbn = req.query.isbn;
  //Check the cache data from the server redis
  client.get(isbn, (err, result) => {
    if (result) {
      res.send(result);
    } else {
      getBook(req, res);
    }
  });
}

app.get('/book', getCache);
...