See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 47166|Vastuse: 1

[Allikas] Redis MISCONF Redis on seadistatud salvestama RDB hetktõmmisi

[Kopeeri link]
Postitatud 2021-5-14 21:18:50 | | | |
Kasutades StackExchange.Redis redis-vahemälu manipuleerimiseks, on viga järgmine:

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.

Ajutine lahendus, muuda redis.windows.conf faili,Redis'i teenus tuleb taaskäivitada, seatud järgmiselt:
Kui sa ei soovi Redis teenust taaskäivitada, saad kasutada käsu redis-cli abil selle seadistamiseks järgmiselt:



Selgitus on järgmine:
# Vaikimisi lõpetab Redis kirjutiste vastuvõtmise, kui RDB hetktõmmised on lubatud
# (vähemalt üks salvestuspunkt) ja viimane taustasalvestus ebaõnnestus.
# See teeb kasutaja teadlikuks (raskel moel), et andmed ei püsi
# kettale õigesti, muidu on tõenäoline, et keegi ei pane tähele ja mõned
# katastroof juhtub.
#
# Kui taustasalvestuse protsess uuesti tööle hakkab, siis Redis töötab
# Luba automaatselt uuesti kirjutada.
#
# Kui oled aga seadistanud korraliku jälgimise Redis serveri üle
# ja püsivus, võid selle funktsiooni keelata, et Redis saaks
# jätka tööd tavapäraselt, isegi kui kettaga on probleeme,
# õigused ja nii edasi.
Lihtsalt öeldes: Redis peab hargnema põhiprotsessi, et vältida põhiprotsessi võltsimist andmete salvestamisel kõvakettale, ning seejärel lõpetama andmete salvestamise kõvakettale fork-protsessis; kui põhiprotsess kasutab 4GB mälu, on vaja veel 4GB mälu, kui on vaja forki alamprotsessi, sel hetkel mälust ei piisa, fork rikneb ja seejärel ka andmete salvestamise kõvaketas ebaõnnestub.

Redis logide vaatamiseks tuleb seadistada redis.windows.conf järgmiselt:

# Täpsusta logifaili nimi. Samuti võib kasutada 'stdout' sundimiseks
# Redis logib sisse standardse väljundi.
logifail "E:/Redis-x64-3.2.100/redis.txt"

Logaritmilised erandid on järgmised:

[8984] 14. mai 14:05:09.060 * Taustasalvestust alustas pid 8672
[8672] 14. mai 14:05:09.169 #
Windowsi versioon Redis'ist reserveerib kuhjatud mälu süsteemi lehekülgede failist
jagamiseks hargnenud protsessiga, mida kasutatakse püsivusoperatsioonide jaoks. Praegu ei ole piisavalt ühtlast vaba ruumi
süsteemi lehekülgede fail. Võid suurendada süsteemi lehekülgede faili suurust.
Mõnikord taaskäivitamine defragmenteerib süsteemi lehekülgede faili piisavalt, et
see operatsioon õnnestus edukalt lõpule viia.

Redis ei saa jätkata. Väljumine.
[8984] 14. mai 14:05:09.278 # kahvlitöö ebaõnnestus



Pärast analüüsi selgus, et maksimaalse kuhja suuruse "maxheap" konfiguratsiooni probleem tulenes ebapiisavast mälust.

Lahus

Ava Redis'i konfiguratsioonifail "redis.windows.conf" ja leia järgmine koodiosa:


# Redis-kuhja peab olema suurem kui maxmemory määratud väärtus
# lipp, kuna kuhja allokaatoril on oma mälunõuded ja
# kuhja killustumine on vältimatu. Kui ainult maxmemory lipp on
# määratud, maxheap seatakse väärtuseks 1,5*maxmemory. Kui maxheap-lipp on
# Koos maxmemory'ga määratakse maxheap-lipp automaatselt
# suurendatud, kui see on väiksem kui 1,5*maxmemory.
#  
# Maxheap <bytes>

Selle seadistuse lisamine on hea,Redis teenus ei käivitu!!!!!!!
Vaikimisi väärtus on: maxheap 1024000000≈976.56M

Ma ei leidnud seda kommentaari konverentsifailist, leidsin midagi sellist:
# Ära kasuta rohkem mälu kui määratud baitide arv.
# Kui mälupiirang on täis, proovib Redis võtmeid eemaldada
# vastavalt valitud väljatõstmispoliitikale (vt maxmemory-policy).
#
# Kui Redis ei saa võtmeid eemaldada vastavalt poliitikale või kui poliitika on
# seatud 'noeviction', hakkab Redis vastama käskudele vigadega
# mis kasutaks rohkem mälu, nagu SET, LPUSH jne, ja jätkab
# et vastata ainult lugemiseks mõeldud käskudele nagu GET.
#
# See valik on tavaliselt kasulik, kui kasutada Redist LRU vahemäluna või seadistada
# kõva mälupiirang instantsi jaoks (kasutades 'noeviction' poliitikat).
#
# HOIATUS: Kui sul on orjad, mis on seotud instantsiga maxmemory sees,
# orjade toitmiseks vajalike väljundpuhvrite suurus lahutatakse
# kasutatud mälu arvust, nii et võrguprobleemid / taassünkroonimised
# ei käivita tsüklit, kus klahvid välja tõstetakse, ja omakorda väljund
# orjade puhver on täis võtmete DEL-idega, mis on välja tõstetud, mis käivitab kustutamise
# rohkem võtmeid ja nii edasi, kuni andmebaas on täielikult tühjaks saanud.
#
# Lühidalt... Kui sul on orjad küljes, soovitatakse seada madalam
# piirang maksimaalsele mälule, et süsteemis oleks vaba RAM-i orja jaoks
# väljundpuhvreid (kuid seda pole vaja, kui poliitika on 'noeviction').
#
# HOIATUS: maxmemory'i seadistamata jätmine põhjustab Redise lõpetamise
# mälust väljas erand, kui kuhja piirang on ületatud.
#
# MÄRKUS: kuna Redis kasutab süsteemi lehekülgede faili kuhja mälu eraldamiseks,
# Töökomplekti mälukasutus, mida näitab Windowsi tegumihaldur või muu
# tööriistad nagu ProcessExplorer ei pruugi alati täpsed olla. Näiteks, parem
# pärast RDB või AOF failide taustasalvestust, töötab töökomplekti väärtus
# võib oluliselt langeda. Et kontrollida kasutatud mälu õiget hulka
# redis-serveri poolt andmete salvestamiseks kasuta INFO kliendikäsku. The INFO
# käsk näitab ainult mälu, mida kasutatakse Redis andmete salvestamiseks, mitte lisamälu
# mälu, mida Windowsi protsess kasutab oma vajadusteks. Th3 lisasumma
# mälust, mida INFO käsk ei teatanud, saab arvutada, lahutades
# Windowsi tegumihalduri ja used_memory_peak poolt teatatud tipptasemel töökomplekt
# teatas INFO juhtkond.
#
# maxmemory <bytes>

Hoiatus: Kui kuhja piirang on saavutatud, põhjustab maxmemory'i mitte seadistamine Redis lõpetamise mäluvälise erandiga.

Märkus: TänuRedis kasutab süsteemilehendusfaile kuhja mälu eraldamiseks

Windowsi tegumihaldur või teised tööriistad nagu ProcessExplorer ei näita alati täpset töökomplekti mälukasutust. Lihtsalt öeldes,Tegumihalduri näidatud mälukasutus ei ole täpne!!!

Kasuta infokäsku järgmise päringu tegemiseks:

# Mälestus
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



Seaded on järgmised:

1073741824 baiti = 1G
Pärast seadistust lisab redis .net klient vahemäluvea järgmiselt:

OOM käsk ei ole lubatud, kui kasutatakse mälu > 'maxmemory'.
# MAXMEMORY POLICY: kuidas Redis valib, mida eemaldada, kui maxmemory
# on saavutatud. Saad valida viie käitumise vahel:
#
# volatile-lru -> eemalda võti aegumiskomplektiga LRU algoritmi abil
# allkeys-lru -> eemalda ükskõik milline võti vastavalt LRU algoritmile
# volatile-random -> eemalda juhuslik võti, millel on aegumiskomplekt
# allkeys-random -> eemalda juhuslik võti, ükskõik milline võti
# volatile-ttl -> eemalda võti, millel on lähim aegumisaeg (väike TTL)
# noeviction -> ei aegu üldse, lihtsalt tagasta vea kirjutamistoimingute ajal
#
# Märkus: kõigi ülaltoodud poliitikate puhul tagastab Redis kirjutamisel vea
# operatsioonid, kui sobivaid võtmeid väljatõstmiseks pole.
#
# Nende käskude kirjutamise kuupäeval on: set setnx setex append
# incr decr rpush lpush 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 täitevsort
#
# Vaikimisi on:
#
# maxmemory-poliitika väljatõstmine
#MAXMEMORY策略: Kui MAXMEMORY

#到达. Saad valida viie käitumise vahel:

#

#volatile LRU-> kasutab LRU algoritmi, et eemaldada võtmed, mille komplektid on aegunud

#allkeys LRU-> kustutab iga võtme vastavalt LRU algoritmile

#volatile juhuslik – > eemaldada juhuslikud võtmed aegunud komplektidega

#allkeys juhuslik> kustuta juhuslikud võtmed, suvalised võtmed

#volatile TTL-> Kustuta võti, millel on lähim aegumisaeg (väike TTL)

#noeviction-> ei aegu üldse, vaid tagastab ainult kirjutamisoperatsiooni vead

#

#注意: Kõigi ülaltoodud strateegiate puhul tagastab Redis vea kirjutamisel

#操作, kui sobivat võtit väljatõstmiseks pole.

#

#在编写之日 need käsud on: set setnx setex append

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

#烧结店sunion sunionstore sdiff sdiffstore zadd zincrby

#zunionstore Zinterstore Hset Hsetnx HMSET Hincrby Incrby Decrby

#getset MSET MSETNX täitevsorteerimine

#

#默认值为:

#

#maxmemory策略无效
Samuti pead seadistama järgmised konfiguratsioonid:

Vaikimisi redis seade on väga konservatiivne, st seda ei salvestata pärast mälupiirangu ületamist ning poliitikat saab muuta LRU algoritmiks (viimasel ajal kõige vähem kasutatud algoritm) – uus salvestatud info asendab vana info.

Läbivaatamine:

Redis püsivuse erinevus RDB ja AOF vahel
https://www.itsvse.com/thread-9555-1-1.html

Dockeri paigaldus käivitab Redis vahemälu
https://www.itsvse.com/thread-8995-1-1.html

Näited selgitavad, mida on Redis vahemälu läbimurdmine, vahemälu laviinid ja vahemälu jaotus
https://www.itsvse.com/thread-8968-1-1.html

Redis Wildcard'id võtmete hulgiseks kustutamiseks
https://www.itsvse.com/thread-7957-1-1.html

CentOS 7 paigaldus Redis 5.0.3 õpetus
https://www.itsvse.com/thread-7201-1-1.html

Paigalda Redis laiendus php 5.5.7 alla CentOS-i all
https://www.itsvse.com/thread-7200-1-1.html

Kui palju võtmeid saab redis-instantsi salvestada ning millised on maksimaalsed võtmed ja väärtused?
https://www.itsvse.com/thread-6848-1-1.html

Redis hiina keele küsimust ei saa korrektselt kuvada
https://www.itsvse.com/thread-5032-1-1.html

Redis võimaldab kaugjuurdepääsu
https://www.itsvse.com/thread-5011-1-1.html

Windows ei käivita Redis teenust, viga 1067: Protsess lõpeb ootamatult.
https://www.itsvse.com/thread-5010-1-1.html

CentOS paigaldas Redis 4.0.8
https://www.itsvse.com/thread-4614-1-1.html

Redis seadistab kaugühenduse ja ligipääsu paroolid
https://www.itsvse.com/thread-4101-1-1.html

Redis tühjendab andmevahemälu
https://www.itsvse.com/thread-4027-1-1.html

Redis püsivuse konfiguratsioon ja väljalülitatud püsivus
https://www.itsvse.com/thread-4012-1-1.html

Erinevus salvestuse ja bgsave'i vahel redises
https://www.itsvse.com/thread-4010-1-1.html

Redis kaks püsivusmeetodit ja põhimõtet
https://www.itsvse.com/thread-4009-1-1.html

Redisil on kolm võimalust alustada
https://www.itsvse.com/thread-4008-1-1.html

Redis meetod käsurea akende peitmiseks
https://www.itsvse.com/thread-2988-1-1.html

Redis Hash Hash Hash Hash Value Probleem
https://www.itsvse.com/thread-2587-1-1.html

5 asja, mida peaksid teadma enne Redise kasutamist
https://www.itsvse.com/thread-2580-1-1.html

Redis muudab vaikimisi pordinumbrit ja määrab ligipääsuparooli
https://www.itsvse.com/thread-2577-1-1.html

Redis Windowsi 64-bitine allalaadimine, ametlik allalaadimisaadress
https://www.itsvse.com/thread-2576-1-1.html

Redis kasutab üksikasjalike selgituste jaoks Lua skripte
https://www.itsvse.com/thread-9634-1-1.html

Redis Benchmarki jõudlustest
https://www.itsvse.com/thread-9645-1-1.html

(Lõpp)






Eelmine:NPOI hinnang raku kuupäevatüübi kohta
Järgmine:NPOI Operation Excel üksikasjalik selgitus
 Üürileandja| Postitatud 2023-7-12 21:08:55 |
Redis mälestus kaheksa elimineerimisstrateegiat
https://www.itsvse.com/thread-10626-1-1.html
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com