Ето някои източници на "скрита" консумация на памет в Redis:
-
Марк вече спомена буферите, поддържани от господаря за захранване на роба. Ако подчинено устройство изостава от своя главен (тъй като работи на по-бавна кутия например), тогава малко памет ще се изразходва от главната.
-
когато бъдат открити дълго изпълнявани команди, Redis ги регистрира в зоната на SLOWLOG, което отнема малко памет. Може да искате да използвате командата SLOWLOG LEN, за да проверите броя на записите, които имате тук.
-
комуникационните буфери също могат да заемат памет. Доколкото си спомням, със старите версии на Redis (а 2.4 е доста стара - наистина трябва да надстроите), той беше неограничен, което означава, че ако прехвърлите голям обект в дадена точка, комуникационният буфер, свързан с тази клиентска връзка, ще нарасне и никога не се свивайте. Ако има много клиенти, които се занимават от време на време с големи предмети, това може да бъде възможно обяснение. Ако използвате команди, извличащи много големи данни от Redis (с един кадър), това също може да бъде обяснение. Например, проста команда KEYS *, приложена към Redis сървър, съхраняващ милиони ключове, ще изразходва значително количество памет.
Споменахте, че имате обекти до 25 MB. Имате 404 клиентски връзки, ако всяка от тях трябва да получи достъп до такива обекти в даден момент, тя ще изразходва 10 GB памет.