Как лучше создать хороший ключ кеша запросов REST API? - PullRequest
0 голосов
/ 09 мая 2019

Я строю простой API-сервис с использованием Ruby on Rails. В производстве я хотел бы интегрировать Redis/Memcached, чтобы кэшировать некоторые часто используемые конечные точки с помощью кэширования на основе ключей. Например, у меня есть таблица автомобилей с полями name и color.

Мой вопрос: каков наилучший способ определить ключ кэша для конкретной конечной точки (eg. /cars), когда ресурс имеет множество параметров, которые могут иметь разный порядок? например. /cars?name=honda&color=white, /cars?color=white&name=honda.

Если я использую URL-адрес запроса в качестве ключа кэша, у меня будет 2 разные записи кэша, но с технической точки зрения, если оба значения name и color имеют одинаковые значения, в базе данных Redis должна быть только одна запись кэша.

1 Ответ

0 голосов
/ 09 мая 2019

расположите параметры в алфавитном порядке и используйте их в качестве основы для ключа кэша.

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

в обоих случаях ключ кэша будет основан на сцепленных алфавитно перечисленных параметрах

colorname

Таким образом, оба вышеупомянутых переупорядоченных URL приведут к одному и тому же ключу кэша.

...