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

标签 caching redis redis-cache

<分区>

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

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

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

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

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

最佳答案

可以为您的场景服务的一个建议是:

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

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

从上面我们将:

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

    HMSET article_with_id_{1234} field1 value1 .. 等

    HMSET category_with_id_{567} field1 value1 .. 等

  • 现在您需要将它们连接在一起的结构,开始创建排序集作为一个类别 -> 许多文章,下面是一个示例:

    ZADD category_{category_id} {排序分数 - 它可以是降序排列的 article_id 或您提到的时间戳} {article ID}

现在您应该有一个可以按类别引用的索引。所以提取数据就像:

ZREVRANGE category_{category_id} 0 10

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

根据您收集的文章 ID,您可以使用 HGET

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

关于caching - 每 2 分钟向 Redis 缓存中删除和插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33897879/

相关文章:

caching - 在redis缓存中批量设置

ruby-on-rails - Redis 和 Rails 生产错误:ActionView::Template::Error (ERR invalid DB index)

c# - 从 StackExchangeRedisCacheClient 迁移到 RedisCacheClient

django - 同时使用多个缓存后端

cygwin - 在没有 fenv.h 的情况下在 cygwin 中编译 redisql

c# - Azure Redis 无法连接到 Redis 服务器

node.js - redis session 在服务器上不工作

python - Django 缓存不工作 cached_queries() 没有参数(给定 1)

javascript - Service Worker 缓存与 HTTP 缓存

caching - 如何在部署过程中清除 ColdFusion 模板缓存?