Есть ли способ получить случайный элемент из кэша памяти?
Получить случайный элемент из Memcache - Google App Engine
comment
Какую проблему ты пытаешься решить? Какие статистические свойства случайности вам требуются? Не существует встроенного способа запросить случайное значение в кэше памяти. Однако, вероятно, есть способ достичь вашей цели без этой функции.
- person Peter Recore   schedule 11.01.2012
comment
Я делаю что-то похожее на это решение stackoverflow.com/a/3451052/281021. Мне просто было интересно, можно ли получить пользу от какой-либо оптимизации с использованием кэша памяти.
- person Albert   schedule 16.01.2012
Ответы (2)
Нет, нет возможности выбрать случайный элемент из кэша памяти. Он также не предназначен для этого.
person
Nick Johnson
schedule
12.01.2012
Вы помогли предоставить это решение stackoverflow.com/a/3451052/281021. Может ли там чем-нибудь помочь memcache?
- person Albert; 16.01.2012
@Albert Нет, потому что нет возможности делать запросы в memcache, только по ключу.
- person Nick Johnson; 16.01.2012
Не напрямую через API.
Но вы можете создать список ключей изображений для всех изображений в кэше памяти, а затем случайным образом выбирать из этого списка. Сам список мне также нужно будет сохранить в кэше памяти.
person
Peter Knego
schedule
11.01.2012
Как вы узнаете, какие изображения были в кэше памяти, чтобы создать свой список? Элементы в кэше памяти могут исчезнуть в любой момент без предупреждения.
- person Peter Recore; 11.01.2012
Обычно вы пытаетесь получить его из кеша, если он недоступен, загружаете его из хранилища данных. Дополнительная работа заключается в добавлении / удалении записи из списка при добавлении / удалении изображения из кэша памяти.
- person Peter Knego; 11.01.2012
Я предположил, что посещение хранилища данных недопустимо. Для меня вопрос в том, могу ли я получить случайный элемент, который сейчас находится в кэше памяти, не заходя в хранилище данных.
- person Peter Recore; 12.01.2012
Если переход в хранилище данных приемлем, то зачем вам отслеживать, что находится в кэше памяти? Просто выберите случайную запись из хранилища данных.
- person Peter Recore; 12.01.2012
Кроме того, что происходит, когда сам список исчезает?
- person Peter Recore; 12.01.2012