每 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
从它们的哈希中提取文章的详细信息
我有一个场景,我需要每 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