rest - 制作良好的 REST API 请求缓存键的最佳做法是什么?

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

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

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

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

最佳答案

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

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

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

colorname

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

关于rest - 制作良好的 REST API 请求缓存键的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56061433/

相关文章:

c++ - 网络编程: SOAP vs DIY marshalling with XML library?

java - 将 Lettuce 与 RedisTemplate 一起使用会抛出异常

ruby-on-rails - Rails、Redis、Linux bin 文件错误

node.js - 从Redis获取key同时过期

ruby-on-rails - 如何将 Rails 5 API 应用程序转换为既可以充当 API 又可以充当应用程序的 Rails 应用程序?

validation - 如何验证我的模型属性是否与正则表达式不匹配?

javascript - 使用 @Password 函数通过 REST 设置 HTTPPassword

wcf - C# 4.0 WCF REST JSON - HTTP GET 代码 400 错误请求

java - Spring restTemplate 获取响应的问题

ruby-on-rails - rails 5 : redirect wildcards except mentioned ones in routes