每2分钟删除一次并将数据插入Redis缓存

时间:2015-11-24 15:41:49

标签: caching redis redis-cache

我有一个场景,我需要每2分钟将我的MySQL数据同步到redis缓存中。

基本上我有2个表类别和文章表。每篇文章都属于某个特定类别。 检索:我需要获取特定部分的文章,有时限制它。

我看到了Redis中可用的5种数据结构,但很难选择其中一种适合这些要求的数据结构。

每2分钟将整个数据删除并插入。

那么我可以继续使用它的最佳方式是什么。

1 个答案:

答案 0 :(得分:2)

可以为您的方案服务的一个建议是:

  • 哈希表包含您的文章和类别。

  • 排序设置为每个类别的最新文章的索引。

从上面我们将:

  • 在Redis中为类别和文章添加对象到哈希表。这将使您受益于平均时间复杂度恒定的数据结构,如here所述。

    HMSET category_with_id_{567} field1 value1 .. etc

    one category -> many articles

  • 现在您需要将它们连接在一起的结构,开始创建排序集ZADD category_{category_id} {Sorting Score - it could be the article_id in descending order or the timestamp as you mentioned} {article ID},下面是一个示例:

    ZREVRANGE category_{category_id} 0 10

现在你应该有一个你可以参考每个类别的索引。所以拉数据就像:

HGET

从该类别中提取得分最高的10篇文章的排序集。现在这也将有助于分页。

根据您收集的文章ID,您可以使用cordova plugin add cordova-plugin-witelist

从其哈希中提取文章的详细信息