【问题标题】:What are the best practices to make a good REST API request cache key?制作良好的 REST API 请求缓存密钥的最佳实践是什么?
【发布时间】:2019-09-27 09:48:36
【问题描述】:

我正在使用 Ruby on Rails 构建一个简单的 API 服务。在生产中,我想集成Redis/Memcached,以便通过基于键的缓存来缓存一些常用的端点。例如,我有一个带有 namecolor 字段的 Car 表。

我的问题是,当资源具有可能以不同顺序出现的各种参数时,为特定端点 (eg. /cars 定义缓存键的最佳方法是什么?例如。 /cars?name=honda&color=white, /cars?color=white&name=honda.

如果我使用请求 url 作为缓存键,我将有 2 个不同的缓存记录,但从技术上讲,如果 namecolor 具有相同的值,那么 Redis 数据库中应该只有一个缓存记录。

【问题讨论】:

    标签: rest redis ruby-on-rails-5 memcached spring-cache


    【解决方案1】:

    按字母顺序排列参数并将其用作缓存键的基础。

    /cars?name=honda&color=white
    /cars?color=white&name=honda
    

    在这两种情况下,缓存键都将基于串联的按字母顺序列出的参数

    colorname
    

    所以上述两个重新排序的 url 都会产生相同的缓存键。

    【讨论】:

      猜你喜欢
      • 2022-11-03
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2019-07-30
      • 1970-01-01
      相关资源
      最近更新 更多