Ожидается ли согласованность кэширования в memcached? - PullRequest
0 голосов
/ 05 июля 2018

Я много раз читал о переполнении стека и в других местах, что stats cachedump не поддерживается, скоро будет удален, ограничен сбросом 1 МБ и т. Д. Тем не менее, поскольку я только начинаю играть с memcached, я было бы очень удобно перечислить все (очень немногие) ключи, которые я устанавливаю в процессе разработки.

Однако то, что я сейчас получаю, это крайне противоречивые, едва полезные результаты. Посмотрите этот пример сеанса, где я очищаю все, затем устанавливаю три очень маленьких элемента (для ясности добавлены пустые строки):

flush_all

set key1 0 0 3
aaa
STORED

set key2 0 0 3
bbb
STORED

set key3 0 0 3
ccc
STORED

Тогда stats items говорит, что в плите 1 есть 3 элемента, как и ожидалось:

stats items
STAT items:1:number 3
STAT items:1:number_hot 0
STAT items:1:number_warm 0
STAT items:1:number_cold 3
STAT items:1:age_hot 0
STAT items:1:age_warm 0
STAT items:1:age 3
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
STAT items:1:evicted_active 0
STAT items:1:crawler_reclaimed 0
STAT items:1:crawler_items_checked 0
STAT items:1:lrutail_reflocked 57
STAT items:1:moves_to_cold 23
STAT items:1:moves_to_warm 20
STAT items:1:moves_within_lru 0
STAT items:1:direct_reclaims 0
STAT items:1:hits_to_hot 0
STAT items:1:hits_to_warm 0
STAT items:1:hits_to_cold 23
STAT items:1:hits_to_temp 0
END

Но когда я пытаюсь перечислить все элементы в блоке 1, результаты полностью противоречивы. Часто перечисляет 2 произвольных ключа из 3, но иногда перечисляет все 3 (что доказывает, что все данные есть и их не выселили):

stats cachedump 1 0
ITEM key1 [3 b; 0 s]
ITEM key2 [3 b; 0 s]
END

stats cachedump 1 0
ITEM key3 [3 b; 0 s]
ITEM key2 [3 b; 0 s]
END

stats cachedump 1 0
ITEM key2 [3 b; 0 s]
ITEM key1 [3 b; 0 s]
END

stats cachedump 1 0
ITEM key2 [3 b; 0 s]
ITEM key1 [3 b; 0 s]
ITEM key3 [3 b; 0 s]
END

stats cachedump 1 0
ITEM key2 [3 b; 0 s]
ITEM key1 [3 b; 0 s]
ITEM key3 [3 b; 0 s]
END

stats cachedump 1 0
ITEM key2 [3 b; 0 s]
ITEM key3 [3 b; 0 s]
END

Что с этим делать? Это ожидаемое поведение?

Я использую последнюю версию memcached 1.5.8 на macOS.

1 Ответ

0 голосов
/ 12 октября 2018

Как ответили в этой проблеме GitHub , правильный способ вывести все ключи в последних версиях memcached - это lru_crawler metadump 1 (или lru_crawler metadump all).

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