我有一个场景,我需要每2分钟将我的MySQL数据同步到redis缓存中。
基本上我有2个表类别和文章表。每篇文章都属于某个特定类别。 检索:我需要获取特定部分的文章,有时限制它。
我看到了Redis中可用的5种数据结构,但很难选择其中一种适合这些要求的数据结构。
每2分钟将整个数据删除并插入。
那么我可以继续使用它的最佳方式是什么。
答案 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