Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 47166|Válasz: 1

[Forrás] Redis MISCONF A Redis úgy van konfigurálva, hogy RDB pillanatképeket mentsen

[Linket másol]
Közzétéve: 2021-5-14 21:18:50 | | | |
A StackExchange.Redis használatával a redis gyorsítótár manipulálására a hiba a következő:

StackExchange.Redis.RedisServerException: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

Ideiglenes megoldás, módosítsa a redis.windows.conf fájlt,A Redis szolgáltatást újra kell indítani., a következőképpen halva:
Ha nem akarod újraindítani a Redis szolgáltatást, a redis-cli parancsot a következőképpen állíthatod be:



A magyarázat a következő:
# Alapértelmezés szerint a Redis nem fogad el írásokat, ha az RDB snapshotok engedélyezve vannak
# (legalább egy mentési pont) és a legutóbbi háttérmentés meghibásodott.
# Ez tudatná a felhasználónak (kemény módon), hogy az adatok nem maradnak fenn
# rendesen a lemezen, különben valószínűleg senki sem veszi észre, és még sok
# katasztrófa fog történni.
#
# Ha a háttérmentés újra működésbe fog indulni, Redis is fog
# automatikusan engedélyezi az írásokat újra.
#
# Azonban, ha beállítottad a Redis szerver megfelelő megfigyelését
# és kitartás, érdemes lehet letiltani ezt a funkciót, hogy Redis
# továbbra is a szokásos módon működünk, még akkor is, ha problémák vannak a lemezrel,
# engedélyek és így tovább.
Egyszerűen fogalmazva: A Redisnek el kell forkálnia egy fő folyamatot, hogy elkerülje a fő folyamat halálszínlelését adatmentéskor a merevlemezre, majd befejezze az adatmentést a merevlemezre a fork folyamatban, ha a fő folyamat 4GB memóriát használ, akkor egy további 4GB szükség van a fork alfolyamatra, ekkor a memória nem elég, a fork meghibásodik, és akkor az adatmentő merevlemez is meghibásodik.

A redis naplók megtekintéséhez a redis.windows.conf-ot a következőképpen kell konfigurálni:

# Megadd a naplófájl nevét. A 'stdout' is használható kényszerítésre
# Redis a standard kimenetre jelentkezik.
naplófájl "E:/Redis-x64-3.2.100/redis.txt"

A napló kivételek a következők:

[8984] 14. május 14:05:09.060 * Háttérmentést indított: pid 8672
[8672] 14. május 14:05:09.169 #
A Redis Windows verziója tart fenn halom memóriát a rendszer lapozó fájljából
A tartóssági műveletekhez használt forkált folyamattal való megosztáshoz. Jelenleg nem áll rendelkezésre elegendő egymás melletti szabad hely a
Rendszeroldali fájl. Növelheted a rendszer lapozási fájl méretét.
Néha egy újraindítás elegendő módon defragmentálja a rendszer lapozási fájlt a következőképpen
ezt a műveletet sikeresen befejezték.

Redis nem tud folytatni. Kilép.
[8984] 14. május 14:05:09.278 # villá művelet sikertelen



Az elemzés után kiderült, hogy a maximális halom méretű "maxheap" konfiguráció problémája a rendelkezésre álló memória hiányából fakadt.

Megoldás

Nyisd meg a Redis konfigurációs fájlját "redis.windows.conf", és keresd meg a következő kódszekciót:


# A Redis halomnak nagyobbnak kell lennie, mint a maxmemory által megadott érték
# zászló, mivel a halom allokátornak saját memóriaigényei vannak és
# a kupac széttörése elkerülhetetlen. Ha csak a maxmemory zászló
# Megadva, a maxheap 1,5*maxmemory-re lesz beállítva. Ha a maxheap zászló
# A maxmemory mellett a maxheap zászló automatikusan lesz
# növelve, ha kisebb, mint 1,5*maxmemory.
#  
# maxheap <bytes>

Ennek a beállításnak a hozzáadása jó,A Redis szolgáltatás nem indul el!!!!!!!
Az alapértelmezett érték: maxheap 1024000000≈976,56M

Ezt a hozzászólást nem találtam a conf fájlban, valami ilyesmit találtam:
# Ne használj több memóriát a megadott mennyiségű bájtnál.
# Amikor eléri a memóriahatárt, Redis megpróbálja eltávolítani a kulcsokat
# a kiválasztott kilakoltatási szabályzat szerint (lásd maxmemory-politika).
#
# Ha a Redis nem tudja eltávolítani a kulcsokat a szabályzat szerint, vagy ha a szabályzat
# beállítása 'noeviction'-re, Redis hibákkal válaszol a parancsokra
# ami több memóriát igényelne, mint a SET, LPUSH és így tovább, és folytatódik
# válasz csak olvasható parancsokra, mint a GET.
#
# Ez az opció általában hasznos, ha a Redis LRU cache-ként vagy beállításokhoz
# egy példány kemény memóriakorlátja (a 'noeviction' szabályzat alapján).
#
# FIGYELEM: Ha egy instance-hoz maxmemory be van kapcsolva slave-ek hozzá,
# a szolgák táplálásához szükséges kimeneti pufferek mérete levonva
# a használt memória számából, így a hálózati problémák / újraszinkronizálások
# nem indít el egy hurkot, ahol a kulcsok kilakoltatása lesz, és ezzel a kimenet
# a slave-puffer tele van DEL-ekkel a kulcsok kizárásával, ami kiváltja a törlést
# további kulcsok, és így tovább, amíg az adatbázis teljesen ki nem ürül.
#
# Röviden... Ha szolgák vannak csatlakoztatva, ajánlott alacsonyabb szintet állítani
# maxmemory korlát, hogy legyen némi szabad RAM a rendszerben a slave-hez
# kimeneti pufferek (de ez nem szükséges, ha a szabályzat 'noeviction').
#
# FIGYELEM: a maxmemory beállítása miatt Redis egy
# memóriakívüli kivétel, ha elérik a halom határát.
#
# MEGJEGYZÉS: mivel a Redis a rendszerlapozó fájlt használja a halommemória kijelölésére,
# a Windows Feladatkezelő vagy más által mutatott munkakészlet memóriahasználata
# olyan eszközök, mint a ProcessExplorer nem mindig lesznek pontosak. Például, jobb
# az RDB vagy az AOF fájlok háttérmentése után a munkahalmaz értéke
# jelentősen csökkenhet. Hogy ellenőrizzük, mennyi memóriát használunk
# a redis-szerver által az adatok tárolásához használja az INFO kliens parancsot. Az INFO
# parancs csak a Redis adatok tárolásához használt memóriát mutatja, nem a plusz
# memória, amelyet a Windows folyamat saját igényeihez használ. Th3 extra összeg
# memóriából, amelyet az INFO parancs nem jelent, kiszámítható a
# A Windows Feladatkezelő és a used_memory_peak által jelentett csúcsmunkakészlet
# jelentették az INFO parancsnokságtól.
#
# maxmemory <bytes>

Figyelem: Ha eléri a halmos korlátot, a maxmemory beállítás nélkül Redis egy memóriakívüli kivétellel végződik.

Megjegyzés: MivelA Redis rendszerlapozó fájlokat használ a halommemória leosztásához

A Windows Feladatkezelő vagy más eszközök, mint a ProcessExplorer, nem mindig mutatnak pontos munkakészlet-memóriahasználatot. Egyszerűen fogalmazva,A Feladatkezelő által mutatott memóriahasználat nem pontos!!!

Az info parancsot az alábbiak szerinti lekérdezésre használd:

# Emlék
used_memory:2011338768
used_memory_human:1.87G
used_memory_rss:2011279992
used_memory_rss_human:1.87G
used_memory_peak:2011338768
used_memory_peak_human:1.87G
total_system_memory:0
total_system_memory_human:0B
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
mem_fragmentation_ratio:1.00
mem_allocator:jemalloc-3.6.0



A beállítások a következők:

1073741824 bájt = 1G
A beállítás után a redis .net kliens a következő gyorsítótár hibát adja hozzá:

Az OOM parancs nem engedélyezett, ha 'maxmemory' > memóriát használta.
# MAXMEMORY POLITIKA: hogyan választja ki a Redis, mit távolít el, amikor maxmemory
# elérik. Öt viselkedés közül választhatsz:
#
# volatile-lru -> a kulcs eltávolítása lejáró halmazsal LRU algoritmussal
# allkeys-lru -> eltávolítsa bármely kulcsot az LRU algoritmus szerint
# volatile-random -> távolíts el egy véletlenszerű kulcsot lejárt halmazsal
# allkeys-random -> távolítsd el egy véletlenszerű kulcsot, bármelyik kulcsot
# volatile-ttl -> távolítsd el a legközelebbi lejárati idővel rendelkező kulcsot (kisebb TTL)
# Noeviction -> egyáltalán nem jár le, csak írni a műveleteknél hibát küldj vissza
#
# Megjegyzés: bármelyik fenti szabályzatnál a Redis íráskor hibát ad vissza
# műveletek, amikor nincsenek megfelelő kulcsok a kilakoltatáshoz.
#
# A parancsok írásának időpontjában a következők: setnx setex append
# incr decr rpush lpush lpushx lpushx lpushx linsert lset rpoplpush sadd
# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
# getset mset msetnx exec sort
#
# Az alapértelmezett:
#
# maxmemory-politika kizárása
#MAXMEMORY策略: Amikor MAXMEMORY

#到达. Öt viselkedés közül választhatsz:

#

#volatile LRU-> az LRU algoritmust használja a lejárati halmazok eltávolítására

#allkeys LRU-> az LRU algoritmus szerint bármely kulcsot töröl

#volatile véletlenszerű – > eltávolítsa a véletlenszerű kulcsokat lejárt halmazokkal

#allkeys véletlenszerű-> töröld véletlenszerű kulcsokat, tetszőleges kulcsokat

#volatile TTL-> Töröld a legközelebbi lejárati idővel rendelkező kulcsot (kisebb TTL)

#noeviction-> egyáltalán nem jár le, csak írási műveleti hibákat ad vissza

#

#注意: Bármelyik fenti stratégiánál a Redis hibát ad vissza íráskor

#操作, amikor nincs megfelelő kulcs a kilakoltatáshoz.

#

#在编写之日 ezek a parancsok: setnx setex append beállítás

#递增递减rpush lpushx lpushx linsert lset rpoplpush sadd

#烧结店sunion sunionstore sdiff sdiffstore zadd zincrby

#zunionstore Zinterstore Hset Hsetnx HMSET Hincrby Incrby Decrby

#getset MSET MSETNX végrehajtó rendezés

#

#默认值为:

#

#maxmemory策略无效
Az alábbi konfigurációkat is be kell állítanod:

Az alapértelmezett redis beállítás nagyon konzervatív, vagyis nem tárolják a memóriakorlát túllépése után, és a politika megváltoztatható az LRU algoritmusra (ami az utóbbi időben legkevésbé használt algoritmus) – az újonnan tárolt információ leváltja a régi információkat.

Szemle:

Redis tartóssági különbség az RDB és az AOF között
https://www.itsvse.com/thread-9555-1-1.html

A Docker telepítés futtatja a Redis gyorsítótárt
https://www.itsvse.com/thread-8995-1-1.html

Példák magyarázzák el, hogy mi a Redis cache penetráció, a cache lavina és a cache breakdown
https://www.itsvse.com/thread-8968-1-1.html

Redis wildcard-ja, hogy nagy tételben töröld a kulcsokat
https://www.itsvse.com/thread-7957-1-1.html

CentOS 7 telepítése Redis 5.0.3 oktató
https://www.itsvse.com/thread-7201-1-1.html

Telepítsd a redis kiterjesztést php 5.5.7 alá CentOS alatt
https://www.itsvse.com/thread-7200-1-1.html

Hány kulcsot lehet tárolni egy redis példányban, és mik a maximális kulcsok és értékek?
https://www.itsvse.com/thread-6848-1-1.html

A redis Chinese kiadása nem mutatható megfelelően
https://www.itsvse.com/thread-5032-1-1.html

A Redis lehetővé teszi a távoli hozzáférést
https://www.itsvse.com/thread-5011-1-1.html

A Windows nem indítja el a Redis szolgáltatást, 1067-es hiba: A folyamat váratlanul leáll.
https://www.itsvse.com/thread-5010-1-1.html

CentOS telepítette a Redis 4.0.8-at
https://www.itsvse.com/thread-4614-1-1.html

A Redis távoli kapcsolatot és hozzáférési jelszavakat állít be
https://www.itsvse.com/thread-4101-1-1.html

Redis kiüríti az adatgyorsítótárt
https://www.itsvse.com/thread-4027-1-1.html

Redis persistence konfiguráció és kikapcsolt persistenciát
https://www.itsvse.com/thread-4012-1-1.html

A különbség a mentés és a bgsave között a Redis
https://www.itsvse.com/thread-4010-1-1.html

A Redis két kitartási módszer és elv
https://www.itsvse.com/thread-4009-1-1.html

Redis három módja van a kezdésnek.
https://www.itsvse.com/thread-4008-1-1.html

Redis módszer a parancssoros ablakok elrejtésére
https://www.itsvse.com/thread-2988-1-1.html

Redis hash hash hash érték probléma
https://www.itsvse.com/thread-2587-1-1.html

5 dolog, amit tudnod kell, mielőtt használod a Redist
https://www.itsvse.com/thread-2580-1-1.html

A Redis módosítja az alapértelmezett portszámot és beállítja a hozzáférési jelszót
https://www.itsvse.com/thread-2577-1-1.html

Redis Windows 64-bites letöltés, hivatalos letöltési cím
https://www.itsvse.com/thread-2576-1-1.html

Redis Lua szkripteket használ részletes magyarázatokhoz
https://www.itsvse.com/thread-9634-1-1.html

Redis Benchmark teljesítményteszt
https://www.itsvse.com/thread-9645-1-1.html

(Vége)






Előző:NPOI ítélet a sejt dátumtípus szerint
Következő:NPOI Operation Excel részletes magyarázata
 Háziúr| Közzétéve: 2023-7-12 21:08:55 |
Redis memória nyolc kizárási stratégiák
https://www.itsvse.com/thread-10626-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com