Есть ли что-нибудь как memcached, но для отсортированных списков?

Использовать списки:

l = [1,2,3,4,5,6,7,8,9,10,11,12]
k = 5 #chunk size
print [tuple(l[x:y]) for (x, y) in [(x, x+k) for x in range(0, len(l), k)]]
5
задан 22 June 2009 в 13:03
поделиться

4 ответа

Redis поддерживает как списки, так и наборы. Вы можете отключить сохранение на диске и использовать его как Memcached вместо использования MongoDB, который сохранял бы данные на диск.

4
ответ дан 18 December 2019 в 14:50
поделиться

Взгляните на MongoDB . Он использует файлы с отображением памяти, поэтому работает невероятно быстро и должен работать на уровне, сопоставимом с MemCached.

MongoDB - это база данных без схемы, которая должна поддерживать то, что вы ищете (индексирование / сортировка)

6
ответ дан 18 December 2019 в 14:50
поделиться

Подходит MongoDB. Что важно, у него есть индексы, поэтому вы можете добавить индекс по заголовку для коллекции тем, а затем извлекать элементы, отсортированные по индексу:

db.topics.ensureIndex({"title": 1})
db.topics.find().sort({"title": 1})
3
ответ дан 18 December 2019 в 14:50
поделиться

почему бы просто не сохранить массив в memcached? по крайней мере, в python и PHP API memcached поддерживают это (я думаю, что python использует pickle, но точно не помню).

если вам нужно постоянное хранение или резервное копирование данных, memcacheDB использует тот же API.

базовый пример псевдопайтона:

получение сохраненных данных stored = cache.get (storedDataName)

инициализировать список, если вы ранее ничего не сохраняли если (сохранено == Нет): сохранено = {}

---------------- найти хранящиеся предметы

попробуйте: ужеHaveItem = сохранено [itemKey] кроме KeyError: напечатать «нет результата в кешировании»

---------------- добавление новых элементов

для элемента в newItemsDict: сохранено [элемент] = новые элементы [элемент]

---------------- сохранение результатов в кеше cache.set (storedDataName, хранится, TTL)

0
ответ дан 18 December 2019 в 14:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: