Существует ли технология, которая может кэшировать упорядоченный список и извлекать отсортированные результаты из произвольных точек в порядке? - PullRequest
1 голос
/ 18 апреля 2011

Представьте себе временную шкалу, похожую на поток Twitter, где вы хотите быстро вернуть результат для всех элементов после даты n.Существует ли такая технология кэширования, как Memcache, которая может кэшировать эти данные таким образом, чтобы их можно было запрашивать по порядку, отбрасывая старые элементы, чтобы освободить место для новых данных?

Я бы предположил, что интерфейс будет работать следующим образом:

Добавление элементов всегда добавлялось бы в начало списка.

Cache.add(key, timestamp, data)

Элементы можно запрашивать по временной метке.

Cache.getAfter(key, timestamp)

Функция .get ()гарантируется, что он не будет возвращать элементы старше указанной метки времени и будет возвращать элементы, начиная с заголовка списка, упорядоченного от самого старого до самого нового.

Когда кэш должен удалять элементы, элементы с самыми старыми временными метками удаляются первыми.

1 Ответ

1 голос
/ 19 мая 2012

Похоже, что список Redis - лучшее решение.

С помощью команд LPUSH и LTRIM вы можете легко составить список, размер которого не превышает N элементов.

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