{"id":22164,"date":"2026-11-05T11:30:00","date_gmt":"2026-11-05T10:30:00","guid":{"rendered":"https:\/\/webhosting.de\/?p=22164"},"modified":"2026-11-05T07:23:23","modified_gmt":"2026-11-05T06:23:23","slug":"wlasciwe-dobranie-wartosci-parametru-maxmemory-w-redis","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/redis-maxmemory-richtig-dimensionieren\/","title":{"rendered":"W\u0142a\u015bciwe dobranie warto\u015bci parametru maxmemory w Redis: rezerwy pami\u0119ci na dane i dzia\u0142anie systemu"},"content":{"rendered":"<div class=\"wh-article\" data-wh-layout=\"2.1.2\" style=\"width:100%;max-width:820px;margin:0 auto;color:#263b4b;font-family:inherit;font-size:18px;line-height:1.8;text-align:start;overflow-wrap:break-word;box-sizing:border-box\"><p class=\"wh-lead\" style=\"font-size:20px;line-height:1.7;color:#233746;margin:0 0 1.1em\">Zestaw <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory<\/code> nie jest r\u00f3wna dost\u0119pnej pami\u0119ci RAM: warto\u015b\u0107 ta reguluje proces usuwania danych, ale nie ogranicza ca\u0142kowitego zu\u017cycia pami\u0119ci przez procesy lub kontenery. Opr\u00f3cz danych i obci\u0105\u017cenia Redis nale\u017cy uwzgl\u0119dni\u0107 r\u00f3wnie\u017c miejsce na bufory, efekty alokatora oraz szczytowe zapotrzebowanie na pami\u0119\u0107 trwa\u0142\u0105.  Warto\u015b\u0107 pocz\u0105tkowa zapewniaj\u0105ca wystarczaj\u0105c\u0105 rezerw\u0119 wynika z <strong style=\"font-weight:700;color:inherit\">rzeczywista granica pami\u0119ci<\/strong> oraz przebieg\u00f3w zu\u017cycia przy obci\u0105\u017ceniu reprezentatywnym. Wy\u015bwietl osobno warto\u015bci \u201ePrimary\u201d i \u201eReplikate\u201d oraz sprawd\u017a bud\u017cet r\u00f3wnie\u017c pod k\u0105tem ewentualnej zmiany r\u00f3l. <\/p>\n<nav class=\"wh-toc\" aria-label=\"Tre\u015b\u0107 tego artyku\u0142u\" style=\"display:block;margin:28px 0 38px;padding:22px;border:1px solid #d9e4e8;border-radius:14px;background:#f4f8f8\"><p class=\"wh-toc-title\" style=\"font-size:13px;font-weight:700;letter-spacing:.08em;color:#49656b;margin:0 0 14px\">Przejd\u017a bezpo\u015brednio do sekcji<\/p><div class=\"wh-toc-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px\"><div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#maxmemory-grundlagen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Co faktycznie ogranicza warto\u015b\u0107 maxmemory<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#rss-und-persistenz\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">RSS, alokator i szczyty trwa\u0142o\u015bci<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#replikation-speicher\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Repliki wymagaj\u0105 osobnych bud\u017cet\u00f3w<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#metriken-erfassen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Rejestrowanie pami\u0119ci na trzech poziomach<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#budget-rechnen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Obliczenie realistycznego bud\u017cetu na pami\u0119\u0107 masow\u0105<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#eviction-vergleichen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Por\u00f3wnanie praktycznego stosowania polityk eksmisyjnych<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#betrieb-ueberwachen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Sprawdzi\u0107 rezerw\u0119 pod obci\u0105\u017ceniem<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#fehler-diagnose\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Precyzyjne zaw\u0119\u017canie zakresu problem\u00f3w z pami\u0119ci\u0105<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#hosting-entscheidung\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Rozwa\u017cenie opcji hostingu i architektury Redis<\/a><\/div>\n<\/div><\/nav><section class=\"wh-section\" aria-labelledby=\"maxmemory-grundlagen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"maxmemory-grundlagen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Co faktycznie ogranicza warto\u015b\u0107 maxmemory<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory<\/code> umieszcza w Redis Open Source plik <strong style=\"font-weight:700;color:inherit\">Pr\u00f3g eksmisji<\/strong> Nie ma sztywnego limitu dla procesu Redis ani jego kontenera. Gdy zu\u017cycie pami\u0119ci istotne z punktu widzenia zarz\u0105dzania pami\u0119ci\u0105 osi\u0105gnie pr\u00f3g, Redis pr\u00f3buje usun\u0105\u0107 klucze w zale\u017cno\u015bci od wybranej polityki. W przypadku polityki bez usuwania danych (eviction) polecenia zapisu powoduj\u0105ce zwi\u0119kszenie zu\u017cycia pami\u0119ci mog\u0105 zamiast tego zako\u0144czy\u0107 si\u0119 niepowodzeniem. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Wska\u017anik <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">used_memory<\/code> obejmuje pami\u0119\u0107 zajmowan\u0105 przez Redis za po\u015brednictwem jego alokatora. Obejmuje to nie tylko same warto\u015bci Twojej aplikacji, ale tak\u017ce struktury administracyjne i inne obszary pami\u0119ci Redis. Kto wyznacza limit wy\u0142\u0105cznie na podstawie szacowanego rozmiaru danych u\u017cytkowych, nie uwzgl\u0119dnia tego obci\u0105\u017cenia dodatkowego. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Cz\u0119\u015b\u0107 z <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">used_memory<\/code> jest wy\u0142\u0105czone z egzaminu Eviction: <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">mem_not_counted_for_evict<\/code> zawiera w szczeg\u00f3lno\u015bci tymczasowe bufory replikacji i AOF. Bufory te i tak wymagaj\u0105 pami\u0119ci fizycznej. Warto\u015b\u0107 ta jest ju\u017c zawarta w <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">used_memory<\/code> jest ju\u017c uwzgl\u0119dniona w tym wska\u017aniku i dlatego nie mo\u017cna jej dodawa\u0107 do niego po raz drugi bez sprawdzenia.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Nie oznacza to jednak, \u017ce wszystkie pami\u0119ci klienckie lub replikacyjne s\u0105 wy\u0142\u0105czone z oblicze\u0144 dotycz\u0105cych usuwania danych. Pojedyncze du\u017ce polecenie mo\u017ce ponadto tymczasowo znacznie przekroczy\u0107 ten pr\u00f3g. Je\u015bli ustawisz <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory<\/code> przy pe\u0142nym limicie kontener\u00f3w nie pozostaje \u017cadna pewna rezerwa na takie wahania i dodatkowe zu\u017cycie zasob\u00f3w procesowych. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W zwi\u0105zku z tym podczas planowania nale\u017cy osobno odpowiedzie\u0107 na dwa pytania: ile miejsca zajmuj\u0105 zestaw danych i obci\u0105\u017cenie Redis w ramach zarz\u0105dzania pami\u0119ci\u0105? I ile dodatkowej rezerwy potrzebuje ca\u0142e \u015brodowisko uruchomieniowe? Dopiero po\u0142\u0105czenie obu tych perspektyw pozwala stwierdzi\u0107, czy wybrana warto\u015b\u0107 poni\u017cej rzeczywistego limitu pami\u0119ci jest realistyczna.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"rss-und-persistenz\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"rss-und-persistenz\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">RSS, alokator i szczyty trwa\u0142o\u015bci<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Po wyst\u0105pieniu szczytowego obci\u0105\u017cenia mo\u017ce <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">used_memory<\/code> spadaj\u0105, podczas gdy <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">used_memory_rss<\/code> pozostaje wysoki: Redis co prawda zwolni\u0142 pami\u0119\u0107 za po\u015brednictwem alokatora, ale nie zosta\u0142a ona koniecznie natychmiast zwr\u00f3cona do systemu operacyjnego. RSS opisuje pami\u0119\u0107 rezydentn\u0105 procesu z punktu widzenia systemu operacyjnego i dlatego stanowi inny poziom obserwacji. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Za\u0142\u00f3\u017cmy, \u017ce podczas jakiej\u015b operacji pami\u0119\u0107 podr\u0119czna znacznie si\u0119 powi\u0119ksza, a po jej zako\u0144czeniu wygasa wiele kluczy. Mniejsza warto\u015b\u0107 pami\u0119ci Redis nie oznacza automatycznie, \u017ce kontener natychmiast odzyskuje odpowiedni\u0105 ilo\u015b\u0107 wolnej pami\u0119ci. W zwi\u0105zku z tym przy kolejnym szczycie obci\u0105\u017cenia wa\u017cniejszy jest przebieg rzeczywistego zu\u017cycia ni\u017c za\u0142o\u017cenie, \u017ce zwolniona pami\u0119\u0107 natychmiast znika. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">R\u00f3wnie\u017c <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">mem_fragmentation_ratio<\/code> nie jest to wy\u0142\u0105cznie wska\u017anik procentowy fragmentacji. Wska\u017anik ten obejmuje r\u00f3wnie\u017c inne elementy procesu; w celu przeprowadzenia analizy przyczyn nale\u017cy go rozpatrywa\u0107 \u0142\u0105cznie z dost\u0119pnymi <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">allocator_*<\/code>-wska\u017aniki oraz histori\u0119 obci\u0105\u017cenia. Na podstawie pojedynczego wska\u017anika nie mo\u017cna okre\u015bli\u0107 og\u00f3lnie obowi\u0105zuj\u0105cej rezerwy. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W przypadku migawek RDB i przepisywania plik\u00f3w AOF Redis tworzy proces potomny. Poprzez <strong style=\"font-weight:700;color:inherit\">Kopiowanie przy zapisie<\/strong> Mo\u017ce zaistnie\u0107 dodatkowe zapotrzebowanie na fizyczne strony pami\u0119ci, je\u015bli podczas cyklu utrwalania strony ulegn\u0105 zmianie. Im wi\u0119ksze i bardziej roz\u0142o\u017cone w czasie jest obci\u0105\u017cenie zapisem w tym okresie, tym wa\u017cniejsze jest uwzgl\u0119dnienie tej fazy podczas planowania pojemno\u015bci. <\/p>\n<figure class=\"wp-block-image size-large wh-figure\" aria-describedby=\"wh-caption-detail1\" style=\"display:block;float:none;clear:both;width:100%;max-width:760px;margin:34px auto 40px;border:1px solid #dae5e9;border-radius:14px;overflow:hidden;background:#f5f8fa;box-shadow:0 10px 28px -17px rgba(24,47,60,.28);box-sizing:border-box\"><div class=\"wh-figure-media\" style=\"display:block;background:#eef3f5;line-height:0\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-persistenz-ram-reserve-54c86e44-detail1-08896ef59b-1024x683.webp\" class=\"wp-image-22167\" alt=\"Wygenerowany przez sztuczn\u0105 inteligencj\u0119 obraz symboliczny przedstawiaj\u0105cy wyj\u0119ty modu\u0142 pami\u0119ci RAM na podk\u0142adce antystatycznej.\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-persistenz-ram-reserve-54c86e44-detail1-08896ef59b-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-persistenz-ram-reserve-54c86e44-detail1-08896ef59b-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-persistenz-ram-reserve-54c86e44-detail1-08896ef59b-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-persistenz-ram-reserve-54c86e44-detail1-08896ef59b-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-persistenz-ram-reserve-54c86e44-detail1-08896ef59b.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" ><\/div><figcaption class=\"wh-caption\" id=\"wh-caption-detail1\" style=\"display:block;margin:0;padding:12px 18px 15px;border-top:1px solid #dce5e9;color:#506575;background:#f5f8fa;font-size:14px;line-height:1.55;text-align:start\">Grafika symboliczna wygenerowana przez sztuczn\u0105 inteligencj\u0119: Pami\u0119\u0107 fizyczna stanowi podstaw\u0119, ale nie zast\u0119puje planowania rezerw trwa\u0142o\u015bci.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Administracja Redis podaje, \u017ce w skrajnych przypadkach aplikacje intensywnie wykorzystuj\u0105ce operacje zapisu mog\u0105 wymaga\u0107 nawet dwukrotnie wi\u0119kszej ilo\u015bci pami\u0119ci ni\u017c zwykle. Jest to ostrze\u017cenie dotycz\u0105ce niekorzystnych warunk\u00f3w obci\u0105\u017cenia, a nie og\u00f3lny mno\u017cnik. Nie nale\u017cy r\u00f3wnie\u017c po prostu sumowa\u0107 warto\u015bci RSS proces\u00f3w nadrz\u0119dnych i podrz\u0119dnych: wsp\u00f3lnie u\u017cywane strony by\u0142yby liczone wielokrotnie; istotne jest odpowiednie monitorowanie hosta lub kontenera. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"replikation-speicher\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"replikation-speicher\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Repliki wymagaj\u0105 osobnych bud\u017cet\u00f3w<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Replika zasadniczo przechowuje kopi\u0119 zbioru danych i wymaga do tego w\u0142asnej pami\u0119ci RAM. Serwer g\u0142\u00f3wny i replika s\u0105 zatem oddzielnymi konsumentami pami\u0119ci: rezerwa na serwerze g\u0142\u00f3wnym nie zwalnia miejsca w kontenerze repliki. Nale\u017cy planowa\u0107 ka\u017cdy element sieci w oparciu o jego w\u0142asne ograniczenia i obserwowane zu\u017cycie. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Domy\u015blnie replika ignoruje skonfigurowane <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory<\/code> w przypadku w\u0142asnych operacji usuwania. Serwer g\u0142\u00f3wny podejmuje decyzj\u0119 o usuni\u0119ciu kluczy i replikuje operacje usuwania. Niemniej jednak stany pami\u0119ci mog\u0105 si\u0119 r\u00f3\u017cni\u0107, na przyk\u0142ad z powodu rozbie\u017cno\u015bci w buforach lub strukturach danych; ta sama warto\u015b\u0107 progowa nie gwarantuje zatem identycznego obci\u0105\u017cenia. <\/p>\n<figure class=\"wp-block-image size-large wh-figure\" aria-describedby=\"wh-caption-detail2\" style=\"display:block;float:none;clear:both;width:100%;max-width:760px;margin:34px auto 40px;border:1px solid #dae5e9;border-radius:14px;overflow:hidden;background:#f5f8fa;box-shadow:0 10px 28px -17px rgba(24,47,60,.28);box-sizing:border-box\"><div class=\"wh-figure-media\" style=\"display:block;background:#eef3f5;line-height:0\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-replikation-eigene-speicherbudgets-54c86e44-detail2-820fa7a1b9-1024x683.webp\" class=\"wp-image-22168\" alt=\"Ilustracja wygenerowana przez sztuczn\u0105 inteligencj\u0119 przedstawiaj\u0105ca dwie powi\u0105zane instancje o podobnych formatach danych i r\u00f3\u017cnym dodatkowym zapotrzebowaniu na pami\u0119\u0107.\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-replikation-eigene-speicherbudgets-54c86e44-detail2-820fa7a1b9-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-replikation-eigene-speicherbudgets-54c86e44-detail2-820fa7a1b9-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-replikation-eigene-speicherbudgets-54c86e44-detail2-820fa7a1b9-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-replikation-eigene-speicherbudgets-54c86e44-detail2-820fa7a1b9-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/redis-replikation-eigene-speicherbudgets-54c86e44-detail2-820fa7a1b9.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" ><\/div><figcaption class=\"wh-caption\" id=\"wh-caption-detail2\" style=\"display:block;margin:0;padding:12px 18px 15px;border-top:1px solid #dce5e9;color:#506575;background:#f5f8fa;font-size:14px;line-height:1.55;text-align:start\">Ilustracja wygenerowana przez sztuczn\u0105 inteligencj\u0119: Primary i Replica przechowuj\u0105 kopie danych, ale ka\u017cda z nich wymaga w\u0142asnego limitu pami\u0119ci.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W przypadku <strong style=\"font-weight:700;color:inherit\">Promocja<\/strong> dawna replika przejmuje rol\u0119 serwera g\u0142\u00f3wnego. Nale\u017cy zatem sprawdzi\u0107 nie tylko, czy jako kopia odczytowa dysponuje wystarczaj\u0105c\u0105 ilo\u015bci\u0105 miejsca, ale tak\u017ce czy jej limit pami\u0119ci i konfiguracja pozwalaj\u0105 na dzia\u0142anie w roli serwera g\u0142\u00f3wnego. Obejmuje to w szczeg\u00f3lno\u015bci obci\u0105\u017cenie zapisem, po\u0142\u0105czenia replikacyjne oraz obowi\u0105zuj\u0105ce w\u00f3wczas zasady usuwania danych. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Od wersji Redis 7.0 bufor replikacji i lista zada\u0144 do replikacji wsp\u00f3\u0142dziel\u0105 pami\u0119\u0107. <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">mem_clients_slaves<\/code> mo\u017ce zatem wskazywa\u0107 warto\u015b\u0107 zerow\u0105, mimo \u017ce replikacja zajmuje pami\u0119\u0107. Nie nale\u017cy interpretowa\u0107 tego pola w oderwaniu od kontekstu ani bez sprawdzenia sumowa\u0107 zaleg\u0142o\u015bci i bufora replikacji jako ca\u0142kowicie odr\u0119bnych obszar\u00f3w. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Opr\u00f3cz zu\u017cycia pami\u0119ci istotne znaczenie dla dzia\u0142ania ma r\u00f3wnie\u017c szybko\u015b\u0107 przesy\u0142ania danych: op\u00f3\u017anienie ma inny charakter ni\u017c wielko\u015b\u0107 bufora. Jak mo\u017cna sklasyfikowa\u0107 stan replikacji i zaleg\u0142o\u015b\u0107, wyja\u015bnia artyku\u0142 po\u015bwi\u0119cony <a href=\"https:\/\/webhosting.de\/pl\/redis-replikacja-przesuniecie-analiza-spojnosc-danych-klaster\/\">Przesuni\u0119cie replikacji Redis<\/a>. Jednak dla rezerwy pami\u0119ci decyduj\u0105ce znaczenie maj\u0105 rzeczywiste krzywe zu\u017cycia ka\u017cdej instancji.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"metriken-erfassen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"metriken-erfassen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Rejestrowanie pami\u0119ci na trzech poziomach<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Do wymiarowania potrzebne s\u0105 warto\u015bci z Redis oraz ze \u015brodowiska, w kt\u00f3rym dzia\u0142a instancja. Te <strong style=\"font-weight:700;color:inherit\">poziom obserwacji<\/strong> decyduje o tym, co oznacza dana liczba: przydzia\u0142 pami\u0119ci przez alokator, RSS procesu i zu\u017cycie kontener\u00f3w to r\u00f3\u017cne wielko\u015bci, kt\u00f3rych nie da si\u0119 po prostu zsumowa\u0107. <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Warto\u015bci zapami\u0119tane i ich granice miary\" style=\"width:100%;max-width:100%;overflow-x:auto;margin:28px 0;border:1px solid #dce5e9;border-radius:14px;background:#fff;box-shadow:0 10px 28px -16px rgba(24,47,60,.32);box-sizing:border-box\"><table style=\"width:100%;min-width:580px;border-collapse:separate;border-spacing:0;border:0;margin:0;font-size:15px;line-height:1.6;background:#fff\"><caption style=\"padding:20px;text-align:start;font-size:17px;line-height:1.5;font-weight:700;color:#173246;background:#fff\">Warto\u015bci zapami\u0119tane i ich granice miary<\/caption><thead><tr><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Rozmiar<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Poziom i znaczenie<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Granice interpretacji<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">used_memory<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Pami\u0119\u0107 przydzielona przez Redis za po\u015brednictwem alokatora<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Zawiera obci\u0105\u017cenie zwi\u0105zane z Redisem i nie jest to\u017csame z samymi danymi u\u017cytkowymi.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">used_memory_rss<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Pami\u0119\u0107 rezydentna procesu Redis z punktu widzenia systemu operacyjnego<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Mo\u017ce pozostawa\u0107 na wysokim poziomie po wyst\u0105pieniu szczyt\u00f3w obci\u0105\u017cenia; nie nale\u017cy uto\u017csamia\u0107 tej warto\u015bci z used_memory.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">mem_nie_wliczane_do_ewakuacji<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Odsetek pami\u0119ci used_memory, kt\u00f3ry jest pomijany podczas sprawdzania ewakuacji<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Warto\u015b\u0107 ta ulega wahaniom i jest ju\u017c uwzgl\u0119dniona w zmiennej `used_memory`.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Zu\u017cycie zasob\u00f3w hosta lub kontenera<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Zu\u017cycie przy odpowiedniej granicy pracy<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Mo\u017ce obejmowa\u0107 inne podmioty opr\u00f3cz Redis; definicja zale\u017cy od \u015brodowiska.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Z <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">INFO memory<\/code> odczytujesz mi\u0119dzy innymi warto\u015bci przechowywane w Redis oraz skonfigurowan\u0105 polityk\u0119. <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">MEMORY STATS<\/code> uzupe\u0142nia szczeg\u00f3\u0142y dotycz\u0105ce alokacji pami\u0119ci. Oba polecenia maj\u0105 charakter odczytowy; to, kt\u00f3re pola s\u0105 dost\u0119pne, zale\u017cy od wersji Redis, uprawnie\u0144 oraz oferty hostingowej. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Aby sprawdzi\u0107 zgodno\u015b\u0107 czasow\u0105, sprawd\u017a r\u00f3wnie\u017c <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">INFO persistence<\/code> na aktywno\u015b\u0107 trwa\u0142o\u015bciow\u0105 i dost\u0119pne warto\u015bci Copy-on-Write. <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">INFO replication<\/code> wy\u015bwietla rol\u0119 i stan replikacji. Nale\u017cy wprowadzi\u0107 te dane oddzielnie dla serwera g\u0142\u00f3wnego i repliki, aby podczas analizy mo\u017cna by\u0142o rozr\u00f3\u017cni\u0107 zmian\u0119 roli od synchronizacji.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Pojedyncza warto\u015b\u0107 nie odzwierciedla ani typowego obci\u0105\u017cenia, ani niezb\u0119dnej rezerwy na szczytowe obci\u0105\u017cenia. Dlatego nale\u017cy gromadzi\u0107 szeregi czasowe dotycz\u0105ce normalnej pracy, szczyt\u00f3w zapisu oraz proces\u00f3w dzia\u0142aj\u0105cych w trybie ci\u0105g\u0142ym i przypisywa\u0107 do nich zu\u017cycie zasob\u00f3w przez hosty lub kontenery obserwowane w tym samym czasie. W ten spos\u00f3b mo\u017cna r\u00f3wnie\u017c rozpozna\u0107, czy wysoka warto\u015b\u0107 RSS towarzyszy aktualnemu obci\u0105\u017ceniu, czy te\u017c utrzymuje si\u0119 po wcze\u015bniejszym szczycie. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"budget-rechnen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"budget-rechnen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Obliczenie realistycznego bud\u017cetu na pami\u0119\u0107 masow\u0105<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Punktem wyj\u015bcia jest faktycznie obowi\u0105zuj\u0105ca <strong style=\"font-weight:700;color:inherit\">Limit pami\u0119ci<\/strong>: W przypadku kontenera mo\u017ce ona by\u0107 mniejsza ni\u017c ilo\u015b\u0107 pami\u0119ci RAM hosta. Sprawd\u017a, jakie inne procesy i komponenty systemu wykorzystuj\u0105 ten sam limit. To, co jest dla nich zarezerwowane, nie jest dost\u0119pne dla Redis do przechowywania danych ani obs\u0142ugi szczytowego obci\u0105\u017cenia.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Nast\u0119pnie odj\u0105\u0107 rezerwy na dodatkowe efekty RSS i alokatora, bufory nie uwzgl\u0119dnione w procesie eviccji, szczyty trwa\u0142o\u015bci oraz margines bezpiecze\u0144stwa. Wynikiem jest wst\u0119pna warto\u015b\u0107 <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory<\/code>-Bud\u017cet, a nie r\u00f3wnanie wewn\u0119trzne Redis. Rezerwy musz\u0105 odpowiada\u0107 temu samemu limitowi oraz realistycznym, wyst\u0119puj\u0105cym jednocze\u015bnie stanom obci\u0105\u017cenia.   <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Przyk\u0142ad obliczeniowy, nie jest to pomiar: Z limitu kontenera wynosz\u0105cego 8 GiB odlicza si\u0119 0,5 GiB dla innych odbiorc\u00f3w, 0,5 GiB na dodatkowe efekty RSS, 0,5 GiB na bufory wy\u0142\u0105czone z oblicze\u0144 dotycz\u0105cych usuwania, 1 GiB na szczytowy wzrost zapotrzebowania na pami\u0119\u0107 oraz 0,5 GiB na margines bezpiecze\u0144stwa. Jako warto\u015b\u0107 wst\u0119pn\u0105 pozostaje 5 GiB na <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory<\/code>.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Liczby te nie stanowi\u0105 zalecenia dotycz\u0105ce konkretnej instancji. Przyk\u0142ad ten zak\u0142ada, \u017ce przypisane rezerwy opisuj\u0105 dodatkowe, niepokrywaj\u0105ce si\u0119 wk\u0142ady do granicy kontenera. Zw\u0142aszcza w przypadku operacji typu persistence wsp\u00f3lne strony pami\u0119ci i mechanizm copy-on-write mog\u0105 utrudnia\u0107 przyporz\u0105dkowanie; zwyk\u0142e zsumowanie warto\u015bci RSS procesu nadrz\u0119dnego i podrz\u0119dnego by\u0142oby w tym przypadku nieodpowiednie. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Unikaj <strong style=\"font-weight:700;color:inherit\">Podw\u00f3jne zliczenia<\/strong>: <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">mem_not_counted_for_evict<\/code> jest ju\u017c zawarte w <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">used_memory<\/code>. Je\u015bli opierasz si\u0119 na ca\u0142kowitym zu\u017cyciu RSS lub kontener\u00f3w, nie wolno ci ponownie dodawa\u0107 tej cz\u0119\u015bci bufora bez sprawdzenia. W pozosta\u0142ym bud\u017cecie evicji musi zmie\u015bci\u0107 si\u0119 zar\u00f3wno zbi\u00f3r danych, jak i uwzgl\u0119dnione obci\u0105\u017cenie Redis; nast\u0119pnie sprawd\u017a to podej\u015bcie przy por\u00f3wnywalnym obci\u0105\u017ceniu.  <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"eviction-vergleichen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"eviction-vergleichen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Por\u00f3wnanie praktycznego stosowania polityk eksmisyjnych<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Die <strong style=\"font-weight:700;color:inherit\">Polityka eksmisji<\/strong> okre\u015bla, w jaki spos\u00f3b Redis reaguje na polecenia zapisu w przypadku niedoboru pami\u0119ci. Nie zast\u0119puje to planowania pojemno\u015bci: nawet odpowiednia polityka wymaga rezerw wykraczaj\u0105cych poza obliczenia dotycz\u0105ce usuwania danych. Decyzja zale\u017cy przede wszystkim od tego, kt\u00f3re klucze mog\u0105 zosta\u0107 utracone oraz od tego, jak aplikacja reaguje na b\u0142\u0119dy. <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Zasady w zale\u017cno\u015bci od przeznaczenia i post\u0119powania w przypadku niedoboru pami\u0119ci\" style=\"width:100%;max-width:100%;overflow-x:auto;margin:28px 0;border:1px solid #dce5e9;border-radius:14px;background:#fff;box-shadow:0 10px 28px -16px rgba(24,47,60,.32);box-sizing:border-box\"><table style=\"width:100%;min-width:580px;border-collapse:separate;border-spacing:0;border:0;margin:0;font-size:15px;line-height:1.6;background:#fff\"><caption style=\"padding:20px;text-align:start;font-size:17px;line-height:1.5;font-weight:700;color:#173246;background:#fff\">Zasady w zale\u017cno\u015bci od przeznaczenia i post\u0119powania w przypadku niedoboru pami\u0119ci<\/caption><thead><tr><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Polityka<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Typowa przydatno\u015b\u0107<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Strata i awaria<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">noeviction<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Dane, kt\u00f3rych nie nale\u017cy usuwa\u0107 w celu zwolnienia miejsca<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Nie dochodzi do wyrzucania danych w celu zwolnienia miejsca; polecenia zapisu zwi\u0119kszaj\u0105ce pojemno\u015b\u0107 pami\u0119ci mog\u0105 zako\u0144czy\u0107 si\u0119 niepowodzeniem z powodu OOM.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">allkeys-lru<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Pami\u0119\u0107 podr\u0119czna z danymi, kt\u00f3re mo\u017cna przywr\u00f3ci\u0107<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Klucze mog\u0105 by\u0107 usuwane na podstawie przybli\u017conej zasady LRU; powoduje to nieudane odwo\u0142ania do pami\u0119ci podr\u0119cznej.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">volatile-*<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Zbi\u00f3r, w kt\u00f3rym do usuni\u0119cia przeznaczone s\u0105 wy\u0142\u0105cznie klucze z wyznaczonym terminem wyga\u015bni\u0119cia<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Kwalifikuj\u0105 si\u0119 wy\u0142\u0105cznie klucze z TTL; je\u015bli brakuje odpowiednich kandydat\u00f3w, nie da si\u0119 zwolni\u0107 wystarczaj\u0105cej ilo\u015bci miejsca.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W przypadku samej pami\u0119ci podr\u0119cznej mo\u017cna <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">allkeys-lru<\/code> s\u0105 odpowiednie, je\u015bli usuni\u0119te wpisy mo\u017cna odtworzy\u0107 z innego \u017ar\u00f3d\u0142a. W Redis algorytm LRU stanowi przybli\u017cenie, a nie dok\u0142adne globalne sortowanie. Cz\u0119ste usuwanie wpis\u00f3w mo\u017ce powodowa\u0107 wi\u0119ksz\u0105 liczb\u0119 dost\u0119p\u00f3w do zaplecza; dlatego wa\u017cne s\u0105 nie tylko wolne bajty, ale tak\u017ce wsp\u00f3\u0142czynnik trafie\u0144 w pami\u0119ci podr\u0119cznej oraz wydajno\u015b\u0107 zaplecza. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W przypadku danych, kt\u00f3rych nie mo\u017cna dowolnie usun\u0105\u0107, <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">noeviction<\/code> Inna decyzja: aplikacja musi umie\u0107 radzi\u0107 sobie z nieudanymi operacjami zapisu, zamiast domy\u015blnie zak\u0142ada\u0107, \u017ce zapis przebieg\u0142 pomy\u015blnie. Ta zasada nie dotyczy ani trwa\u0142o\u015bci danych, ani ochrony przed b\u0142\u0119dem OOM na poziomie systemu operacyjnego lub kontenera. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W przypadku zbior\u00f3w mieszanych nale\u017cy <strong style=\"font-weight:700;color:inherit\">Dyscyplina TTL<\/strong> kluczowe: Jedno <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">volatile-*<\/code>-Polityka mo\u017ce wybiera\u0107 wy\u0142\u0105cznie klucze z okre\u015blonym czasem wyga\u015bni\u0119cia. Je\u015bli jest zbyt ma\u0142o odpowiednich kandydat\u00f3w, sam parametr TTL nie chroni przed b\u0142\u0119dami zapisu. Nale\u017cy zatem sprawdzi\u0107, czy pami\u0119\u0107 podr\u0119czna i wa\u017cne dane rzeczywi\u015bcie powinny korzysta\u0107 z tej samej instancji i tej samej strategii obs\u0142ugi b\u0142\u0119d\u00f3w. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Dane dotycz\u0105ce sesji uwidaczniaj\u0105 konflikt cel\u00f3w: usuni\u0119cie wpisu mo\u017ce oznacza\u0107 dla u\u017cytkownik\u00f3w utrat\u0119 stanu sesji, nawet je\u015bli aplikacja nadal dzia\u0142a pod wzgl\u0119dem technicznym. Przed wyborem polityki nale\u017cy oceni\u0107 konsekwencje i mo\u017cliwo\u015b\u0107 przywr\u00f3cenia danych; dodatkowe informacje na ten temat mo\u017cna znale\u017a\u0107 w artykule po\u015bwi\u0119conym <a href=\"https:\/\/webhosting.de\/pl\/zarzadzanie-sesjami-webhosting-redis-przechowywanie-baz-danych\/\">Zarz\u0105dzanie sesjami za pomoc\u0105 Redis i innych system\u00f3w pami\u0119ci<\/a>.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"betrieb-ueberwachen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"betrieb-ueberwachen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Sprawdzi\u0107 rezerw\u0119 pod obci\u0105\u017ceniem<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Warto\u015b\u0107 obliczona dla <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory<\/code> To na razie punkt wyj\u015bcia. Przetestuj to w izolowanym \u015brodowisku z podobn\u0105 wersj\u0105 Redis, struktur\u0105 danych i limitem pami\u0119ci. Obci\u0105\u017cenie powinno odzwierciedla\u0107 nie tylko zwyk\u0142\u0105 prac\u0119, ale tak\u017ce szczyty zapisu oraz fazy, w kt\u00f3rych jednocze\u015bnie aktywne s\u0105 funkcje trwa\u0142o\u015bci danych i replikacji. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Zwr\u00f3\u0107 przy tym uwag\u0119 na <strong style=\"font-weight:700;color:inherit\">Zu\u017cycie pojemnik\u00f3w<\/strong> lub odpowiedni\u0105 metryk\u0119 hosta, a tak\u017ce warto\u015bci przechowywane w Redis. Nale\u017cy odnotowa\u0107, kiedy trwa tworzenie migawki lub przepisywanie pliku AOF oraz czy replika jest synchronizowana. Kluczowe znaczenie ma to, jak du\u017ca jest r\u00f3\u017cnica w stosunku do rzeczywistego limitu podczas nak\u0142adaj\u0105cych si\u0119 zdarze\u0144, a nie tylko w okresie bezczynno\u015bci po ich zako\u0144czeniu.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Za pomoc\u0105 polecenia odczytu <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">INFO stats<\/code> Rejestrujesz mi\u0119dzy innymi licznik wyrzucania. Analizuj zmiany tych warto\u015bci w poszczeg\u00f3lnych przedzia\u0142ach czasowych: sam wysoki poziom historyczny nie wskazuje, czy w danym momencie klucze s\u0105 wyrzucane. Por\u00f3wnaj rosn\u0105c\u0105 liczb\u0119 wyrzucanych element\u00f3w z trafieniami w pami\u0119ci podr\u0119cznej i obci\u0105\u017ceniem serwera, o ile Twoja aplikacja udost\u0119pnia te dane. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Ponadto nale\u017cy rejestrowa\u0107 w aplikacji odpowiedzi Redis OOM oraz zdarzenia zwi\u0105zane z pami\u0119ci\u0105 w kontenerach na platformie. Oba rodzaje b\u0142\u0119d\u00f3w mog\u0105 wyst\u0105pi\u0107 przy podobnym obci\u0105\u017ceniu, ale dotycz\u0105 r\u00f3\u017cnych limit\u00f3w. Dlatego system alarmowy powinien uwzgl\u0119dnia\u0107 zar\u00f3wno dost\u0119pn\u0105 rezerw\u0119, jak i zaobserwowane b\u0142\u0119dy oraz ich przebieg w czasie. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Po wprowadzeniu zmian w zestawie danych, obci\u0105\u017ceniu zapisem lub mechanizmach trwa\u0142o\u015bci i replikacji nale\u017cy powt\u00f3rzy\u0107 ocen\u0119. R\u00f3wnie\u017c awans zmienia rol\u0119 repliki, a tym samym profil obci\u0105\u017cenia, kt\u00f3ry nale\u017cy sprawdzi\u0107. Wyniki uzyskane w \u015brodowisku izolowanym nie zast\u0119puj\u0105 ci\u0105g\u0142ej obserwacji instancji produkcyjnych. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"fehler-diagnose\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"fehler-diagnose\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Precyzyjne zaw\u0119\u017canie zakresu problem\u00f3w z pami\u0119ci\u0105<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Czy warto\u015b\u0107 RSS procesu ro\u015bnie, podczas gdy <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">used_memory<\/code> je\u015bli tak si\u0119 stanie, najpierw sprawd\u017a przebieg i poprzednie obci\u0105\u017cenie. Zwolniona pami\u0119\u0107 nie musi od razu wraca\u0107 do systemu operacyjnego. <strong style=\"font-weight:700;color:inherit\">Wska\u017aniki alokatora<\/strong> z <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">INFO memory<\/code> pomagaj\u0105 w interpretacji; sam wsp\u00f3\u0142czynnik fragmentacji nie \u015bwiadczy ani o wycieku pami\u0119ci, ani o jego przyczynie. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Nast\u0119pnie sprawd\u017a, czy wzrost ten zbiega si\u0119 czasowo z przebiegiem persystencyjnym lub synchronizacj\u0105. S\u0142u\u017c\u0105 do tego <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">INFO persistence<\/code> oraz <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">INFO replication<\/code>. Pojedyncza warto\u015b\u0107 dla bufora nieobj\u0119tego procedur\u0105 eviction opisuje jedynie aktualny stan. Aby oszacowa\u0107 rezerw\u0119, potrzebne s\u0105 pomiary z r\u00f3\u017cnych faz obci\u0105\u017cenia i zak\u0142\u00f3ce\u0144. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W przypadku <strong style=\"font-weight:700;color:inherit\">Odpowied\u017a Redis OOM<\/strong> Sprawd\u017a skonfigurowan\u0105 polityk\u0119 oraz to, czy dost\u0119pne s\u0105 odpowiednie klucze do usuni\u0119cia danych. W szczeg\u00f3lno\u015bci polecenie zapisu mo\u017ce zako\u0144czy\u0107 si\u0119 niepowodzeniem, je\u015bli Redis nie b\u0119dzie w stanie zwolni\u0107 wystarczaj\u0105cej ilo\u015bci miejsca zgodnie z obowi\u0105zuj\u0105c\u0105 polityk\u0105. Aplikacja musi obs\u0142u\u017cy\u0107 ten b\u0142\u0105d, zamiast zak\u0142ada\u0107, \u017ce operacja zapisu zako\u0144czy si\u0119 powodzeniem.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">W przypadku przerwania dzia\u0142ania kontenera z powodu braku pami\u0119ci nale\u017cy natomiast przeanalizowa\u0107 zdarzenia platformy oraz zu\u017cycie w por\u00f3wnaniu z limitem kontenera. Nale\u017cy uwzgl\u0119dni\u0107 szczytowe obci\u0105\u017cenia zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych oraz inne procesy zu\u017cywaj\u0105ce pami\u0119\u0107 w kontenerze. B\u0142\u0105d OOM w Redis i b\u0142\u0105d OOM w kontenerze nie s\u0105 to\u017csame: limit pami\u0119ci zewn\u0119trznej mo\u017ce zosta\u0107 osi\u0105gni\u0119ty nawet bez uprzedniej odpowiedzi OOM z Redis. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">maxmemory-clients<\/code> mo\u017ce dodatkowo ograniczy\u0107 ilo\u015b\u0107 pami\u0119ci zajmowanej przez klient\u00f3w. Je\u015bli pami\u0119\u0107 danego klienta przekroczy skonfigurowany pr\u00f3g, Redis mo\u017ce roz\u0142\u0105czy\u0107 klient\u00f3w o wysokim zu\u017cyciu pami\u0119ci; aplikacje musz\u0105 radzi\u0107 sobie z przerwami w po\u0142\u0105czeniu. Ustawienie to nie ogranicza wszystkich po\u0142\u0105cze\u0144 replikacyjnych i nie zast\u0119puje ani og\u00f3lnego limitu, ani monitorowania szczyt\u00f3w obci\u0105\u017cenia bufora. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"hosting-entscheidung\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"hosting-entscheidung\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Rozwa\u017cenie opcji hostingu i architektury Redis<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Je\u015bli obserwowana rezerwa przy reprezentatywnym obci\u0105\u017ceniu okazuje si\u0119 niewystarczaj\u0105ca, rozs\u0105dnym rozwi\u0105zaniem mo\u017ce by\u0107 zwi\u0119kszenie pami\u0119ci RAM, o ile zbi\u00f3r danych i obci\u0105\u017cenie maj\u0105 zasadniczo pozosta\u0107 na jednej instancji. Dodatkowa pojemno\u015b\u0107 musi jednak mie\u015bci\u0107 si\u0119 w faktycznie obowi\u0105zuj\u0105cym limicie hosta lub kontenera. Sam wi\u0119kszy limit Redis nie zapewnia dodatkowej pami\u0119ci fizycznej. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Alternatywnie mo\u017cna <strong style=\"font-weight:700;color:inherit\">Rozk\u0142ad obci\u0105\u017cenia<\/strong> roz\u0142o\u017cy\u0107 zapotrzebowanie na pami\u0119\u0107 i operacje zapisu na kilka instancji. Wymaga to odpowiedniego podzia\u0142u danych oraz osobnego bud\u017cetu dla ka\u017cdej z zaanga\u017cowanych instancji. Repliki nie s\u0105 przy tym r\u00f3wnoznaczne z podzia\u0142em zbioru danych: zasadniczo przechowuj\u0105 one kopi\u0119 i wymagaj\u0105 do tego w\u0142asnej pami\u0119ci RAM. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Pomocna mo\u017ce by\u0107 r\u00f3wnie\u017c zmiana architektury, na przyk\u0142ad oddzielenie pami\u0119ci podr\u0119cznej toleruj\u0105cej straty od danych o bardziej rygorystycznych wymaganiach. Pozwala to na niezale\u017cny dob\u00f3r zasad i pojemno\u015bci. Jednak ani to oddzielenie, ani zwi\u0119kszenie pami\u0119ci RAM, ani roz\u0142o\u017cenie obci\u0105\u017cenia nie gwarantuj\u0105, \u017ce w przysz\u0142o\u015bci nie wyst\u0105pi\u0105 szczyty zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych, replikacj\u0105 i zapisem.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Por\u00f3wnuj\u0105c <strong style=\"font-weight:700;color:inherit\">Ograniczenia dostawc\u00f3w<\/strong> Nale\u017cy ustali\u0107, czy podana warto\u015b\u0107 odnosi si\u0119 do limitu kontenera, limitu instancji czy te\u017c innego limitu zdefiniowanego w bazie danych. Nale\u017cy r\u00f3wnie\u017c zapyta\u0107, jakie wska\u017aniki i polecenia diagnostyczne s\u0105 dost\u0119pne, czy repliki s\u0105 uwzgl\u0119dnione w zarezerwowanej przestrzeni dyskowej oraz jaki wp\u0142yw ma promocja na dost\u0119pne zasoby.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Redis Open Source, oprogramowanie Redis i Redis Cloud nale\u017cy traktowa\u0107 oddzielnie. W przypadku oprogramowania Redis obowi\u0105zuje udokumentowany limit bazy danych obejmuj\u0105cy zar\u00f3wno fragmenty g\u0142\u00f3wne, jak i replikacyjne; nie wynika z tego \u017cadna odpowiednia zasada dotycz\u0105ca pojedynczej instancji Redis OSS. W przypadku Redis Cloud i innych ofert hostingowych nale\u017cy sprawdzi\u0107 konkretne warunki danego produktu, zamiast bezkrytycznie przyjmowa\u0107 t\u0119 definicj\u0119. <\/p>\n<\/section><section class=\"wh-sources\" style=\"margin:40px 0 0;padding:24px 0 0;border-top:1px solid #dce5e9;color:#596b7b;font-size:14px;line-height:1.65\"><h2 style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">\u0179r\u00f3d\u0142a i aktualny stan wiedzy<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Stan bada\u0144: <time datetime=\"2026-11-04\">2026-11-04<\/time><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Analiza i zakres produktu na dzie\u0144 4 listopada 2026 r. Przyk\u0142ady odnosz\u0105 si\u0119 do Redis Open Source; dost\u0119pne wska\u017aniki i limity hostingu zale\u017c\u0105 od wersji i dostawcy.<\/p><div class=\"wh-source-urls\"><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/redis.io\/docs\/latest\/develop\/reference\/eviction\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/replication\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/redis.io\/docs\/latest\/commands\/info\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/admin\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/redis.io\/docs\/latest\/develop\/reference\/errors\/common\/oom\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/redis.io\/docs\/latest\/develop\/reference\/clients\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/redis.io\/docs\/latest\/operate\/rs\/databases\/memory-performance\/memory-limit\/<\/span><\/p><\/div><\/section><\/div>","protected":false},"excerpt":{"rendered":"<p>Parametr `maxmemory` w Redis nie stanowi sztywnego limitu pami\u0119ci RAM. Dowiedz si\u0119, jak uwzgl\u0119dni\u0107 dane, replikacj\u0119, szczytowe obci\u0105\u017cenia zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych oraz limity kontener\u00f3w podczas planowania pami\u0119ci.<\/p>","protected":false},"author":1,"featured_media":22166,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[781],"tags":[],"class_list":["post-22164","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-datenbanken-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"surfer_file_name":null,"surfer_file_original_url":null,"_wp_attachment_image_alt":null,"litespeed-optimize-set":null,"litespeed-optimize-size":null,"_oembed_b5e1eb923ad3b086e579b1befcd4075c":null,"_elementor_source_image_hash":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"_source_url":null,"_elementor_migrations_state_8b2d":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"_wh_make_key":"wh_54c86e44167291080cf614c61d005eeb","rank_math_internal_links_processed":"1","_wh_make_topic":"Redis maxmemory richtig dimensionieren \u2013 ausreichend Platz f\u00fcr Daten, Replikation und interne Buffer","_wh_make_input_keywords":["redis maxmemory","redis speicher","redis hosting"],"_wh_make_config":{"research_model":"gpt-6.1-terra","writer_model":"gpt-6.1-terra","review_model":"gpt-6.1-sol","image_model":"gpt-image-2.5-flare","image_quality":"high","image_format":"webp","final_status":"draft","charts_enabled":true},"_wh_make_links":{"I1":{"id":"I1","post_id":21475,"url":"https:\/\/webhosting.de\/redis-replication-offset-analyse-datenkonsistenz-cluster\/","title":"Zrozumienie i analiza przesuni\u0119cia replikacji w Redis w celu zapewnienia wysokiej sp\u00f3jno\u015bci danych","excerpt":"Poka\u017c\u0119, w jaki spos\u00f3b celowo odczytuj\u0119, analizuj\u0119 i wykorzystuj\u0119 offset Redis w celu zapewnienia wysokiej sp\u00f3jno\u015bci danych. W ten spos\u00f3b wcze\u015bnie wykrywam luki w replikacji, oceniam ryzyko zwi\u0105zane z prze\u0142\u0105czeniem awaryjnym oraz niezawodnie synchronizuj\u0119 klastry produkcyjne. Kluczowe punkty Poni\u017csze kluczowe stwierdzenia stanowi\u0105 konkretne wprowadzenie do tematu, terminologii i praktycznego wdro\u017cenia. Offset mierzy post\u0119p strumienia replikacji bajt po bajcie. Lag to r\u00f3\u017cnica mi\u0119dzy master_repl_offset a slave_repl_offset. ID+Offset identyfikuje dok\u0142adn\u0105 wersj\u0119 danych do replikacji cz\u0119\u015bciowej. Backlog chroni przed konieczno\u015bci\u0105 pe\u0142nej synchronizacji w przypadku kr\u00f3tkich przerw w po\u0142\u0105czeniu. Monitorowanie za pomoc\u0105 metryk INFO\/Cluster steruje alarmowaniem i prze\u0142\u0105czaniem awaryjnym. Co oznacza offset replikacji Redis? Offset replikacji to ci\u0105g\u0142y 64-bitowy licznik, kt\u00f3ry odzwierciedla ka\u017cdy strumie\u0144 bajt\u00f3w przesy\u0142any mi\u0119dzy serwerem g\u0142\u00f3wnym a replik\u0105. Na tej podstawie mog\u0119 odczyta\u0107, jak daleko posun\u0119\u0142a si\u0119 replikacja i czy replika ma jeszcze co\u015b do zrobienia. Warto\u015b\u0107 master_repl_offset na serwerze g\u0142\u00f3wnym ro\u015bnie z ka\u017cdym nowo wygenerowanym bajtem, podczas gdy replika zwi\u0119ksza sw\u00f3j w\u0142asny licznik, gdy tylko zastosuje polecenia. R\u00f3\u017cnice mi\u0119dzy tymi warto\u015bciami wskazuj\u0105 op\u00f3\u017anienie w bajtach i pokazuj\u0105, czy replika pozostaje w tyle. Ta prosta, ale skuteczna semantyka sprawia, \u017ce offset staje si\u0119 kluczow\u0105 warto\u015bci\u0105 dla zapewnienia synchronizacji, analizy awarii oraz podejmowania trafnych decyzji dotycz\u0105cych prze\u0142\u0105czania awaryjnego. Odczytywanie offset\u00f3w: prawid\u0142owe wykorzystanie polecenia INFO replication Prawie zawsze rozpoczynam diagnostyk\u0119 od polecenia INFO replication, poniewa\u017c dostarcza ono w zwi\u0119z\u0142y spos\u00f3b istotne pola. Na serwerze g\u0142\u00f3wnym sprawdzam master_repl_offset oraz status po\u0142\u0105czonych replik, w tym ich offsety. Na replice dodatkowo sprawdzam master_link_status oraz stany synchronizacji, aby wykry\u0107 trwaj\u0105ce pe\u0142ne synchronizacje lub synchronizacje cz\u0119\u015bciowe. W celu przeprowadzenia bardziej szczeg\u00f3\u0142owej analizy korzystam ze strukturyzowanych wynik\u00f3w i koreluj\u0119 przesuni\u0119cia z warto\u015bciami dotycz\u0105cymi procesora, operacji we\/wy oraz sieci. Gruntowne wprowadzenie do tego polecenia zapewnia mi ten przewodnik: Redis INFO do monitorowania. Replication ID + Offset: jednoznaczna wersja danych Aby uzyska\u0107 jednoznaczn\u0105 wersj\u0119, korzystam z kombinacji Replication ID i Offset. ID oznacza histori\u0119, a Offset pozycj\u0119 w obr\u0119bie"},"I2":{"id":"I2","post_id":18104,"url":"https:\/\/webhosting.de\/datenbank-replikation-hosting-master-slave-multi-master-syncio\/","title":"Replikacja bazy danych w hostingu: master-slave vs. multi-master","excerpt":"W hostingu replikacja baz danych decyduje o tym, jak dobrze aplikacje zachowuj\u0105 dost\u0119pno\u015b\u0107 przy rosn\u0105cym obci\u0105\u017ceniu oraz jak szybko wznawiaj\u0105 operacje zapisu i odczytu po awariach. Wyra\u017anie przedstawiam r\u00f3\u017cnic\u0119 mi\u0119dzy modelem master-slave a multi-master, w tym optymalizacj\u0119, strategie prze\u0142\u0105czania awaryjnego oraz odpowiednie scenariusze zastosowa\u0144. Kluczowe kwestie: Poni\u017csze kluczowe aspekty pomagaj\u0105 mi wybra\u0107 w\u0142a\u015bciw\u0105 strategi\u0119 replikacji. Model \u201emaster-slave\u201d: proste operacje zapisu, skalowalne operacje odczytu, jasny podzia\u0142 odpowiedzialno\u015bci. Model \u201emulti-master\u201d: rozproszone operacje zapisu, wy\u017csza dost\u0119pno\u015b\u0107, ale konieczno\u015b\u0107 zarz\u0105dzania konfliktami. GTID i prze\u0142\u0105czanie awaryjne: szybsze prze\u0142\u0105czanie i bardziej przejrzyste \u015bcie\u017cki replikacji. Rzeczywisto\u015b\u0107 hostingu: op\u00f3\u017anienia, pami\u0119\u0107 masowa i sie\u0107 wp\u0142ywaj\u0105 na sp\u00f3jno\u015b\u0107. Monitorowanie i optymalizacja: w zasi\u0119gu wzroku wska\u017aniki, czasy nadrabiania zaleg\u0142o\u015bci i ustawienia binlogu. Co zapewnia replikacja w hostingu? Wykorzystuj\u0119 replikacj\u0119, aby zwi\u0119kszy\u0107 dost\u0119pno\u015b\u0107, roz\u0142o\u017cy\u0107 obci\u0105\u017cenia zwi\u0105zane z odczytem oraz umo\u017cliwi\u0107 przeprowadzanie okien konserwacyjnych bez przestoj\u00f3w. Topologie typu master-slave centralnie obs\u0142uguj\u0105 zapisy, podczas gdy wiele replik obs\u0142uguje ogromn\u0105 liczb\u0119 odczyt\u00f3w, skracaj\u0105c w ten spos\u00f3b czasy odpowiedzi. Warianty typu multi-master umo\u017cliwiaj\u0105 rozproszone operacje zapisu, co w konfiguracjach globalnych zmniejsza op\u00f3\u017anienia i u\u0142atwia radzenie sobie z utrat\u0105 w\u0119z\u0142a. Dla stos\u00f3w internetowych opartych na WordPressie, silnikach sklep\u00f3w internetowych lub interfejsach API oznacza to wi\u0119kszy bufor zabezpieczaj\u0105cy przed szczytami ruchu oraz szybsze przywracanie sprawno\u015bci po awariach. Kto planuje rozw\u00f3j horyzontalny wykraczaj\u0105cy poza zwyk\u0142\u0105 replikacj\u0119, \u0142\u0105czy j\u0105 stopniowo z shardingiem i replikacj\u0105, aby szerzej roz\u0142o\u017cy\u0107 dane i obci\u0105\u017cenie oraz umo\u017cliwi\u0107 planowanie skalowania. Master-slave: dzia\u0142anie i zalety W konfiguracji typu master-slave konsekwentnie zapisuj\u0119 dane wy\u0142\u0105cznie na serwerze master, podczas gdy serwery slave obs\u0142uguj\u0105 operacje odczytu i synchronizuj\u0105 dzienniki binarne. Jasny podzia\u0142 r\u00f3l pozwala unikn\u0105\u0107 konflikt\u00f3w zapisu i zapewnia przejrzysto\u015b\u0107 modelu. Rozwi\u0105zanie to idealnie sprawdza si\u0119 w wielu scenariuszach hostingowych o wysokim udziale operacji odczytu, takich jak katalogi produkt\u00f3w, portale tre\u015bciowe czy pulpity raportowe. W zale\u017cno\u015bci od potrzeb dodaj\u0119 kolejne serwery slave bez zmiany \u015bcie\u017cki zapisu. Planuj\u0119 bufory na op\u00f3\u017anienia replikacji, aby raporty lub pami\u0119ci podr\u0119czne dostarcza\u0142y sp\u00f3jnych wynik\u00f3w pomimo niewielkich op\u00f3\u017anie\u0144. MySQL Master-Slave krok po"},"I3":{"id":"I3","post_id":17026,"url":"https:\/\/webhosting.de\/session-management-webhosting-redis-datenbanken-storage\/","title":"Zarz\u0105dzanie sesjami w hostingu internetowym: zoptymalizowane przechowywanie plik\u00f3w, Redis i baz danych","excerpt":"Poka\u017c\u0119, w jaki spos\u00f3b zarz\u0105dzanie sesjami w hostingu internetowym staje si\u0119 wyra\u017anie szybsze, gdy celowo zapisuj\u0119 sesje w plikach, Redis lub bazach danych i \u015bci\u015ble kontroluj\u0119 ich cykl \u017cycia. W ten spos\u00f3b zmniejszam op\u00f3\u017anienia, utrzymuj\u0119 wysoki wska\u017anik wykorzystania pami\u0119ci podr\u0119cznej i bezpiecznie skaluj\u0119 system na wielu serwerach. Kluczowe punkty Konsekwentnie wdra\u017cam poni\u017csze zasady, aby zapewni\u0107 bezpieczn\u0105, szybk\u0105 i skalowaln\u0105 obs\u0142ug\u0119 sesji. Ochrona wska\u017anika buforowania: minimalizowanie wykorzystania sesji i utrzymywanie \u017c\u0105da\u0144 w spos\u00f3b sprzyjaj\u0105cy buforowaniu. Redis dla szybko\u015bci: wykorzystaj pami\u0119\u0107 w pami\u0119ci operacyjnej do kr\u00f3tkich, cz\u0119stych dost\u0119p\u00f3w. Pliki z rozwag\u0105: zacznij od prostych rozwi\u0105za\u0144, a przy du\u017cym obci\u0105\u017ceniu wcze\u015bnie migruj. Bazy danych w spos\u00f3b ukierunkowany: trwa\u0142o\u015b\u0107 tylko dla naprawd\u0119 krytycznych sesji. \u015acis\u0142a konfiguracja: precyzyjnie dostosuj PHP-FPM, TTL, limity czasu i monitorowanie. Dlaczego sesje obni\u017caj\u0105 limit pami\u0119ci podr\u0119cznej Ka\u017cda aktywna sesja ustawia plik cookie PHPSESSID, kt\u00f3ry nadaje \u017c\u0105daniom unikalny charakter, a tym samym omija wiele pami\u0119ci podr\u0119cznych. Dlatego \u015bwiadomie decyduj\u0119, kt\u00f3re trasy naprawd\u0119 wymagaj\u0105 sesji, a kt\u00f3re dzia\u0142aj\u0105 \u015bci\u015ble bez sesji. Dzi\u0119ki temu strony takie jak listy produkt\u00f3w, blogi czy tre\u015bci statyczne pozostaj\u0105 maksymalnie szybkie i skalowalne dzi\u0119ki CDN i pami\u0119ci podr\u0119cznej aplikacji. Otwieram sesj\u0119 tylko wtedy, gdy \u017c\u0105danie zapisuje dane statusowe lub odczytuje dane wra\u017cliwe. Ograniczam czas trwania operacji zapisu, szybko zamykam sesj\u0119 i w ten spos\u00f3b zapewniam swobodny przep\u0142yw r\u00f3wnoleg\u0142ych \u017c\u0105da\u0144. Pliki jako pami\u0119\u0107 sesji: proste, ale ograniczone Obs\u0142uga systemu plik\u00f3w w PHP to dobry pocz\u0105tek, ale skaluje si\u0119 ona tylko do umiarkowanego obci\u0105\u017cenia. Ka\u017cdy dost\u0119p generuje operacje wej\u015bcia\/wyj\u015bcia, a na wolnej pami\u0119ci masowej lub w sieci NFS op\u00f3\u017anienie szybko ro\u015bnie. W konfiguracjach klastrowych istnieje ryzyko niesp\u00f3jno\u015bci, gdy kilka serwer\u00f3w aplikacji nie odwo\u0142uje si\u0119 do tego samego katalogu. Dlatego ju\u017c na wczesnym etapie dbam o scentralizowane \u015bcie\u017cki dost\u0119pu lub z odpowiednim wyprzedzeniem planuj\u0119 przej\u015bcie na Redis. W przypadku ma\u0142ych projekt\u00f3w wystarcza przechowywanie w plikach, natomiast w perspektywie rozwoju od samego pocz\u0105tku planuj\u0119 \u015bcie\u017ck\u0119 migracji. Redis dla sesji: szybki i scentralizowany Redis przechowuje dane sesji w pami\u0119ci RAM, zapewniaj\u0105c dost\u0119p w milisekundach nawet pod obci\u0105\u017ceniem. Stosuj\u0119 Redis centralnie, aby wszystkie serwery aplikacji widzia\u0142y te same sesje, a modu\u0142 r\u00f3wnowa\u017cenia obci\u0105\u017cenia m\u00f3g\u0142 je swobodnie rozdziela\u0107. Utrzymuj\u0119 kr\u00f3tkie czasy TTL, aby kr\u00f3tkotrwa\u0142e stany"}},"_wh_make_stage":"entwurf","_wh_make_research_date":"2026-11-04","_wh_make_sitemap_info":{"index":"https:\/\/webhosting.de\/sitemap_index.xml?wh_make=1","sitemaps":["https:\/\/webhosting.de\/post-sitemap1.xml","https:\/\/webhosting.de\/post-sitemap2.xml","https:\/\/webhosting.de\/post-sitemap3.xml","https:\/\/webhosting.de\/post-sitemap4.xml"],"url_count":3138,"fetched_at":"2026-11-04T08:42:44+00:00","selected_ids":[21475,18104,17026]},"_wh_make_draft_hash":"a7260eec0c2da93959c7a86ee14723c7d8333a520ce09a041cd00c7013ecd323","_wh_make_work":{"version":"2.1","identity":{"sheet_ref":"1VMjxV8Q73i0Q1HO6s-u4jNHVRF0snliGCeg97intLPs","sheet_name":"Tabellenblatt1","external_id":"1442","topic":"Redis maxmemory richtig dimensionieren \u2013 ausreichend Platz f\u00fcr Daten, Replikation und interne Buffer","keywords":["redis maxmemory","redis speicher","redis hosting"],"category_input":"781"},"config":{"research_model":"gpt-6.1-terra","writer_model":"gpt-6.1-terra","review_model":"gpt-6.1-sol","image_model":"gpt-image-2.5-flare","image_quality":"high","image_format":"webp","final_status":"draft","charts_enabled":true},"phase":"done","pending":null,"receipts":{"c91fe5d3591117c4f7adc4eee15b3ac3":"30bd1e88656e0718f85329585c679d2d659eb327caa90c03f64fd485fa14990b","56a538c4b74c5f95a41bc250d37cbf22":"2af7e8b7b53aa5257abc760d6f00f6e9777763ed27052d7c83e9b9f939094017","705a7dfceba1d20df0f23b9fd2ae4a0c":"e4d29c52683faa81f0652772c98e9cd0ff484f2d910fcb8c7971e51b02aacc36","b135231ad0c155adefc805c017852707":"f4e5adec18e96b8a349a88ce187eb4bbfa9115ed645c17f0e86a8d0bb2eae8a9","53003776155a329a5e0f6f11290878cb":"4048ee288742f6795705d5772e9b8e4793feff9879d216c4f677e5e296a80fb8","8a16a91cd2f5131ca4c9353d525810d4":"884915d1efd6761143e2810e4af1af9fd5cb6d9656d4d4ec78fd274fde73d467","afcdaa6816fc080ec4fc305a2d31d891":"0778004888b86192a97109fa70e349beba152314a459459a86d44a6b9e344311","6dcd84225d01eebfbf6c8d9681c42042":"2b0bef1e78f33ab0144d901205d3c730a3b63342ce632d4751b8aad9d9ca87f5","b8f9a1b767805fe27c10bc7f424ae28a":"25cbd4d4689c31917f9eaabe8499815876a3e3bc98466674767400fee5d8ae46","1fe947fbc0410ceb6c66f68637a00712":"383cd29043b07fa7309d74e15638feec00edcac3e7c715bd6f58b34d98eaa6fb","9610b9bbce2245afebeb99d1566719f1":"ae059105a70529489e8a66abb21a1c16d93eb8cfb1aeb8092c05910dc2fbfc73"},"parts":{"1":[{"id":"maxmemory-grundlagen","heading":"Was maxmemory tats\u00e4chlich begrenzt","blocks":[{"type":"paragraph","runs":[{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" legt in Redis Open Source eine ","ref":""},{"kind":"strong","text":"Eviction-Schwelle","ref":""},{"kind":"text","text":" fest, keine harte Obergrenze f\u00fcr den Redis-Prozess oder seinen Container. Erreicht der f\u00fcr die Speichersteuerung relevante Verbrauch die Schwelle, versucht Redis abh\u00e4ngig von der gew\u00e4hlten Policy Schl\u00fcssel zu entfernen. Bei einer Policy ohne Eviction k\u00f6nnen speichervergr\u00f6\u00dfernde Schreibbefehle stattdessen fehlschlagen.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Kennzahl ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" umfasst den von Redis \u00fcber seinen Allocator belegten Speicher. Dazu geh\u00f6ren nicht nur die eigentlichen Werte deiner Anwendung, sondern auch Verwaltungsstrukturen und weitere Redis-Speicherbereiche. Wer das Limit allein aus der gesch\u00e4tzten Gr\u00f6\u00dfe der Nutzdaten ableitet, l\u00e4sst diesen Overhead unber\u00fccksichtigt.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein Teil von ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" wird bei der Eviction-Pr\u00fcfung ausgenommen: ","ref":""},{"kind":"code","text":"mem_not_counted_for_evict","ref":""},{"kind":"text","text":" weist insbesondere tempor\u00e4re Replikations- und AOF-Puffer aus. Diese Puffer ben\u00f6tigen trotzdem realen Speicher. Der Wert ist bereits in ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" enthalten und darf deshalb nicht ohne Pr\u00fcfung ein zweites Mal zu dieser Kennzahl addiert werden.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Daraus folgt nicht, dass s\u00e4mtliche Client- oder Replikationsspeicher au\u00dferhalb der Eviction-Rechnung liegen. Ein einzelner gro\u00dfer Befehl kann die Schwelle zudem vor\u00fcbergehend deutlich \u00fcberschreiten. Setzt du ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" auf das volle Containerlimit, bleibt f\u00fcr solche Ausschl\u00e4ge und zus\u00e4tzlichen Prozessverbrauch kein verl\u00e4sslicher Spielraum.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr die Planung sind daher zwei Fragen getrennt zu beantworten: Wie viel Platz brauchen Datensatz und Redis-Overhead innerhalb der Speichersteuerung? Und wie viel Reserve ben\u00f6tigt die gesamte Laufzeitumgebung dar\u00fcber hinaus? Erst beide Perspektiven zusammen zeigen, ob ein gew\u00e4hlter Wert unter der tats\u00e4chlichen Speichergrenze plausibel ist.","ref":""}]}]},{"id":"rss-und-persistenz","heading":"RSS, Allocator und Persistenzspitzen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Nach einer Lastspitze kann ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" sinken, w\u00e4hrend ","ref":""},{"kind":"code","text":"used_memory_rss","ref":""},{"kind":"text","text":" hoch bleibt: Redis hat dann zwar Speicher \u00fcber den Allocator freigegeben, dieser wurde aber nicht zwingend sofort an das Betriebssystem zur\u00fcckgegeben. RSS beschreibt den residenten Speicher des Prozesses aus Betriebssystemsicht und ist deshalb eine andere Beobachtungsebene.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Angenommen, ein Cache w\u00e4chst w\u00e4hrend einer Aktion stark und viele Schl\u00fcssel laufen danach ab. Der kleinere Redis-Speicherwert bedeutet nicht automatisch, dass der Container sofort entsprechend viel freie Reserve zur\u00fcckerh\u00e4lt. F\u00fcr die n\u00e4chste Spitze ist daher der Verlauf des tats\u00e4chlichen Verbrauchs wichtiger als die Annahme, dass freigegebener Speicher unmittelbar verschwindet.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch ","ref":""},{"kind":"code","text":"mem_fragmentation_ratio","ref":""},{"kind":"text","text":" ist kein reiner Fragmentierungsprozentsatz. Das Verh\u00e4ltnis umfasst weitere Prozessanteile; f\u00fcr die Ursachenanalyse solltest du es zusammen mit den verf\u00fcgbaren ","ref":""},{"kind":"code","text":"allocator_*","ref":""},{"kind":"text","text":"-Metriken und der Lastgeschichte betrachten. Aus einem einzelnen Verh\u00e4ltnis l\u00e4sst sich keine allgemein g\u00fcltige Reserve ableiten.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei RDB-Snapshots und AOF-Rewrites erzeugt Redis einen Kindprozess. Durch ","ref":""},{"kind":"strong","text":"Copy-on-Write","ref":""},{"kind":"text","text":" k\u00f6nnen zus\u00e4tzlich physische Speicherseiten ben\u00f6tigt werden, wenn w\u00e4hrend des Persistenzlaufs Seiten ver\u00e4ndert werden. Je st\u00e4rker und breiter die Schreiblast w\u00e4hrenddessen ist, desto wichtiger ist es, diese Phase bei der Kapazit\u00e4tsplanung zu beobachten.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Redis-Administration nennt f\u00fcr schreibintensive Anwendungen im Extrem einen Bedarf bis zum Doppelten des normalerweise genutzten Speichers. Das ist eine Warnung f\u00fcr ung\u00fcnstige Lastverh\u00e4ltnisse, kein pauschaler Multiplikator. Addiere au\u00dferdem nicht einfach die RSS-Werte von Eltern- und Kindprozess: Gemeinsam genutzte Seiten w\u00fcrden mehrfach gez\u00e4hlt; relevant ist die passende Host- oder Containerbeobachtung.","ref":""},{"kind":"citation","text":"","ref":"S4"}]}]},{"id":"replikation-speicher","heading":"Replikate brauchen eigene Budgets","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Ein Replica h\u00e4lt grunds\u00e4tzlich eine Kopie des Datenbestands und ben\u00f6tigt daf\u00fcr eigenes RAM. Primary und Replica sind deshalb getrennte Speicherverbraucher: Eine Reserve auf dem Primary schafft keinen Platz im Container des Replica. Plane jedes Mitglied anhand seiner eigenen Grenze und seines beobachteten Verbrauchs.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Standardm\u00e4\u00dfig ignoriert ein Replica sein konfiguriertes ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" f\u00fcr eigene Evictions. Der Primary entscheidet \u00fcber das Entfernen von Schl\u00fcsseln und repliziert die L\u00f6schungen. Trotzdem k\u00f6nnen sich die Speicherst\u00e4nde unterscheiden, etwa wegen abweichender Puffer oder Datenstrukturen; derselbe Grenzwert garantiert daher keine identische Auslastung.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer ","ref":""},{"kind":"strong","text":"Promotion","ref":""},{"kind":"text","text":" \u00fcbernimmt das fr\u00fchere Replica die Primary-Rolle. Pr\u00fcfe deshalb nicht nur, ob es als lesende Kopie gen\u00fcgend Platz hat, sondern auch, ob seine Speichergrenze und Konfiguration den Betrieb als Primary tragen. Dazu geh\u00f6ren insbesondere Schreiblast, Replikationsverbindungen und die dann geltende Eviction-Steuerung.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Seit Redis 7.0 teilen sich Replica-Buffer und Replikations-Backlog Speicher. ","ref":""},{"kind":"code","text":"mem_clients_slaves","ref":""},{"kind":"text","text":" kann deshalb null anzeigen, obwohl die Replikation Speicher beansprucht. Interpretiere das Feld nicht isoliert und addiere Backlog und Replica-Buffer nicht ungepr\u00fcft als vollst\u00e4ndig getrennte Bereiche.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Neben dem Speicherverbrauch ist der Fortschritt der Daten\u00fcbertragung f\u00fcr den Betrieb relevant: Eine Verz\u00f6gerung zeigt eine andere Eigenschaft als die Gr\u00f6\u00dfe eines Puffers. Wie sich Replikationsstand und R\u00fcckstand einordnen lassen, erkl\u00e4rt der Beitrag zum ","ref":""},{"kind":"internal_link","text":"Redis Replication Offset","ref":"I1"},{"kind":"text","text":". F\u00fcr die Speicherreserve bleiben dennoch die tats\u00e4chlichen Verbrauchsverl\u00e4ufe jeder Instanz entscheidend.","ref":""}]}]}],"2":[{"id":"metriken-erfassen","heading":"Speicher auf drei Ebenen erfassen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr die Dimensionierung brauchst du Werte aus Redis und von der Umgebung, in der die Instanz l\u00e4uft. Die ","ref":""},{"kind":"strong","text":"Beobachtungsebene","ref":""},{"kind":"text","text":" entscheidet dar\u00fcber, was eine Zahl aussagt: Allocator-Belegung, Prozess-RSS und Containerverbrauch sind unterschiedliche Gr\u00f6\u00dfen und lassen sich nicht einfach addieren.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"table","caption":"Speicherwerte und ihre Aussagegrenzen","headers":["Gr\u00f6\u00dfe","Ebene und Bedeutung","Grenze der Interpretation"],"rows":[["used_memory","Von Redis \u00fcber den Allocator belegter Speicher","Enth\u00e4lt Redis-Overhead und ist nicht identisch mit den reinen Nutzdaten."],["used_memory_rss","Residenter Speicher des Redis-Prozesses aus Betriebssystemsicht","Kann nach Lastspitzen hoch bleiben; ist nicht mit used_memory gleichzusetzen."],["mem_not_counted_for_evict","Anteil von used_memory, der bei der Eviction-Pr\u00fcfung ausgenommen wird","Schwankt und ist bereits in used_memory enthalten."],["Host- oder Containerverbrauch","Verbrauch an der relevanten Betriebsgrenze","Kann neben Redis weitere Verbraucher umfassen; die Definition h\u00e4ngt von der Umgebung ab."]],"source_ids":["S3"]},{"type":"paragraph","runs":[{"kind":"text","text":"Mit ","ref":""},{"kind":"code","text":"INFO memory","ref":""},{"kind":"text","text":" liest du unter anderem die Redis-Speicherwerte und die konfigurierte Policy. ","ref":""},{"kind":"code","text":"MEMORY STATS","ref":""},{"kind":"text","text":" erg\u00e4nzt Details zur Speicherverteilung. Beide Befehle sind lesend; welche Felder verf\u00fcgbar sind, h\u00e4ngt von Redis-Version, Berechtigungen und Hosting-Angebot ab.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr den zeitlichen Zusammenhang pr\u00fcfst du au\u00dferdem ","ref":""},{"kind":"code","text":"INFO persistence","ref":""},{"kind":"text","text":" auf Persistenzaktivit\u00e4t und verf\u00fcgbare Copy-on-Write-Werte. ","ref":""},{"kind":"code","text":"INFO replication","ref":""},{"kind":"text","text":" zeigt Rolle und Replikationszustand. Erfasse diese Angaben f\u00fcr Primary und Replica getrennt, damit ein Rollenwechsel oder eine Synchronisation bei der Auswertung erkennbar bleibt.","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein einzelner Wert zeigt weder die typische Auslastung noch die notwendige Spitzenreserve. Sammle deshalb Zeitreihen \u00fcber normalen Betrieb, Schreibspitzen und Persistenzl\u00e4ufe und ordne ihnen den gleichzeitig beobachteten Host- oder Containerverbrauch zu. So erkennst du auch, ob ein hoher RSS-Wert eine aktuelle Last begleitet oder nach einer fr\u00fcheren Spitze bestehen bleibt.","ref":""},{"kind":"citation","text":"","ref":"S3"}]}]},{"id":"budget-rechnen","heading":"Ein belastbares Speicherbudget berechnen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Ausgangspunkt ist die tats\u00e4chlich wirksame ","ref":""},{"kind":"strong","text":"Speichergrenze","ref":""},{"kind":"text","text":": Bei einem Container kann sie niedriger sein als der RAM des Hosts. Ermittle, welche anderen Prozesse und Betriebsanteile dieselbe Grenze beanspruchen. Was ihnen vorbehalten ist, steht Redis nicht f\u00fcr Daten oder Spitzen zur Verf\u00fcgung.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ziehe anschlie\u00dfend Reserven f\u00fcr zus\u00e4tzliche RSS- und Allocator-Effekte, nicht f\u00fcr Eviction gez\u00e4hlte Buffer, Persistenzspitzen und einen Sicherheitsabstand ab. Das Ergebnis ist ein vorl\u00e4ufiges ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":"-Budget, keine Redis-interne Gleichung. Die Reserven m\u00fcssen zur gleichen Grenze und zu realistisch gleichzeitig auftretenden Lastzust\u00e4nden passen.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Illustratives Rechenbeispiel, keine Messung: Von einer Containergrenze von 8 GiB werden 0,5 GiB f\u00fcr andere Verbraucher, 0,5 GiB f\u00fcr zus\u00e4tzliche RSS-Effekte, 0,5 GiB f\u00fcr aus der Eviction-Rechnung ausgenommene Buffer, 1 GiB f\u00fcr eine Persistenzspitze und 0,5 GiB Sicherheitsabstand abgezogen. Als vorl\u00e4ufiger Wert bleiben 5 GiB f\u00fcr ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":".","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Diese Zahlen sind keine Empfehlung f\u00fcr eine konkrete Instanz. Das Beispiel setzt voraus, dass die angesetzten Reserven zus\u00e4tzliche, nicht \u00fcberlappende Beitr\u00e4ge zur Containergrenze beschreiben. Gerade bei einem Persistenzlauf k\u00f6nnen gemeinsame Speicherseiten und Copy-on-Write die Zuordnung erschweren; eine blo\u00dfe Addition der RSS-Werte von Eltern- und Kindprozess w\u00e4re daf\u00fcr ungeeignet.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Vermeide ","ref":""},{"kind":"strong","text":"Doppelz\u00e4hlungen","ref":""},{"kind":"text","text":": ","ref":""},{"kind":"code","text":"mem_not_counted_for_evict","ref":""},{"kind":"text","text":" steckt bereits in ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":". Wenn du vom beobachteten gesamten RSS oder Containerverbrauch ausgehst, darfst du diesen Bufferanteil nicht ungepr\u00fcft noch einmal addieren. Im verbleibenden Eviction-Budget m\u00fcssen sowohl der Datensatz als auch der mitgez\u00e4hlte Redis-Overhead Platz finden; pr\u00fcfe den Ansatz anschlie\u00dfend unter vergleichbarer Last.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S3"}]}]},{"id":"eviction-vergleichen","heading":"Eviction-Policies im Praxisvergleich","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Die ","ref":""},{"kind":"strong","text":"Eviction-Policy","ref":""},{"kind":"text","text":" bestimmt, wie Redis bei Speicherknappheit auf schreibende Befehle reagiert. Sie ersetzt keine Kapazit\u00e4tsplanung: Selbst eine passende Policy ben\u00f6tigt Reserven au\u00dferhalb der Eviction-Rechnung. Die Entscheidung h\u00e4ngt vor allem davon ab, welche Schl\u00fcssel verloren gehen d\u00fcrfen und wie die Anwendung auf Fehler reagiert.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"table","caption":"Policies nach Einsatzzweck und Verhalten bei Speicherknappheit","headers":["Policy","Typische Eignung","Verlust und Fehlerfall"],"rows":[["noeviction","Daten, die nicht zur Platzgewinnung entfernt werden sollen","Keine Eviction zur Platzgewinnung; speichervergr\u00f6\u00dfernde Schreibbefehle k\u00f6nnen mit OOM scheitern."],["allkeys-lru","Cache mit wiederherstellbaren Daten","Schl\u00fcssel k\u00f6nnen nach n\u00e4herungsweisem LRU entfernt werden; dadurch entstehen Cache-Misses."],["volatile-*","Bestand, bei dem nur Schl\u00fcssel mit Ablaufzeit zur Eviction vorgesehen sind","Nur Schl\u00fcssel mit TTL sind Kandidaten; fehlen geeignete Kandidaten, kann Platz nicht ausreichend freigemacht werden."]],"source_ids":["S2","S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einem reinen Cache kann ","ref":""},{"kind":"code","text":"allkeys-lru","ref":""},{"kind":"text","text":" passen, wenn sich entfernte Eintr\u00e4ge aus einer anderen Quelle neu aufbauen lassen. LRU ist in Redis eine N\u00e4herung und keine exakte globale Sortierung. H\u00e4ufige Evictions k\u00f6nnen mehr Zugriffe auf das Backend ausl\u00f6sen; deshalb sind nicht nur freie Bytes, sondern auch Cache-Trefferrate und Backend-Kapazit\u00e4t wichtig.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr nicht beliebig l\u00f6schbare Daten ist ","ref":""},{"kind":"code","text":"noeviction","ref":""},{"kind":"text","text":" eine andere Entscheidung: Die Anwendung muss fehlgeschlagene Schreibvorg\u00e4nge behandeln k\u00f6nnen, statt stillschweigend mit erfolgreicher Speicherung zu rechnen. Die Policy ist weder Persistenz noch Schutz vor einem OOM auf Betriebssystem- oder Containerebene.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei gemischten Best\u00e4nden ist die ","ref":""},{"kind":"strong","text":"TTL-Disziplin","ref":""},{"kind":"text","text":" entscheidend: Eine ","ref":""},{"kind":"code","text":"volatile-*","ref":""},{"kind":"text","text":"-Policy kann nur Schl\u00fcssel mit Ablaufzeit ausw\u00e4hlen. Wenn zu wenige geeignete Kandidaten vorhanden sind, sch\u00fctzt eine TTL allein nicht vor Schreibfehlern. Pr\u00fcfe deshalb, ob Cache und wichtige Daten wirklich dieselbe Instanz und Fehlerstrategie teilen sollten.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Session-Daten verdeutlichen den Zielkonflikt: Ein entfernter Eintrag kann f\u00fcr Nutzer den Verlust eines Sitzungszustands bedeuten, auch wenn die Anwendung technisch weiterl\u00e4uft. Bewerte die Folgen und Wiederherstellbarkeit vor der Policy-Wahl; zus\u00e4tzliche Grundlagen bietet der Beitrag zum ","ref":""},{"kind":"internal_link","text":"Session-Management mit Redis und anderen Speichern","ref":"I3"},{"kind":"text","text":".","ref":""}]}]}],"3":[{"id":"betrieb-ueberwachen","heading":"Reserve unter Last \u00fcberpr\u00fcfen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Ein berechneter Wert f\u00fcr ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" ist zun\u00e4chst ein Ausgangspunkt. Pr\u00fcfe ihn in einer isolierten Umgebung mit vergleichbarer Redis-Version, Datenstruktur und Speichergrenze. Die Last sollte nicht nur den gew\u00f6hnlichen Betrieb abbilden, sondern auch Schreibspitzen und Phasen, in denen Persistenz und Replikation gleichzeitig aktiv sind.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Beobachte dabei den ","ref":""},{"kind":"strong","text":"Containerverbrauch","ref":""},{"kind":"text","text":" beziehungsweise die passende Host-Metrik ebenso wie Redis-Speicherwerte. Halte fest, wann ein Snapshot oder AOF-Rewrite l\u00e4uft und ob ein Replica synchronisiert wird. Entscheidend ist, wie viel Abstand zur tats\u00e4chlichen Grenze w\u00e4hrend \u00fcberlappender Ereignisse bleibt, nicht nur im Leerlauf danach.","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Mit dem lesenden Befehl ","ref":""},{"kind":"code","text":"INFO stats","ref":""},{"kind":"text","text":" erfasst du unter anderem Eviction-Z\u00e4hler. Werte deren \u00c4nderung pro Zeitintervall aus: Ein hoher historischer Stand allein sagt nicht, ob gerade Schl\u00fcssel verdr\u00e4ngt werden. Setze steigende Evictions in Beziehung zu Cache-Treffern und Backend-Last, sofern deine Anwendung diese Gr\u00f6\u00dfen bereitstellt.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Erfasse au\u00dferdem Redis-OOM-Antworten in der Anwendung und speicherbedingte Container-Ereignisse auf der Plattform. Beide Fehler k\u00f6nnen bei \u00e4hnlicher Last auftreten, betreffen aber unterschiedliche Grenzen. Eine Alarmierung sollte deshalb sowohl die verf\u00fcgbare Reserve als auch die beobachteten Fehler und deren zeitlichen Verlauf ber\u00fccksichtigen.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Wiederhole die Bewertung nach \u00c4nderungen am Datensatz, an der Schreiblast oder an Persistenz und Replikation. Auch eine Promotion ver\u00e4ndert die Rolle eines Replica und damit das zu pr\u00fcfende Lastprofil. Die Ergebnisse aus der isolierten Umgebung ersetzen nicht die fortlaufende Beobachtung der produktiven Instanzen.","ref":""},{"kind":"citation","text":"","ref":"S5"}]}]},{"id":"fehler-diagnose","heading":"Speicherprobleme gezielt eingrenzen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Steigt der Prozess-RSS, w\u00e4hrend ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" f\u00e4llt, betrachte zuerst den Verlauf und die vorherige Last. Freigegebener Speicher muss nicht sofort an das Betriebssystem zur\u00fcckgehen. Die ","ref":""},{"kind":"strong","text":"Allocator-Metriken","ref":""},{"kind":"text","text":" aus ","ref":""},{"kind":"code","text":"INFO memory","ref":""},{"kind":"text","text":" helfen bei der Einordnung; das Fragmentierungsverh\u00e4ltnis allein beweist weder ein Speicherleck noch dessen Ursache.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Pr\u00fcfe anschlie\u00dfend, ob der Anstieg zeitlich mit einem Persistenzlauf oder einer Synchronisierung zusammenf\u00e4llt. Dazu dienen ","ref":""},{"kind":"code","text":"INFO persistence","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"INFO replication","ref":""},{"kind":"text","text":". Ein einzelner Wert f\u00fcr nicht zur Eviction gez\u00e4hlte Buffer beschreibt nur den aktuellen Zustand. F\u00fcr eine Reserve brauchst du Beobachtungen \u00fcber relevante Last- und St\u00f6rungsphasen hinweg.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer ","ref":""},{"kind":"strong","text":"Redis-OOM-Antwort","ref":""},{"kind":"text","text":" pr\u00fcfe die konfigurierte Policy und ob geeignete Schl\u00fcssel f\u00fcr eine Eviction vorhanden sind. Insbesondere kann ein Schreibbefehl scheitern, wenn Redis unter der geltenden Policy keinen ausreichenden Platz freimachen kann. Die Anwendung muss diesen Fehler behandeln, statt einen erfolgreichen Schreibvorgang vorauszusetzen.","ref":""},{"kind":"citation","text":"","ref":"S6"},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einem speicherbedingten Container-Abbruch untersuche dagegen die Plattformereignisse und den Verbrauch gegen\u00fcber dem Containerlimit. Beziehe Persistenzspitzen und andere im Container erfasste Verbraucher ein. Ein Redis-OOM und ein Container-OOM sind nicht gleichzusetzen: Auch ohne eine vorherige Redis-OOM-Antwort kann die \u00e4u\u00dfere Speichergrenze erreicht werden.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"code","text":"maxmemory-clients","ref":""},{"kind":"text","text":" kann zus\u00e4tzlich den von Clients belegten Speicher begrenzen. \u00dcberschreitet der relevante Client-Speicher die konfigurierte Schwelle, kann Redis Clients mit hohem Verbrauch trennen; Anwendungen m\u00fcssen mit Verbindungsabbr\u00fcchen umgehen. Die Einstellung begrenzt nicht s\u00e4mtliche Replikationsverbindungen und ersetzt weder das Gesamtbudget noch die Beobachtung von Pufferspitzen.","ref":""},{"kind":"citation","text":"","ref":"S7"}]}]},{"id":"hosting-entscheidung","heading":"Redis Hosting und Architektur abw\u00e4gen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Reicht die beobachtete Reserve bei repr\u00e4sentativer Last nicht aus, kann mehr RAM sinnvoll sein, wenn Datensatz und Last grunds\u00e4tzlich auf einer Instanz bleiben sollen. Die zus\u00e4tzliche Kapazit\u00e4t muss jedoch zur tats\u00e4chlich wirksamen Host- oder Containergrenze geh\u00f6ren. Ein gr\u00f6\u00dferes Redis-Limit allein schafft keinen zus\u00e4tzlichen physischen Speicher.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Alternativ kann eine ","ref":""},{"kind":"strong","text":"Lastverteilung","ref":""},{"kind":"text","text":" den Speicherbedarf und die Schreibarbeit auf mehrere Instanzen verteilen. Das erfordert eine passende Aufteilung der Daten und eine eigene Budgetierung f\u00fcr jede beteiligte Instanz. Replikate sind dabei nicht mit einer Aufteilung des Datenbestands gleichzusetzen: Sie halten grunds\u00e4tzlich eine Kopie und ben\u00f6tigen daf\u00fcr eigenes RAM.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch eine Architektur\u00e4nderung kann helfen, etwa die Trennung eines verlusttoleranten Caches von Daten mit strengeren Anforderungen. Dadurch lassen sich Policies und Kapazit\u00e4ten unabh\u00e4ngig w\u00e4hlen. Weder diese Trennung noch mehr RAM oder Lastverteilung garantiert allerdings, dass Persistenz-, Replikations- und Schreibspitzen k\u00fcnftig ausbleiben.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Beim Vergleich von ","ref":""},{"kind":"strong","text":"Anbietergrenzen","ref":""},{"kind":"text","text":" kl\u00e4re, ob der ausgewiesene Wert ein Containerlimit, ein Instanzlimit oder ein anders definiertes Datenbanklimit bezeichnet. Frage au\u00dferdem, welche Metriken und Diagnosebefehle zug\u00e4nglich sind, ob Replikate im gebuchten Speicher enthalten sind und wie sich eine Promotion auf die verf\u00fcgbaren Ressourcen auswirkt.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Redis Open Source, Redis Software und Redis Cloud sind getrennt zu betrachten. Bei Redis Software gilt das dokumentierte Datenbanklimit \u00fcber Primary- und Replica-Shards hinweg; daraus folgt keine entsprechende Regel f\u00fcr eine einzelne Redis-OSS-Instanz. F\u00fcr Redis Cloud und andere Hosting-Angebote pr\u00fcfst du die jeweils konkreten Produktbedingungen, statt diese Definition ungepr\u00fcft zu \u00fcbertragen.","ref":""},{"kind":"citation","text":"","ref":"S1"}]}]}]},"plan":{"reader_question":"Wie gro\u00df darf Redis maxmemory sein, damit Daten, Replikation, Clients und Persistenz auch unter Last innerhalb der verf\u00fcgbaren Speichergrenze bleiben?","sections":[{"id":"maxmemory-grundlagen","heading":"Was maxmemory tats\u00e4chlich begrenzt","part":1,"target_words":270,"purpose":"Die Eviction-Schwelle von einer harten Prozess- oder Containergrenze abgrenzen. In kurzen Abs\u00e4tzen erkl\u00e4ren, dass used_memory auch Redis-Overhead enth\u00e4lt, mem_not_counted_for_evict darin enthalten und bei der Eviction-Pr\u00fcfung ausgenommen ist. Ein gro\u00dfer Befehl kann die Schwelle vor\u00fcbergehend \u00fcberschreiten; nicht alle Client- und Replikationsbereiche pauschal ausnehmen.","source_ids":["S2","S3"],"internal_link_ids":[]},{"id":"rss-und-persistenz","heading":"RSS, Allocator und Persistenzspitzen","part":1,"target_words":270,"purpose":"Anhand eines Lastspitzen-Beispiels used_memory und Prozess-RSS unterscheiden und erkl\u00e4ren, warum freigegebener Speicher im RSS verbleiben kann. Fragmentierungsverh\u00e4ltnis nicht als reinen Prozentsatz behandeln. Fork und Copy-on-Write bei RDB und AOF erl\u00e4utern; das m\u00f6gliche Extrem bis zum Doppelten als Warnung statt allgemeiner Formel einordnen und gemeinsame Speicherseiten beachten.","source_ids":["S3","S4"],"internal_link_ids":[]},{"id":"replikation-speicher","heading":"Replikate brauchen eigene Budgets","part":1,"target_words":270,"purpose":"Primary und Replica als getrennte Speicherverbraucher erkl\u00e4ren: Datenkopie, abweichende Puffer und standardm\u00e4\u00dfig vom Primary gesteuerte Evictions. Promotion als eigenes Kapazit\u00e4tsszenario einf\u00fchren. Redis 7.0 und den geteilten Speicher von Backlog und Replica-Buffern nennen; mem_clients_slaves nicht isoliert deuten oder Bereiche doppelt addieren.","source_ids":["S3","S5"],"internal_link_ids":["I1"]},{"id":"metriken-erfassen","heading":"Speicher auf drei Ebenen erfassen","part":2,"target_words":270,"purpose":"Eine informative Tabelle zu used_memory, used_memory_rss, mem_not_counted_for_evict und Host- oder Containerverbrauch planen: Bedeutung, Beobachtungsebene und Interpretationsgrenze. Anschlie\u00dfend lesende Befehle INFO memory, INFO persistence, INFO replication und MEMORY STATS sowie versions- und angebotsabh\u00e4ngige Felder einordnen. Zeitreihen und repr\u00e4sentative Lastphasen statt einzelner Werte betonen.","source_ids":["S3","S5"],"internal_link_ids":[]},{"id":"budget-rechnen","heading":"Ein belastbares Speicherbudget berechnen","part":2,"target_words":280,"purpose":"Schrittweise von der tats\u00e4chlichen Grenze \u00fcber andere Verbraucher, zus\u00e4tzliche RSS-Effekte, nicht f\u00fcr Eviction gez\u00e4hlte Buffer, Persistenzspitzen und Sicherheitsabstand zu einem vorl\u00e4ufigen maxmemory gelangen. Ein ausdr\u00fccklich illustratives Zahlenbeispiel ohne Messbehauptung planen. Einheitliche Bezugsgr\u00f6\u00dfen, \u00dcberschneidungen und den Platz f\u00fcr Datensatz samt Redis-Overhead innerhalb des Budgets erkl\u00e4ren.","source_ids":["S2","S3","S4"],"internal_link_ids":[]},{"id":"eviction-vergleichen","heading":"Eviction-Policies im Praxisvergleich","part":2,"target_words":270,"purpose":"Eine Vergleichstabelle f\u00fcr noeviction, allkeys-lru und volatile-* mit Eignung, Verlustverhalten und Fehlerfall vorsehen. Cache, wichtige Daten und gemischten Bestand anhand konkreter Folgen unterscheiden; begrenzte TTL-Kandidaten und n\u00e4herungsweises LRU erl\u00e4utern. Session-Daten als Beispiel f\u00fcr bewusst zu bewertende Verlustfolgen einordnen.","source_ids":["S2","S6"],"internal_link_ids":["I3"]},{"id":"betrieb-ueberwachen","heading":"Reserve unter Last \u00fcberpr\u00fcfen","part":3,"target_words":270,"purpose":"Einen Ablauf f\u00fcr isolierte Tests unter vergleichbarer Last und anschlie\u00dfendes Monitoring planen: normale und gleichzeitige Schreib-, Persistenz- und Replikationsspitzen beobachten. INFO stats und Z\u00e4hler\u00e4nderungen mit Containerverbrauch, Evictions und OOM-Fehlern verkn\u00fcpfen. Kein Test als durchgef\u00fchrt darstellen; nach Last- und Rollen\u00e4nderungen neu dimensionieren.","source_ids":["S3","S4","S5","S6"],"internal_link_ids":[]},{"id":"fehler-diagnose","heading":"Speicherprobleme gezielt eingrenzen","part":3,"target_words":270,"purpose":"Eine Diagnosefolge f\u00fcr steigendes RSS, Redis-OOM und Container-OOM anhand von Verlauf, Allocator-Feldern, Persistenz und Replikation skizzieren. Einzelne Bufferwerte nicht als Spitzenreserve interpretieren. maxmemory-clients als gesonderten Schutz mit m\u00f6glichen Client-Trennungen erkl\u00e4ren, nicht als umfassende Begrenzung aller Replikationsverbindungen.","source_ids":["S3","S6","S7"],"internal_link_ids":[]},{"id":"hosting-entscheidung","heading":"Redis Hosting und Architektur abw\u00e4gen","part":3,"target_words":260,"purpose":"Abschlie\u00dfend Entscheidungskriterien f\u00fcr mehr RAM, Lastverteilung oder Architektur\u00e4nderungen gegen\u00fcberstellen, ohne Spitzenfreiheit zu versprechen. Anbietergrenzen, Metrikzugang und Einbeziehung von Replikaten pr\u00fcfen; Redis OSS, Redis Software und Redis Cloud ausdr\u00fccklich trennen. Das \u00fcber Primary- und Replica-Shards geltende Software-Datenbanklimit nicht auf OSS \u00fcbertragen.","source_ids":["S1","S4","S5"],"internal_link_ids":[]}]},"repairs":0,"reviews":1,"issues":[],"guard":{"content_md5":"9185ebad95cda99cf462486ef30cb309","title":"W\u0142a\u015bciwe dobranie warto\u015bci parametru maxmemory w Redis: rezerwy pami\u0119ci na dane i dzia\u0142anie systemu","slug":"wlasciwe-dobranie-wartosci-parametru-maxmemory-w-redis","excerpt":"Parametr `maxmemory` w Redis nie stanowi sztywnego limitu pami\u0119ci RAM. Dowiedz si\u0119, jak uwzgl\u0119dni\u0107 dane, replikacj\u0119, szczytowe obci\u0105\u017cenia zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych oraz limity kontener\u00f3w podczas planowania pami\u0119ci.","status":"draft","featured_media":22166},"verify":{"content_md5":"9185ebad95cda99cf462486ef30cb309","title":"W\u0142a\u015bciwe dobranie warto\u015bci parametru maxmemory w Redis: rezerwy pami\u0119ci na dane i dzia\u0142anie systemu","slug":"wlasciwe-dobranie-wartosci-parametru-maxmemory-w-redis","excerpt":"Parametr `maxmemory` w Redis nie stanowi sztywnego limitu pami\u0119ci RAM. Dowiedz si\u0119, jak uwzgl\u0119dni\u0107 dane, replikacj\u0119, szczytowe obci\u0105\u017cenia zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych oraz limity kontener\u00f3w podczas planowania pami\u0119ci.","status":"draft","featured_media":22166},"row_number":1937,"created_at":"2026-11-04T13:41:49+00:00","editorial_policy":{"version":"2.1.6","max_repairs":4,"review_model_from_attempt":2},"updated_at":"2026-11-04T13:46:43+00:00","verified_at":"2026-11-04T13:46:27+00:00"},"_wh_make_research":"# Recherchebriefing: Redis maxmemory richtig dimensionieren\n\nRecherchestand: 4. November 2026  \nGeplanter Umfang des Fachartikels: 2.400\u20132.700 W\u00f6rter\n\n## Leserfrage und Ziel\n\nWie gro\u00df darf `maxmemory` bei einer Redis-Instanz sein, damit Daten, Replikation, Clients und Persistenz auch unter Last gen\u00fcgend Speicher haben? Der Artikel soll zeigen, warum der Wert weder dem verf\u00fcgbaren RAM noch der reinen Nutzdatengr\u00f6\u00dfe entspricht und wie sich ein belastbares Budget aus Beobachtungen ableiten l\u00e4sst.\n\nZielgruppe sind Administratoren und Entwickler mit Grundkenntnissen in Redis und Linux. Vorausgesetzt werden Zugang zu lesenden Redis-Diagnosebefehlen und zu Metriken des Hosts beziehungsweise Containers. Der Schwerpunkt liegt auf Redis Open Source. Redis Software, Redis Cloud und Angebote f\u00fcr Redis Hosting m\u00fcssen getrennt betrachtet werden: Deren Speicherlimits und administrative M\u00f6glichkeiten k\u00f6nnen anders definiert sein. ([redis.io](https:\/\/redis.io\/docs\/latest\/operate\/rs\/databases\/memory-performance\/memory-limit\/?utm_source=openai))\n\n## Gesicherte Funktionsweise\n\n### Was `maxmemory` tats\u00e4chlich begrenzt\n\n`maxmemory` ist ein Schwellenwert f\u00fcr die Redis-Speichersteuerung, keine harte Obergrenze f\u00fcr den gesamten Prozess- oder Containerverbrauch. Bei speichervergr\u00f6\u00dfernden Befehlen pr\u00fcft Redis den Verbrauch und versucht gegebenenfalls, entsprechend der Eviction-Policy Schl\u00fcssel zu entfernen. Ein einzelner gro\u00dfer Befehl kann die Schwelle vor\u00fcbergehend deutlich \u00fcberschreiten. ([redis.io](https:\/\/redis.io\/docs\/latest\/develop\/reference\/eviction\/?utm_source=openai))\n\nF\u00fcr die Eviction werden bestimmte Speicheranteile nicht mitgerechnet. Dazu geh\u00f6ren insbesondere tempor\u00e4re Replikations- und AOF-Puffer. Redis weist ihren aktuellen Umfang mit `mem_not_counted_for_evict` aus. Dieser Wert schwankt; ein einzelner Messpunkt ist deshalb keine sichere Reservesch\u00e4tzung. Nicht alle Replikations- oder Client-Speicherbereiche d\u00fcrfen pauschal als \u201eau\u00dferhalb von maxmemory\u201c bezeichnet werden. ([redis.io](https:\/\/redis.io\/docs\/latest\/develop\/reference\/eviction\/?utm_source=openai))\n\nDie wichtige Abgrenzung f\u00fcr den Artikel:\n\n- `used_memory` beschreibt von Redis \u00fcber den Allocator belegten Speicher, nicht nur Nutzdaten.\n- `used_memory_rss` beschreibt den residenten Speicher des Redis-Prozesses aus Betriebssystemsicht.\n- `mem_not_counted_for_evict` ist ein in `used_memory` enthaltener Anteil, der f\u00fcr die Eviction-Pr\u00fcfung nicht ber\u00fccksichtigt wird.\n- Host- oder Containergrenzen betreffen mehr als die Eviction-Rechnung und gegebenenfalls mehr als den Redis-Hauptprozess. ([redis.io](https:\/\/redis.io\/docs\/latest\/commands\/info\/?utm_source=openai))\n\n### Warum RSS und Persistenz Reserve ben\u00f6tigen\n\nFreigegebener Redis-Speicher wird nicht zwingend sofort an das Betriebssystem zur\u00fcckgegeben. Nach Lastspitzen kann RSS deshalb hoch bleiben, obwohl `used_memory` gesunken ist. Das Verh\u00e4ltnis `mem_fragmentation_ratio` umfasst neben Fragmentierung auch weitere Prozessanteile; es ist kein reiner Fragmentierungsprozentsatz. F\u00fcr eine Diagnose geh\u00f6ren Verlauf, `allocator_*`-Metriken und Lastgeschichte zusammen. ([redis.io](https:\/\/redis.io\/docs\/latest\/commands\/info\/?utm_source=openai))\n\nBei RDB-Snapshots und AOF-Rewrites nutzt Redis einen Kindprozess und Copy-on-Write. Werden w\u00e4hrenddessen viele Speicherseiten ver\u00e4ndert, steigt der tats\u00e4chliche Speicherbedarf. Die Redis-Administration nennt f\u00fcr schreibintensive Anwendungen im Extrem bis zum Doppelten des normalerweise genutzten Speichers. Das ist eine Warnung f\u00fcr die Kapazit\u00e4tsplanung, kein pauschaler Multiplikator f\u00fcr jeden Betrieb. Prozess-RSS-Werte von Eltern- und Kindprozess d\u00fcrfen wegen gemeinsam genutzter Seiten nicht einfach addiert werden; f\u00fcr die Grenze ist die passende Host- oder Containerbeobachtung entscheidend. ([redis.io](https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/admin\/?utm_source=openai))\n\n### Replikation gesondert planen\n\nEin Replica h\u00e4lt grunds\u00e4tzlich eine Kopie des Datenbestands und ben\u00f6tigt daher eigenes RAM. Standardm\u00e4\u00dfig ignoriert ein Replica `maxmemory` f\u00fcr eigene Evictions; der Primary entscheidet \u00fcber Evictions und repliziert die L\u00f6schungen. Ein Replica kann dennoch mehr Speicher als sein konfigurierter Wert ben\u00f6tigen, etwa durch unterschiedliche Buffer oder Datenstrukturen. Nach einer Promotion \u00e4ndert sich seine Rolle: Die Dimensionierung muss auch den Betrieb als Primary ber\u00fccksichtigen. ([redis.io](https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/replication\/?utm_source=openai))\n\nSeit Redis 7.0 teilen Replica-Buffer Speicher mit dem Replikations-Backlog. `mem_clients_slaves` kann daher null anzeigen, ohne dass Replikation keinen Speicher verbraucht. Backlog und Replica-Buffer nicht anhand einzelner Felder doppelt addieren. ([redis.io](https:\/\/redis.io\/docs\/latest\/commands\/info\/?utm_source=openai))\n\n## Dimensionierung als Arbeitsmodell\n\nF\u00fcr jede Instanz beziehungsweise jeden Container zuerst die tats\u00e4chlich verf\u00fcgbare Speichergrenze bestimmen. Davon werden Reserven f\u00fcr andere Prozesse und Betriebssystemanteile, zus\u00e4tzliche RSS-\/Allocator-Effekte, nicht f\u00fcr Eviction gez\u00e4hlte Buffer, Persistenzspitzen und Sicherheitsabstand abgeleitet. \u00dcbrig bleibt ein vorl\u00e4ufiges `maxmemory`-Budget.\n\nDiese Rechnung ist ein Planungsmodell, keine Redis-interne Gleichung. Komponenten m\u00fcssen auf derselben Bezugsgr\u00f6\u00dfe beruhen und d\u00fcrfen nicht doppelt gez\u00e4hlt werden. Insbesondere ist `mem_not_counted_for_evict` bereits Teil von `used_memory`; wer mit dem beobachteten gesamten RSS oder Containerverbrauch rechnet, darf ihn nicht nochmals ungepr\u00fcft addieren. Gleichzeitig muss das resultierende Budget gen\u00fcgend Platz f\u00fcr Datensatz und Redis-Overhead innerhalb der Eviction-Rechnung lassen. ([redis.io](https:\/\/redis.io\/docs\/latest\/commands\/info\/?utm_source=openai))\n\nSinnvolle Vorgehensweise f\u00fcr den Artikel:\n\n1. Host-, Container- und Anbietergrenzen sowie andere Verbraucher erfassen.\n2. \u00dcber repr\u00e4sentative Zeitr\u00e4ume Normalbetrieb, Schreibspitzen und Persistenzl\u00e4ufe beobachten.\n3. Primary und jedes Replica separat auswerten; Failover-Szenario einbeziehen.\n4. Einen vorl\u00e4ufigen Wert mit Reserve festlegen und in einer isolierten Testumgebung unter vergleichbarer Last pr\u00fcfen.\n5. Auslastung, Evictions, OOM-Fehler und tats\u00e4chlichen Speicherverbrauch dauerhaft \u00fcberwachen und das Budget nach Last\u00e4nderungen neu bewerten.\n\n## Relevante Praxisf\u00e4lle und Entscheidungen\n\n**Reiner Cache:** Sind alle Daten aus einer anderen Quelle wiederherstellbar, kann `allkeys-lru` eine passende Wahl sein. Evictions sind dann Teil des Betriebs; steigende Evictions k\u00f6nnen aber Cache-Trefferrate und Backend-Last verschlechtern. LRU und LFU arbeiten n\u00e4herungsweise, nicht als exakte globale Sortierung. ([redis.io](https:\/\/redis.io\/docs\/latest\/develop\/reference\/eviction\/?utm_source=openai))\n\n**Nicht beliebig l\u00f6schbare Daten:** Bei `noeviction` entfernt Redis keine Schl\u00fcssel, um Platz zu schaffen. Speichervergr\u00f6\u00dfernde Schreibbefehle k\u00f6nnen mit OOM-Fehlern scheitern; die Anwendung braucht daf\u00fcr eine Fehlerstrategie. `noeviction` ist weder Persistenz noch eine Garantie gegen Betriebssystem-OOM. ([redis.io](https:\/\/redis.io\/docs\/latest\/develop\/reference\/errors\/common\/oom\/?utm_source=openai))\n\n**Gemischter Datenbestand:** `volatile-*`-Policies w\u00e4hlen nur Schl\u00fcssel mit Ablaufzeit aus. Gibt es keine geeigneten Schl\u00fcssel mehr, kann Redis wie bei `noeviction` keine ausreichende Kapazit\u00e4t freimachen. Ob eine gemeinsame Instanz f\u00fcr Cache und wichtige Daten sinnvoll ist, h\u00e4ngt daher auch von TTL-Disziplin und Fehlertoleranz ab. ([redis.io](https:\/\/redis.io\/docs\/latest\/develop\/reference\/eviction\/?utm_source=openai))\n\n**Schreiblast mit Persistenz und Replikation:** Hier m\u00fcssen Buffer-Schwankungen und Copy-on-Write-Spitzen gemeinsam in realistischen Zeitfenstern betrachtet werden. Als Alternative zu einer gr\u00f6\u00dferen Reserve kommen mehr RAM, Lastverteilung oder eine Anpassung der Architektur infrage; keine Ma\u00dfnahme beseitigt automatisch alle Spitzen. ([redis.io](https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/admin\/?utm_source=openai))\n\n**Redis Hosting:** Pr\u00fcfen, ob der Anbieter eine Instanzgrenze, Containergrenze oder ein anders definiertes Datenbanklimit ausweist, welche Metriken verf\u00fcgbar sind und ob Replikate im gebuchten Speicher enthalten sind. Redis-Software-Datenbanklimits beispielsweise gelten \u00fcber Primary- und Replica-Shards hinweg; das darf nicht ungepr\u00fcft auf Redis OSS \u00fcbertragen werden. ([redis.io](https:\/\/redis.io\/docs\/latest\/operate\/rs\/databases\/memory-performance\/memory-limit\/?utm_source=openai))\n\n## Sichere Diagnosebeispiele\n\nDie folgenden Beispiele sind lesend; sie ver\u00e4ndern keine Konfiguration. Ausgabe und verf\u00fcgbare Felder h\u00e4ngen von Version, Berechtigungen und Hosting-Angebot ab.\n\nRedis-CLI: `INFO memory`  \nF\u00fcr `used_memory`, `used_memory_rss`, `maxmemory`, `maxmemory_policy` und `mem_not_counted_for_evict`.\n\nRedis-CLI: `INFO stats`  \nF\u00fcr Betriebsz\u00e4hler wie Evictions; \u00c4nderungen \u00fcber die Zeit sind aussagekr\u00e4ftiger als ein isolierter Z\u00e4hlerstand.\n\nRedis-CLI: `INFO persistence`  \nZur Einordnung von Persistenzaktivit\u00e4t und verf\u00fcgbaren Copy-on-Write-Metriken.\n\nRedis-CLI: `INFO replication`  \nZur Pr\u00fcfung der Rolle und des Replikationszustands.\n\nRedis-CLI: `MEMORY STATS`  \nF\u00fcr zus\u00e4tzliche Einblicke in die Speicherverteilung. Die Interpretation der Felder muss zur eingesetzten Version passen. ([redis.io](https:\/\/redis.io\/docs\/latest\/commands\/info\/?utm_source=openai))\n\nBei vielen Clients kann `maxmemory-clients` als separate Schutzma\u00dfnahme relevant sein: Redis kann dann Clients mit hohem Speicherverbrauch trennen. Das ist keine Begrenzung f\u00fcr alle Replikationsverbindungen und ersetzt keine Gesamtbudgetierung. ([redis.io](https:\/\/redis.io\/docs\/latest\/develop\/reference\/clients\/?utm_source=openai))\n\n## Typische Fehler und Tabellenplanung\n\nEine Tabelle sollte die Metriken, ihre Bedeutung, ihre Grenzen und die jeweils passende Beobachtungsebene gegen\u00fcberstellen: Redis-Allocator, Prozess-RSS sowie Host oder Container. Eine zweite Tabelle kann `noeviction`, `allkeys-lru` und eine `volatile-*`-Policy anhand von Eignung, Verlustverhalten und Fehlerfall vergleichen.\n\nZu vermeiden sind insbesondere:\n\n- `maxmemory` auf das gesamte Containerlimit setzen.\n- `used_memory` mit reinen Nutzdaten gleichsetzen.\n- Einen aktuellen Bufferwert als dauerhaften Spitzenwert verwenden.\n- Fragmentierungsquote oder Copy-on-Write pauschal als festen Prozentsatz annehmen.\n- Replikate und Failover nicht separat dimensionieren.\n- `volatile-*` w\u00e4hlen, ohne ausreichend Schl\u00fcssel mit TTL zu haben.\n- Redis OSS, Redis Software und Hosting-Grenzen vermischen.\n\nEin Chart ist auf Basis dieser Recherche nicht erforderlich: Es liegen keine geeigneten workloadbezogenen Messreihen vor. Falls sp\u00e4ter ein Zahlenbeispiel erg\u00e4nzt wird, muss es ausdr\u00fccklich als illustrativ und nicht als Messung gekennzeichnet sein.\n\n## Quelldokumente f\u00fcr die sp\u00e4tere Ausarbeitung\n\n- Redis-Dokumentation, \u201eKey eviction\u201c: Schwelle, Buffer und Policies. ([redis.io](https:\/\/redis.io\/docs\/latest\/develop\/reference\/eviction\/?utm_source=openai))\n- Redis-Befehlsreferenz, \u201eINFO\u201c: Definition und Versionshinweise der Speicherfelder. ([redis.io](https:\/\/redis.io\/docs\/latest\/commands\/info\/?utm_source=openai))\n- Redis-Dokumentation, \u201eRedis replication\u201c: Replica-Verhalten und `maxmemory`. ([redis.io](https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/replication\/?utm_source=openai))\n- Redis-Dokumentation, \u201eRedis administration\u201c und \u201eRedis persistence\u201c: Speicherreserve, Fork und Copy-on-Write. ([redis.io](https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/admin\/?utm_source=openai))\n\nF\u00fcr den Folgeartikel sollten die tats\u00e4chlich eingesetzte Redis-Version und die Anbietergrenzen nochmals konkret gepr\u00fcft werden. Es wurden keine bestehenden S- oder I-Kennungen mitgeliefert; daher werden hier keine erfunden.","_wh_make_sources":{"S1":{"id":"S1","url":"https:\/\/redis.io\/docs\/latest\/operate\/rs\/databases\/memory-performance\/memory-limit\/?utm_source=openai","title":"Limity pami\u0119ci bazy danych | Dokumentacja"},"S2":{"id":"S2","url":"https:\/\/redis.io\/docs\/latest\/develop\/reference\/eviction\/?utm_source=openai","title":"Wykluczenie klucza | Dokumentacja"},"S3":{"id":"S3","url":"https:\/\/redis.io\/docs\/latest\/commands\/info\/?utm_source=openai","title":"INFO | Dokumenty"},"S4":{"id":"S4","url":"https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/admin\/?utm_source=openai","title":"Administracja Redis | Dokumentacja"},"S5":{"id":"S5","url":"https:\/\/redis.io\/docs\/latest\/operate\/oss_and_stack\/management\/replication\/?utm_source=openai","title":"Replikacja Redis | Dokumentacja"},"S6":{"id":"S6","url":"https:\/\/redis.io\/docs\/latest\/develop\/reference\/errors\/common\/oom\/?utm_source=openai","title":"B\u0142\u0105d OOM | Dokumentacja"},"S7":{"id":"S7","url":"https:\/\/redis.io\/docs\/latest\/develop\/reference\/clients\/?utm_source=openai","title":"Obs\u0142uga klienta Redis | Dokumentacja"}},"_wh_make_usage":{"research":{"input_tokens":13202,"output_tokens":2662,"response_id":"resp_0477cf8546c3325b016aeb361fbf2087d2a37241280dfd8478","model":"gpt-6.1-terra","search_calls":1},"plan_56a538c4b74c5f95a41bc250d37cbf22":{"input_tokens":5783,"output_tokens":1203,"response_id":"resp_0e7a3fa2e1c42137016aeb36476aec87d2b4c4667932c83f07","model":"gpt-6.1-terra","search_calls":0},"part1_705a7dfceba1d20df0f23b9fd2ae4a0c":{"input_tokens":8201,"output_tokens":1923,"response_id":"resp_0bc3f07cf1a8f493016aeb36595bd487d2827ee38c8f05879b","model":"gpt-6.1-terra","search_calls":0},"part2_b135231ad0c155adefc805c017852707":{"input_tokens":8225,"output_tokens":2260,"response_id":"resp_05d2c49f94323075016aeb3674b4b087d2917adeb784fefbd9","model":"gpt-6.1-terra","search_calls":0},"part3_53003776155a329a5e0f6f11290878cb":{"input_tokens":8222,"output_tokens":1852,"response_id":"resp_0503a8e3a6ebef82016aeb3690917087d2a078154aa4bb1e0c","model":"gpt-6.1-terra","search_calls":0},"package_8a16a91cd2f5131ca4c9353d525810d4":{"input_tokens":15729,"output_tokens":1660,"response_id":"resp_0fedc2bfbf6dc272016aeb36afcbd087d2b8414f8ff3d2af49","model":"gpt-6.1-terra","search_calls":0},"review_afcdaa6816fc080ec4fc305a2d31d891":{"input_tokens":34638,"output_tokens":595,"response_id":"resp_03f06b524515eecf016aeb36c6a09087d2a26a9f97cb56a45e","model":"gpt-6.1-sol","search_calls":3},"image_hero":{"input_tokens":190,"output_tokens":1372,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0},"image_detail1":{"input_tokens":169,"output_tokens":1372,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0},"image_detail2":{"input_tokens":175,"output_tokens":1372,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0}},"_wh_make_last_error":"","_wh_make_write_intent":{"before":{"content_md5":"2bd8a87de070ea1b93a15bc536191e5f","title":"W\u0142a\u015bciwe dobranie warto\u015bci parametru maxmemory w Redis: rezerwy pami\u0119ci na dane i dzia\u0142anie systemu","slug":"wlasciwe-dobranie-wartosci-parametru-maxmemory-w-redis","excerpt":"Parametr `maxmemory` w Redis nie stanowi sztywnego limitu pami\u0119ci RAM. Dowiedz si\u0119, jak uwzgl\u0119dni\u0107 dane, replikacj\u0119, szczytowe obci\u0105\u017cenia zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych oraz limity kontener\u00f3w podczas planowania pami\u0119ci.","status":"draft","featured_media":0},"expected":{"content_md5":"9185ebad95cda99cf462486ef30cb309","title":"W\u0142a\u015bciwe dobranie warto\u015bci parametru maxmemory w Redis: rezerwy pami\u0119ci na dane i dzia\u0142anie systemu","slug":"wlasciwe-dobranie-wartosci-parametru-maxmemory-w-redis","excerpt":"Parametr `maxmemory` w Redis nie stanowi sztywnego limitu pami\u0119ci RAM. Dowiedz si\u0119, jak uwzgl\u0119dni\u0107 dane, replikacj\u0119, szczytowe obci\u0105\u017cenia zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych oraz limity kontener\u00f3w podczas planowania pami\u0119ci.","status":"draft","featured_media":22166},"at":"2026-11-04T13:46:15+00:00"},"_wh_make_design_version":"2.1.19","rank_math_title":"Redis maxmemory richtig dimensionieren","_wh_make_doc":{"title":"W\u0142a\u015bciwe dobranie warto\u015bci parametru maxmemory w Redis: rezerwy pami\u0119ci na dane i dzia\u0142anie systemu","slug":"wlasciwe-dobranie-wartosci-parametru-maxmemory-w-redis","excerpt":"Parametr `maxmemory` w Redis nie stanowi sztywnego limitu pami\u0119ci RAM. Dowiedz si\u0119, jak uwzgl\u0119dni\u0107 dane, replikacj\u0119, szczytowe obci\u0105\u017cenia zwi\u0105zane z trwa\u0142o\u015bci\u0105 danych oraz limity kontener\u00f3w podczas planowania pami\u0119ci.","seo":{"title":"W\u0142a\u015bciwe dobranie warto\u015bci parametru maxmemory w Redis","description":"Planowanie parametru `maxmemory` w Redis z uwzgl\u0119dnieniem rezerwy: zrozumienie warto\u015bci pami\u0119ci, uwzgl\u0119dnienie replik oraz sprawdzenie szczyt\u00f3w zapisu przy du\u017cym obci\u0105\u017ceniu.","focus_keyword":"redis maxmemory"},"lead":[{"kind":"text","text":"Setze ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" nicht mit dem verf\u00fcgbaren RAM gleich: Der Wert steuert die Eviction, begrenzt aber nicht den gesamten Prozess- oder Containerverbrauch. Plane neben Daten und Redis-Overhead auch Platz f\u00fcr Buffer, Allocator-Effekte und Persistenzspitzen ein. ","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"text","text":"Ein belastbarer Ausgangswert entsteht aus der ","ref":""},{"kind":"strong","text":"tats\u00e4chlichen Speichergrenze","ref":""},{"kind":"text","text":" und Verbrauchsverl\u00e4ufen unter repr\u00e4sentativer Last. Werte Primary und Replikate getrennt aus und \u00fcberpr\u00fcfe das Budget auch f\u00fcr einen m\u00f6glichen Rollenwechsel.","ref":""},{"kind":"citation","text":"","ref":"S5"}],"images":{"hero":{"prompt":"Sachliche redaktionelle Illustration zur Redis-Speicherplanung: Auf einer dunklen, matten Fl\u00e4che verlaufen zwei ungleich gro\u00dfe, ineinanderliegende geschlossene Konturen. Die innere Kontur steht sinnbildlich f\u00fcr die Eviction-Schwelle, der Raum bis zur \u00e4u\u00dferen Kontur f\u00fcr zus\u00e4tzlich ben\u00f6tigte Speicherreserve. Einige flache, unterschiedlich strukturierte Farbfl\u00e4chen \u00fcberlagern die innere Grenze und machen deutlich, dass beide Grenzen nicht identisch sind. Grafische Ansicht direkt von oben, reduzierte Formen in gedecktem Rostrot, Creme und Anthrazit, keine r\u00e4umlichen Beh\u00e4lter, keine Menschen. Keine Texte, Zahlen, Logos, Messwerte oder Wasserzeichen.","alt":"KI-generierte Illustration zweier ineinanderliegender Grenzen als Sinnbild f\u00fcr Eviction-Schwelle und Speicherreserve.","caption":"KI-generierte Illustration: Die Eviction-Schwelle l\u00e4sst sich nicht mit der \u00e4u\u00dferen Speichergrenze gleichsetzen.","filename_base":"redis-maxmemory-speichergrenzen-illustration","section_id":"","after_block":0},"detail1":{"prompt":"Fotografisches KI-generiertes Symbolbild zur physischen RAM-Kapazit\u00e4t: Ein einzelnes ausgebautes Arbeitsspeichermodul liegt schr\u00e4g auf einer leicht gebrauchten antistatischen Unterlage an einem schlichten Werkstattplatz. Nahaufnahme aus niedriger seitlicher Perspektive, Leiterplatte und Speicherchips plausibel erkennbar, ohne bestimmte Marke oder Produktvariante zu behaupten. Nat\u00fcrliches seitliches Tageslicht, matte Materialien und kleine Alltagsspuren, keine Menschen und keine Hochglanzbeleuchtung. Keine lesbaren Beschriftungen, Zahlen, Logos oder Wasserzeichen.","alt":"KI-generiertes Symbolbild eines ausgebauten RAM-Moduls auf einer antistatischen Unterlage.","caption":"KI-generiertes Symbolbild: Physischer Arbeitsspeicher bildet die Grundlage, ersetzt aber nicht die Planung von Persistenzreserven.","filename_base":"redis-persistenz-ram-reserve","section_id":"rss-und-persistenz","after_block":4},"detail2":{"prompt":"Sachliche redaktionelle Illustration zur Redis-Replikation: Zwei getrennte, unterschiedlich gro\u00dfe matte Rechteckfl\u00e4chen liegen nebeneinander auf hellem Hintergrund. In jeder Fl\u00e4che befindet sich eine \u00e4hnliche Gruppe kleiner geometrischer Formen als Sinnbild f\u00fcr kopierte Daten; weitere ungleiche Formen stehen f\u00fcr den jeweils eigenen Betriebsbedarf. Eine schlichte Verbindung zwischen den Fl\u00e4chen deutet die Replikation an, ohne einen exakten Speicherverbrauch oder eine technische Topologie zu behaupten. Weite asymmetrische Draufsicht, gedeckte Gr\u00fcn- und Erdt\u00f6ne, keine Menschen. Keine Texte, Zahlen, Logos, Diagrammachsen oder Wasserzeichen.","alt":"KI-generierte Illustration zweier verbundener Instanzen mit \u00e4hnlichen Datenformen und unterschiedlichem zus\u00e4tzlichem Speicherbedarf.","caption":"KI-generierte Illustration: Primary und Replica halten Datenkopien, ben\u00f6tigen aber jeweils ein eigenes Speicherbudget.","filename_base":"redis-replikation-eigene-speicherbudgets","section_id":"replikation-speicher","after_block":2}},"chart":null,"social":{"facebook":"Wie viel RAM braucht Redis neben den eigentlichen Daten? Der Leitfaden erkl\u00e4rt maxmemory, Replikationspuffer und Persistenzspitzen und zeigt, wie du eine Reserve planst.","instagram":"Redis maxmemory ist keine harte RAM-Grenze. Plane auch Replikate, Buffer und Persistenzspitzen ein \u2013 und pr\u00fcfe deine Reserve unter passender Last.","tiktok":"Redis bis zum Containerlimit bef\u00fcllen? Keine gute Speicherplanung. Erfahre, warum maxmemory Reserve f\u00fcr Buffer und Persistenz braucht.","youtube":"Redis maxmemory dimensionieren: So unterscheiden sich Eviction-Schwelle, Prozessspeicher und Containerlimit. Dazu: Replikation, Copy-on-Write und Monitoring.","threads":"maxmemory begrenzt nicht den gesamten Redis-Prozess. Entscheidend sind auch Buffer, Persistenzspitzen und die tats\u00e4chliche Containergrenze.","x":"Redis maxmemory ist keine harte RAM-Grenze. Plane Reserve f\u00fcr Buffer, RSS-Effekte und Persistenzspitzen ein und bewerte jedes Replica separat."},"avatar_script":"Wie gro\u00df darf maxmemory bei Redis sein? Nicht einfach so gro\u00df wie der verf\u00fcgbare Arbeitsspeicher. Die Einstellung steuert die Eviction, begrenzt aber nicht den gesamten Verbrauch des Prozesses oder Containers. Plane deshalb Platz f\u00fcr Redis-Overhead, schwankende Buffer und zus\u00e4tzliche Speicherseiten w\u00e4hrend der Persistenz ein. Miss den Verbrauch \u00fcber normale Last und Schreibspitzen hinweg und beobachte dabei auch die tats\u00e4chliche Containergrenze. Replikate brauchen eigene Budgets: Sie halten eine Datenkopie und m\u00fcssen nach einer Promotion auch als Primary funktionieren. Aus diesen Beobachtungen leitest du einen vorl\u00e4ufigen Wert ab und pr\u00fcfst ihn in einer isolierten Umgebung unter vergleichbarer Last. \u00dcberwache anschlie\u00dfend Evictions, Schreibfehler und den Abstand zur Speichergrenze.","version_note":"Recherche und Produktabgrenzung auf Stand 4. November 2026. Beispiele beziehen sich auf Redis Open Source; verf\u00fcgbare Metriken und Hosting-Grenzen h\u00e4ngen von Version und Anbieter ab.","sections":[{"id":"maxmemory-grundlagen","heading":"Was maxmemory tats\u00e4chlich begrenzt","blocks":[{"type":"paragraph","runs":[{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" legt in Redis Open Source eine ","ref":""},{"kind":"strong","text":"Eviction-Schwelle","ref":""},{"kind":"text","text":" fest, keine harte Obergrenze f\u00fcr den Redis-Prozess oder seinen Container. Erreicht der f\u00fcr die Speichersteuerung relevante Verbrauch die Schwelle, versucht Redis abh\u00e4ngig von der gew\u00e4hlten Policy Schl\u00fcssel zu entfernen. Bei einer Policy ohne Eviction k\u00f6nnen speichervergr\u00f6\u00dfernde Schreibbefehle stattdessen fehlschlagen.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Kennzahl ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" umfasst den von Redis \u00fcber seinen Allocator belegten Speicher. Dazu geh\u00f6ren nicht nur die eigentlichen Werte deiner Anwendung, sondern auch Verwaltungsstrukturen und weitere Redis-Speicherbereiche. Wer das Limit allein aus der gesch\u00e4tzten Gr\u00f6\u00dfe der Nutzdaten ableitet, l\u00e4sst diesen Overhead unber\u00fccksichtigt.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein Teil von ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" wird bei der Eviction-Pr\u00fcfung ausgenommen: ","ref":""},{"kind":"code","text":"mem_not_counted_for_evict","ref":""},{"kind":"text","text":" weist insbesondere tempor\u00e4re Replikations- und AOF-Puffer aus. Diese Puffer ben\u00f6tigen trotzdem realen Speicher. Der Wert ist bereits in ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" enthalten und darf deshalb nicht ohne Pr\u00fcfung ein zweites Mal zu dieser Kennzahl addiert werden.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Daraus folgt nicht, dass s\u00e4mtliche Client- oder Replikationsspeicher au\u00dferhalb der Eviction-Rechnung liegen. Ein einzelner gro\u00dfer Befehl kann die Schwelle zudem vor\u00fcbergehend deutlich \u00fcberschreiten. Setzt du ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" auf das volle Containerlimit, bleibt f\u00fcr solche Ausschl\u00e4ge und zus\u00e4tzlichen Prozessverbrauch kein verl\u00e4sslicher Spielraum.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr die Planung sind daher zwei Fragen getrennt zu beantworten: Wie viel Platz brauchen Datensatz und Redis-Overhead innerhalb der Speichersteuerung? Und wie viel Reserve ben\u00f6tigt die gesamte Laufzeitumgebung dar\u00fcber hinaus? Erst beide Perspektiven zusammen zeigen, ob ein gew\u00e4hlter Wert unter der tats\u00e4chlichen Speichergrenze plausibel ist.","ref":""}]}]},{"id":"rss-und-persistenz","heading":"RSS, Allocator und Persistenzspitzen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Nach einer Lastspitze kann ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" sinken, w\u00e4hrend ","ref":""},{"kind":"code","text":"used_memory_rss","ref":""},{"kind":"text","text":" hoch bleibt: Redis hat dann zwar Speicher \u00fcber den Allocator freigegeben, dieser wurde aber nicht zwingend sofort an das Betriebssystem zur\u00fcckgegeben. RSS beschreibt den residenten Speicher des Prozesses aus Betriebssystemsicht und ist deshalb eine andere Beobachtungsebene.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Angenommen, ein Cache w\u00e4chst w\u00e4hrend einer Aktion stark und viele Schl\u00fcssel laufen danach ab. Der kleinere Redis-Speicherwert bedeutet nicht automatisch, dass der Container sofort entsprechend viel freie Reserve zur\u00fcckerh\u00e4lt. F\u00fcr die n\u00e4chste Spitze ist daher der Verlauf des tats\u00e4chlichen Verbrauchs wichtiger als die Annahme, dass freigegebener Speicher unmittelbar verschwindet.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch ","ref":""},{"kind":"code","text":"mem_fragmentation_ratio","ref":""},{"kind":"text","text":" ist kein reiner Fragmentierungsprozentsatz. Das Verh\u00e4ltnis umfasst weitere Prozessanteile; f\u00fcr die Ursachenanalyse solltest du es zusammen mit den verf\u00fcgbaren ","ref":""},{"kind":"code","text":"allocator_*","ref":""},{"kind":"text","text":"-Metriken und der Lastgeschichte betrachten. Aus einem einzelnen Verh\u00e4ltnis l\u00e4sst sich keine allgemein g\u00fcltige Reserve ableiten.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei RDB-Snapshots und AOF-Rewrites erzeugt Redis einen Kindprozess. Durch ","ref":""},{"kind":"strong","text":"Copy-on-Write","ref":""},{"kind":"text","text":" k\u00f6nnen zus\u00e4tzlich physische Speicherseiten ben\u00f6tigt werden, wenn w\u00e4hrend des Persistenzlaufs Seiten ver\u00e4ndert werden. Je st\u00e4rker und breiter die Schreiblast w\u00e4hrenddessen ist, desto wichtiger ist es, diese Phase bei der Kapazit\u00e4tsplanung zu beobachten.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Redis-Administration nennt f\u00fcr schreibintensive Anwendungen im Extrem einen Bedarf bis zum Doppelten des normalerweise genutzten Speichers. Das ist eine Warnung f\u00fcr ung\u00fcnstige Lastverh\u00e4ltnisse, kein pauschaler Multiplikator. Addiere au\u00dferdem nicht einfach die RSS-Werte von Eltern- und Kindprozess: Gemeinsam genutzte Seiten w\u00fcrden mehrfach gez\u00e4hlt; relevant ist die passende Host- oder Containerbeobachtung.","ref":""},{"kind":"citation","text":"","ref":"S4"}]}]},{"id":"replikation-speicher","heading":"Replikate brauchen eigene Budgets","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Ein Replica h\u00e4lt grunds\u00e4tzlich eine Kopie des Datenbestands und ben\u00f6tigt daf\u00fcr eigenes RAM. Primary und Replica sind deshalb getrennte Speicherverbraucher: Eine Reserve auf dem Primary schafft keinen Platz im Container des Replica. Plane jedes Mitglied anhand seiner eigenen Grenze und seines beobachteten Verbrauchs.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Standardm\u00e4\u00dfig ignoriert ein Replica sein konfiguriertes ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" f\u00fcr eigene Evictions. Der Primary entscheidet \u00fcber das Entfernen von Schl\u00fcsseln und repliziert die L\u00f6schungen. Trotzdem k\u00f6nnen sich die Speicherst\u00e4nde unterscheiden, etwa wegen abweichender Puffer oder Datenstrukturen; derselbe Grenzwert garantiert daher keine identische Auslastung.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer ","ref":""},{"kind":"strong","text":"Promotion","ref":""},{"kind":"text","text":" \u00fcbernimmt das fr\u00fchere Replica die Primary-Rolle. Pr\u00fcfe deshalb nicht nur, ob es als lesende Kopie gen\u00fcgend Platz hat, sondern auch, ob seine Speichergrenze und Konfiguration den Betrieb als Primary tragen. Dazu geh\u00f6ren insbesondere Schreiblast, Replikationsverbindungen und die dann geltende Eviction-Steuerung.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Seit Redis 7.0 teilen sich Replica-Buffer und Replikations-Backlog Speicher. ","ref":""},{"kind":"code","text":"mem_clients_slaves","ref":""},{"kind":"text","text":" kann deshalb null anzeigen, obwohl die Replikation Speicher beansprucht. Interpretiere das Feld nicht isoliert und addiere Backlog und Replica-Buffer nicht ungepr\u00fcft als vollst\u00e4ndig getrennte Bereiche.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Neben dem Speicherverbrauch ist der Fortschritt der Daten\u00fcbertragung f\u00fcr den Betrieb relevant: Eine Verz\u00f6gerung zeigt eine andere Eigenschaft als die Gr\u00f6\u00dfe eines Puffers. Wie sich Replikationsstand und R\u00fcckstand einordnen lassen, erkl\u00e4rt der Beitrag zum ","ref":""},{"kind":"internal_link","text":"Redis Replication Offset","ref":"I1"},{"kind":"text","text":". F\u00fcr die Speicherreserve bleiben dennoch die tats\u00e4chlichen Verbrauchsverl\u00e4ufe jeder Instanz entscheidend.","ref":""}]}]},{"id":"metriken-erfassen","heading":"Speicher auf drei Ebenen erfassen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr die Dimensionierung brauchst du Werte aus Redis und von der Umgebung, in der die Instanz l\u00e4uft. Die ","ref":""},{"kind":"strong","text":"Beobachtungsebene","ref":""},{"kind":"text","text":" entscheidet dar\u00fcber, was eine Zahl aussagt: Allocator-Belegung, Prozess-RSS und Containerverbrauch sind unterschiedliche Gr\u00f6\u00dfen und lassen sich nicht einfach addieren.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"table","caption":"Speicherwerte und ihre Aussagegrenzen","headers":["Gr\u00f6\u00dfe","Ebene und Bedeutung","Grenze der Interpretation"],"rows":[["used_memory","Von Redis \u00fcber den Allocator belegter Speicher","Enth\u00e4lt Redis-Overhead und ist nicht identisch mit den reinen Nutzdaten."],["used_memory_rss","Residenter Speicher des Redis-Prozesses aus Betriebssystemsicht","Kann nach Lastspitzen hoch bleiben; ist nicht mit used_memory gleichzusetzen."],["mem_not_counted_for_evict","Anteil von used_memory, der bei der Eviction-Pr\u00fcfung ausgenommen wird","Schwankt und ist bereits in used_memory enthalten."],["Host- oder Containerverbrauch","Verbrauch an der relevanten Betriebsgrenze","Kann neben Redis weitere Verbraucher umfassen; die Definition h\u00e4ngt von der Umgebung ab."]],"source_ids":["S3"]},{"type":"paragraph","runs":[{"kind":"text","text":"Mit ","ref":""},{"kind":"code","text":"INFO memory","ref":""},{"kind":"text","text":" liest du unter anderem die Redis-Speicherwerte und die konfigurierte Policy. ","ref":""},{"kind":"code","text":"MEMORY STATS","ref":""},{"kind":"text","text":" erg\u00e4nzt Details zur Speicherverteilung. Beide Befehle sind lesend; welche Felder verf\u00fcgbar sind, h\u00e4ngt von Redis-Version, Berechtigungen und Hosting-Angebot ab.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr den zeitlichen Zusammenhang pr\u00fcfst du au\u00dferdem ","ref":""},{"kind":"code","text":"INFO persistence","ref":""},{"kind":"text","text":" auf Persistenzaktivit\u00e4t und verf\u00fcgbare Copy-on-Write-Werte. ","ref":""},{"kind":"code","text":"INFO replication","ref":""},{"kind":"text","text":" zeigt Rolle und Replikationszustand. Erfasse diese Angaben f\u00fcr Primary und Replica getrennt, damit ein Rollenwechsel oder eine Synchronisation bei der Auswertung erkennbar bleibt.","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein einzelner Wert zeigt weder die typische Auslastung noch die notwendige Spitzenreserve. Sammle deshalb Zeitreihen \u00fcber normalen Betrieb, Schreibspitzen und Persistenzl\u00e4ufe und ordne ihnen den gleichzeitig beobachteten Host- oder Containerverbrauch zu. So erkennst du auch, ob ein hoher RSS-Wert eine aktuelle Last begleitet oder nach einer fr\u00fcheren Spitze bestehen bleibt.","ref":""},{"kind":"citation","text":"","ref":"S3"}]}]},{"id":"budget-rechnen","heading":"Ein belastbares Speicherbudget berechnen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Ausgangspunkt ist die tats\u00e4chlich wirksame ","ref":""},{"kind":"strong","text":"Speichergrenze","ref":""},{"kind":"text","text":": Bei einem Container kann sie niedriger sein als der RAM des Hosts. Ermittle, welche anderen Prozesse und Betriebsanteile dieselbe Grenze beanspruchen. Was ihnen vorbehalten ist, steht Redis nicht f\u00fcr Daten oder Spitzen zur Verf\u00fcgung.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ziehe anschlie\u00dfend Reserven f\u00fcr zus\u00e4tzliche RSS- und Allocator-Effekte, nicht f\u00fcr Eviction gez\u00e4hlte Buffer, Persistenzspitzen und einen Sicherheitsabstand ab. Das Ergebnis ist ein vorl\u00e4ufiges ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":"-Budget, keine Redis-interne Gleichung. Die Reserven m\u00fcssen zur gleichen Grenze und zu realistisch gleichzeitig auftretenden Lastzust\u00e4nden passen.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Illustratives Rechenbeispiel, keine Messung: Von einer Containergrenze von 8 GiB werden 0,5 GiB f\u00fcr andere Verbraucher, 0,5 GiB f\u00fcr zus\u00e4tzliche RSS-Effekte, 0,5 GiB f\u00fcr aus der Eviction-Rechnung ausgenommene Buffer, 1 GiB f\u00fcr eine Persistenzspitze und 0,5 GiB Sicherheitsabstand abgezogen. Als vorl\u00e4ufiger Wert bleiben 5 GiB f\u00fcr ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":".","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Diese Zahlen sind keine Empfehlung f\u00fcr eine konkrete Instanz. Das Beispiel setzt voraus, dass die angesetzten Reserven zus\u00e4tzliche, nicht \u00fcberlappende Beitr\u00e4ge zur Containergrenze beschreiben. Gerade bei einem Persistenzlauf k\u00f6nnen gemeinsame Speicherseiten und Copy-on-Write die Zuordnung erschweren; eine blo\u00dfe Addition der RSS-Werte von Eltern- und Kindprozess w\u00e4re daf\u00fcr ungeeignet.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Vermeide ","ref":""},{"kind":"strong","text":"Doppelz\u00e4hlungen","ref":""},{"kind":"text","text":": ","ref":""},{"kind":"code","text":"mem_not_counted_for_evict","ref":""},{"kind":"text","text":" steckt bereits in ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":". Wenn du vom beobachteten gesamten RSS oder Containerverbrauch ausgehst, darfst du diesen Bufferanteil nicht ungepr\u00fcft noch einmal addieren. Im verbleibenden Eviction-Budget m\u00fcssen sowohl der Datensatz als auch der mitgez\u00e4hlte Redis-Overhead Platz finden; pr\u00fcfe den Ansatz anschlie\u00dfend unter vergleichbarer Last.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S3"}]}]},{"id":"eviction-vergleichen","heading":"Eviction-Policies im Praxisvergleich","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Die ","ref":""},{"kind":"strong","text":"Eviction-Policy","ref":""},{"kind":"text","text":" bestimmt, wie Redis bei Speicherknappheit auf schreibende Befehle reagiert. Sie ersetzt keine Kapazit\u00e4tsplanung: Selbst eine passende Policy ben\u00f6tigt Reserven au\u00dferhalb der Eviction-Rechnung. Die Entscheidung h\u00e4ngt vor allem davon ab, welche Schl\u00fcssel verloren gehen d\u00fcrfen und wie die Anwendung auf Fehler reagiert.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"table","caption":"Policies nach Einsatzzweck und Verhalten bei Speicherknappheit","headers":["Policy","Typische Eignung","Verlust und Fehlerfall"],"rows":[["noeviction","Daten, die nicht zur Platzgewinnung entfernt werden sollen","Keine Eviction zur Platzgewinnung; speichervergr\u00f6\u00dfernde Schreibbefehle k\u00f6nnen mit OOM scheitern."],["allkeys-lru","Cache mit wiederherstellbaren Daten","Schl\u00fcssel k\u00f6nnen nach n\u00e4herungsweisem LRU entfernt werden; dadurch entstehen Cache-Misses."],["volatile-*","Bestand, bei dem nur Schl\u00fcssel mit Ablaufzeit zur Eviction vorgesehen sind","Nur Schl\u00fcssel mit TTL sind Kandidaten; fehlen geeignete Kandidaten, kann Platz nicht ausreichend freigemacht werden."]],"source_ids":["S2","S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einem reinen Cache kann ","ref":""},{"kind":"code","text":"allkeys-lru","ref":""},{"kind":"text","text":" passen, wenn sich entfernte Eintr\u00e4ge aus einer anderen Quelle neu aufbauen lassen. LRU ist in Redis eine N\u00e4herung und keine exakte globale Sortierung. H\u00e4ufige Evictions k\u00f6nnen mehr Zugriffe auf das Backend ausl\u00f6sen; deshalb sind nicht nur freie Bytes, sondern auch Cache-Trefferrate und Backend-Kapazit\u00e4t wichtig.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr nicht beliebig l\u00f6schbare Daten ist ","ref":""},{"kind":"code","text":"noeviction","ref":""},{"kind":"text","text":" eine andere Entscheidung: Die Anwendung muss fehlgeschlagene Schreibvorg\u00e4nge behandeln k\u00f6nnen, statt stillschweigend mit erfolgreicher Speicherung zu rechnen. Die Policy ist weder Persistenz noch Schutz vor einem OOM auf Betriebssystem- oder Containerebene.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei gemischten Best\u00e4nden ist die ","ref":""},{"kind":"strong","text":"TTL-Disziplin","ref":""},{"kind":"text","text":" entscheidend: Eine ","ref":""},{"kind":"code","text":"volatile-*","ref":""},{"kind":"text","text":"-Policy kann nur Schl\u00fcssel mit Ablaufzeit ausw\u00e4hlen. Wenn zu wenige geeignete Kandidaten vorhanden sind, sch\u00fctzt eine TTL allein nicht vor Schreibfehlern. Pr\u00fcfe deshalb, ob Cache und wichtige Daten wirklich dieselbe Instanz und Fehlerstrategie teilen sollten.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Session-Daten verdeutlichen den Zielkonflikt: Ein entfernter Eintrag kann f\u00fcr Nutzer den Verlust eines Sitzungszustands bedeuten, auch wenn die Anwendung technisch weiterl\u00e4uft. Bewerte die Folgen und Wiederherstellbarkeit vor der Policy-Wahl; zus\u00e4tzliche Grundlagen bietet der Beitrag zum ","ref":""},{"kind":"internal_link","text":"Session-Management mit Redis und anderen Speichern","ref":"I3"},{"kind":"text","text":".","ref":""}]}]},{"id":"betrieb-ueberwachen","heading":"Reserve unter Last \u00fcberpr\u00fcfen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Ein berechneter Wert f\u00fcr ","ref":""},{"kind":"code","text":"maxmemory","ref":""},{"kind":"text","text":" ist zun\u00e4chst ein Ausgangspunkt. Pr\u00fcfe ihn in einer isolierten Umgebung mit vergleichbarer Redis-Version, Datenstruktur und Speichergrenze. Die Last sollte nicht nur den gew\u00f6hnlichen Betrieb abbilden, sondern auch Schreibspitzen und Phasen, in denen Persistenz und Replikation gleichzeitig aktiv sind.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Beobachte dabei den ","ref":""},{"kind":"strong","text":"Containerverbrauch","ref":""},{"kind":"text","text":" beziehungsweise die passende Host-Metrik ebenso wie Redis-Speicherwerte. Halte fest, wann ein Snapshot oder AOF-Rewrite l\u00e4uft und ob ein Replica synchronisiert wird. Entscheidend ist, wie viel Abstand zur tats\u00e4chlichen Grenze w\u00e4hrend \u00fcberlappender Ereignisse bleibt, nicht nur im Leerlauf danach.","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Mit dem lesenden Befehl ","ref":""},{"kind":"code","text":"INFO stats","ref":""},{"kind":"text","text":" erfasst du unter anderem Eviction-Z\u00e4hler. Werte deren \u00c4nderung pro Zeitintervall aus: Ein hoher historischer Stand allein sagt nicht, ob gerade Schl\u00fcssel verdr\u00e4ngt werden. Setze steigende Evictions in Beziehung zu Cache-Treffern und Backend-Last, sofern deine Anwendung diese Gr\u00f6\u00dfen bereitstellt.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Erfasse au\u00dferdem Redis-OOM-Antworten in der Anwendung und speicherbedingte Container-Ereignisse auf der Plattform. Beide Fehler k\u00f6nnen bei \u00e4hnlicher Last auftreten, betreffen aber unterschiedliche Grenzen. Eine Alarmierung sollte deshalb sowohl die verf\u00fcgbare Reserve als auch die beobachteten Fehler und deren zeitlichen Verlauf ber\u00fccksichtigen.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Wiederhole die Bewertung nach \u00c4nderungen am Datensatz, an der Schreiblast oder an Persistenz und Replikation. Auch eine Promotion ver\u00e4ndert die Rolle eines Replica und damit das zu pr\u00fcfende Lastprofil. Die Ergebnisse aus der isolierten Umgebung ersetzen nicht die fortlaufende Beobachtung der produktiven Instanzen.","ref":""},{"kind":"citation","text":"","ref":"S5"}]}]},{"id":"fehler-diagnose","heading":"Speicherprobleme gezielt eingrenzen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Steigt der Prozess-RSS, w\u00e4hrend ","ref":""},{"kind":"code","text":"used_memory","ref":""},{"kind":"text","text":" f\u00e4llt, betrachte zuerst den Verlauf und die vorherige Last. Freigegebener Speicher muss nicht sofort an das Betriebssystem zur\u00fcckgehen. Die ","ref":""},{"kind":"strong","text":"Allocator-Metriken","ref":""},{"kind":"text","text":" aus ","ref":""},{"kind":"code","text":"INFO memory","ref":""},{"kind":"text","text":" helfen bei der Einordnung; das Fragmentierungsverh\u00e4ltnis allein beweist weder ein Speicherleck noch dessen Ursache.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Pr\u00fcfe anschlie\u00dfend, ob der Anstieg zeitlich mit einem Persistenzlauf oder einer Synchronisierung zusammenf\u00e4llt. Dazu dienen ","ref":""},{"kind":"code","text":"INFO persistence","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"INFO replication","ref":""},{"kind":"text","text":". Ein einzelner Wert f\u00fcr nicht zur Eviction gez\u00e4hlte Buffer beschreibt nur den aktuellen Zustand. F\u00fcr eine Reserve brauchst du Beobachtungen \u00fcber relevante Last- und St\u00f6rungsphasen hinweg.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einer ","ref":""},{"kind":"strong","text":"Redis-OOM-Antwort","ref":""},{"kind":"text","text":" pr\u00fcfe die konfigurierte Policy und ob geeignete Schl\u00fcssel f\u00fcr eine Eviction vorhanden sind. Insbesondere kann ein Schreibbefehl scheitern, wenn Redis unter der geltenden Policy keinen ausreichenden Platz freimachen kann. Die Anwendung muss diesen Fehler behandeln, statt einen erfolgreichen Schreibvorgang vorauszusetzen.","ref":""},{"kind":"citation","text":"","ref":"S6"},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei einem speicherbedingten Container-Abbruch untersuche dagegen die Plattformereignisse und den Verbrauch gegen\u00fcber dem Containerlimit. Beziehe Persistenzspitzen und andere im Container erfasste Verbraucher ein. Ein Redis-OOM und ein Container-OOM sind nicht gleichzusetzen: Auch ohne eine vorherige Redis-OOM-Antwort kann die \u00e4u\u00dfere Speichergrenze erreicht werden.","ref":""},{"kind":"citation","text":"","ref":"S3"}]},{"type":"paragraph","runs":[{"kind":"code","text":"maxmemory-clients","ref":""},{"kind":"text","text":" kann zus\u00e4tzlich den von Clients belegten Speicher begrenzen. \u00dcberschreitet der relevante Client-Speicher die konfigurierte Schwelle, kann Redis Clients mit hohem Verbrauch trennen; Anwendungen m\u00fcssen mit Verbindungsabbr\u00fcchen umgehen. Die Einstellung begrenzt nicht s\u00e4mtliche Replikationsverbindungen und ersetzt weder das Gesamtbudget noch die Beobachtung von Pufferspitzen.","ref":""},{"kind":"citation","text":"","ref":"S7"}]}]},{"id":"hosting-entscheidung","heading":"Redis Hosting und Architektur abw\u00e4gen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Reicht die beobachtete Reserve bei repr\u00e4sentativer Last nicht aus, kann mehr RAM sinnvoll sein, wenn Datensatz und Last grunds\u00e4tzlich auf einer Instanz bleiben sollen. Die zus\u00e4tzliche Kapazit\u00e4t muss jedoch zur tats\u00e4chlich wirksamen Host- oder Containergrenze geh\u00f6ren. Ein gr\u00f6\u00dferes Redis-Limit allein schafft keinen zus\u00e4tzlichen physischen Speicher.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Alternativ kann eine ","ref":""},{"kind":"strong","text":"Lastverteilung","ref":""},{"kind":"text","text":" den Speicherbedarf und die Schreibarbeit auf mehrere Instanzen verteilen. Das erfordert eine passende Aufteilung der Daten und eine eigene Budgetierung f\u00fcr jede beteiligte Instanz. Replikate sind dabei nicht mit einer Aufteilung des Datenbestands gleichzusetzen: Sie halten grunds\u00e4tzlich eine Kopie und ben\u00f6tigen daf\u00fcr eigenes RAM.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch eine Architektur\u00e4nderung kann helfen, etwa die Trennung eines verlusttoleranten Caches von Daten mit strengeren Anforderungen. Dadurch lassen sich Policies und Kapazit\u00e4ten unabh\u00e4ngig w\u00e4hlen. Weder diese Trennung noch mehr RAM oder Lastverteilung garantiert allerdings, dass Persistenz-, Replikations- und Schreibspitzen k\u00fcnftig ausbleiben.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Beim Vergleich von ","ref":""},{"kind":"strong","text":"Anbietergrenzen","ref":""},{"kind":"text","text":" kl\u00e4re, ob der ausgewiesene Wert ein Containerlimit, ein Instanzlimit oder ein anders definiertes Datenbanklimit bezeichnet. Frage au\u00dferdem, welche Metriken und Diagnosebefehle zug\u00e4nglich sind, ob Replikate im gebuchten Speicher enthalten sind und wie sich eine Promotion auf die verf\u00fcgbaren Ressourcen auswirkt.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Redis Open Source, Redis Software und Redis Cloud sind getrennt zu betrachten. Bei Redis Software gilt das dokumentierte Datenbanklimit \u00fcber Primary- und Replica-Shards hinweg; daraus folgt keine entsprechende Regel f\u00fcr eine einzelne Redis-OSS-Instanz. F\u00fcr Redis Cloud und andere Hosting-Angebote pr\u00fcfst du die jeweils konkreten Produktbedingungen, statt diese Definition ungepr\u00fcft zu \u00fcbertragen.","ref":""},{"kind":"citation","text":"","ref":"S1"}]}]}]},"_wh_make_word_report":{"words":2162,"min":2000,"max":3000,"target":2500,"ok":true,"missing":0,"excess":0,"lead_words":62,"section_words":{"maxmemory-grundlagen":222,"rss-und-persistenz":226,"replikation-speicher":214,"metriken-erfassen":250,"budget-rechnen":225,"eviction-vergleichen":292,"betrieb-ueberwachen":217,"fehler-diagnose":220,"hosting-entscheidung":234}},"_wh_make_review":{"verdict":"pass","issues":[],"checked_source_ids":["S1","S2","S3","S4","S5","S6","S7"],"summary":"Fachlich freigabef\u00e4hig. Die gepr\u00fcften Originalquellen st\u00fctzen die Abgrenzung von maxmemory, ausgeschlossenen Puffern, Prozessspeicher und Eviction-Verhalten. RSS-Effekte, Copy-on-Write, Replica-Verhalten und die Besonderheit der Replikationsbuffer seit Redis 7.0 sind korrekt eingeordnet. Die Produktgrenzen von Redis Software werden nicht auf Redis Open Source \u00fcbertragen. Das illustrative Budgetbeispiel ergibt korrekt 5 GiB und benennt seine Voraussetzungen sowie Doppelz\u00e4hlungsrisiken. Diagnosebefehle, Tabellen, Versionshinweise und Bildkonzepte enthalten keine festgestellten fachlichen Fehler; das fotografische Motiv ist ausdr\u00fccklich als KI-generiertes Symbolbild gekennzeichnet. Ein Chart und behauptete eigene Messungen liegen nicht vor."},"_wh_make_review_doc_hash":"656b7c8d51118ed0fa3cfb0264c799884ab362d2160c431915834a20b6c4ea7e","_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"inline_featured_image":null,"_yoast_wpseo_linkdex":null,"_eael_widget_elements":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_trp_translated_slug_en_us":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_wh_make_writer_raw":null,"_wh_make_design_backup_204":null,"_wp_desired_post_slug":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"79","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"redis maxmemory","rank_math_og_content_image":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"22166","_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":"Redis maxmemory mit Reserve planen: Speicherwerte verstehen, Replikate ber\u00fccksichtigen und Persistenzspitzen unter Last pr\u00fcfen.","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/22164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=22164"}],"version-history":[{"count":2,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/22164\/revisions"}],"predecessor-version":[{"id":22169,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/22164\/revisions\/22169"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/22166"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=22164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=22164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=22164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}