Да, это хороший вариант использования Redis.Выдвиньте условия поиска в списке Redis и извлеките последние десять, когда вы хотите отобразить их.Периодически вы можете удалять все, кроме десяти последних элементов из списка, чтобы избежать его слишком большого размера.
Добавить элементы в список следующим образом (при условии, что REDIS
- это соединение Redis):
REDIS.rpush('searches', 'Xyz')
и получить последние десять, как это:
REDIS.lrange('searches', -10, -1)
(в качестве побочного эффекта Redis первым получит последний элемент списка, что, вероятно, вам и нужно).Списки Redis работают как массивы Ruby, отрицательные индексы означают отсчет с конца.
Чтобы ограничить список десятью элементами, вы можете использовать эту команду:
REDIS.ltrim('searches', -10, -1)
, либо вы делаете это каждый раз, когда вынажмите что-нибудь, чтобы убедиться, что список никогда не будет расти, или вы делаете это периодически.Операция lrange
означает, что вы все равно получите только последние 10 элементов, так что это просто вопрос предпочтений.