Использовать списки:
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)]]
Redis поддерживает как списки, так и наборы. Вы можете отключить сохранение на диске и использовать его как Memcached вместо использования MongoDB, который сохранял бы данные на диск.
Взгляните на MongoDB . Он использует файлы с отображением памяти, поэтому работает невероятно быстро и должен работать на уровне, сопоставимом с MemCached.
MongoDB - это база данных без схемы, которая должна поддерживать то, что вы ищете (индексирование / сортировка)
Подходит MongoDB. Что важно, у него есть индексы, поэтому вы можете добавить индекс по заголовку для коллекции тем, а затем извлекать элементы, отсортированные по индексу:
db.topics.ensureIndex({"title": 1})
db.topics.find().sort({"title": 1})
почему бы просто не сохранить массив в memcached? по крайней мере, в python и PHP API memcached поддерживают это (я думаю, что python использует pickle, но точно не помню).
если вам нужно постоянное хранение или резервное копирование данных, memcacheDB использует тот же API.
базовый пример псевдопайтона:
получение сохраненных данных stored = cache.get (storedDataName)
инициализировать список, если вы ранее ничего не сохраняли если (сохранено == Нет): сохранено = {}
---------------- найти хранящиеся предметы
попробуйте: ужеHaveItem = сохранено [itemKey] кроме KeyError: напечатать «нет результата в кешировании»
---------------- добавление новых элементов
для элемента в newItemsDict: сохранено [элемент] = новые элементы [элемент]
---------------- сохранение результатов в кеше cache.set (storedDataName, хранится, TTL)