我在标准 Redis 哈希图中缓存了各种数据,并且遇到了需要响应客户端请求以进行排序和过滤的情况。姓名、平均评分和评论数量的订单排名可以定期更改(可能每分钟多次)。谁能建议我解决这个问题的正确策略?考虑以下示例以帮助理解我在寻找什么:
- 客户端向 /api/v1/cookbooks?orderBy=name&limit=20&offset=0 发出 API 请求
- 我应该回复前 20 个条目,按名称排序
到目前为止我考虑过的策略:
- 对于每种类型的 hashmap 存储(食谱、食谱等),从 Postgres ORDER BY 中为每个排序方案(字母顺序、平均评分等)创建一个排序集;然后根据limit和offset拉出ZRANGE切片
- 将排序数据直接存储到每个键的 JSON 字符串数据中。
- 使用 SELECT id FROM table ORDER BY _命中 postgres ,并使用 ids 直接从 hashmap 存储中提取
有关如何最好地解决此问题的任何其他想法或建议?提前致谢。