используя redis вместо базы данных на приложение heroku - PullRequest
3 голосов
/ 02 января 2011

У меня на Герою развернуто простое приложение.В основном пользователи приходят и вводят условия поиска.Я хотел бы добавить небольшой раздел на боковой части страницы, который показывает «последние поисковые запросы».Хотя просто для этого я не хочу добавлять базу данных в свое приложение.Я читал о Redis, но это то, что он может быть использован для?можно просто вставить около 10 последних поисковых терминов в хэш redis и получить их?

1 Ответ

6 голосов
/ 02 января 2011

Да, это хороший вариант использования Redis.Выдвиньте условия поиска в списке Redis и извлеките последние десять, когда вы хотите отобразить их.Периодически вы можете удалять все, кроме десяти последних элементов из списка, чтобы избежать его слишком большого размера.

Добавить элементы в список следующим образом (при условии, что REDIS - это соединение Redis):

REDIS.rpush('searches', 'Xyz')

и получить последние десять, как это:

REDIS.lrange('searches', -10, -1)

(в качестве побочного эффекта Redis первым получит последний элемент списка, что, вероятно, вам и нужно).Списки Redis работают как массивы Ruby, отрицательные индексы означают отсчет с конца.

Чтобы ограничить список десятью элементами, вы можете использовать эту команду:

REDIS.ltrim('searches', -10, -1)

, либо вы делаете это каждый раз, когда вынажмите что-нибудь, чтобы убедиться, что список никогда не будет расти, или вы делаете это периодически.Операция lrange означает, что вы все равно получите только последние 10 элементов, так что это просто вопрос предпочтений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...