0

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

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

我看到了 Redis 中可用的 5 种数据结构,但对于选择适合这些要求的一种数据结构感到困惑。

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

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

4

1 回答 1

2

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

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

  • 排序集用作每个类别的最新文章的索引。

综上所述,我们将:

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

    HMSET article_with_id_{1234} field1 value1 .. etc

    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

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

从您收集的文章 ID 中,您可以使用HGET

于 2015-11-24T17:20:44.060 回答