每 2 分钟向 Redis 缓存中删除和插入数据

Delete and insert Data into Redis Cache every 2 minutes

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

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

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

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

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

一个可以满足您的方案的建议是:

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

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

从上面我们将是:

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

    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

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