我不了解Elasticache的工作原理,我想使用elasitcache将twitter的响应存储在缓存中,但是我需要知道如何存储数据的形式。
这是我认为可能的示例:
function getTweetFromCacheOrRequest(user, params) {
/* This function return a promise that contains the tweets either
* from cache or request */
return new Promise(function (resolve, reject) {
var tweets = elasticache.get(`user-${userId}`); // <- get the tweets of this user
if (tweets && tweets.length > 2) {
resolve(tweets);
} else {
if (!BEARER_TOKEN) // avoid a new request to twitter
resolve({ error: true, error: [{ code: 89 }] });
else
twitterClient.get('statuses/user_timeline', params)
.then((tweets) => {
elasticache.set(`user-${userId}`, tweets); //<- set the tweets list of this user
resolve(tweets);
}).catch((err) => {
resolve({ error: true, error: err });
});
}
});
}
当然,这不是sintax,但我正在寻找某种方式来实现这一点,请记住,这可能是一个庞大的用户列表(我不在乎数据是否丢失,这是缓存)>
您能帮我找到解决方法吗? 谢谢,