Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 47166|Atbildi: 1

[Avots] Redis MISCONF Redis ir konfigurēts, lai saglabātu RDB momentuzņēmumus

[Kopēt saiti]
Publicēts 2021-5-14 21:18:50 | | | |
Izmantojot StackExchange.Redis, lai manipulētu ar redis kešatmiņu, kļūda ir šāda:

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.

Pagaidu risinājums, modificējiet failu redis.windows.conf,Redis pakalpojums ir jārestartē, iestatiet šādi:
Ja nevēlaties restartēt Redis pakalpojumu, varat izmantot komandu redis-cli, lai to iestatītu šādi:



Skaidrojums ir šāds:
# Pēc noklusējuma Redis pārtrauks rakstīt, ja ir iespējoti RDB momentuzņēmumi
# (vismaz viens saglabāšanas punkts) un pēdējā fona saglabāšana neizdevās.
# Tas ļaus lietotājam apzināties (grūtā veidā), ka dati nesaglabājas
# uz diska pareizi, pretējā gadījumā pastāv iespēja, ka neviens nepamanīs un daži
# katastrofa notiks.
#
# Ja fona saglabāšanas process atkal sāks darboties, Redis
# automātiski atļaut rakstīt vēlreiz.
#
# Tomēr, ja esat iestatījis pareizu Redis servera uzraudzību
# un neatlaidība, iespējams, vēlēsities atspējot šo funkciju, lai Redis
# turpināt strādāt kā parasti, pat ja rodas problēmas ar disku,
# atļaujas utt.
Vienkārši sakot: Redis ir jāpārtrauc galvenais process, lai izvairītos no galvenā procesa viltošanas nāves, saglabājot datus cietajā diskā, un pēc tam pabeidz datu saglabāšanu cietajā diskā dakšas procesā, ja galvenais process izmanto 4 GB atmiņas, ir nepieciešami papildu 4 GB, ja ir nepieciešams dakšas apakšprocess, šobrīd atmiņa nav pietiekama, dakša neizdodas, un tad arī datu taupīšanas cietais disks neizdodas.

Lai apskatītu redis žurnālus, jums jākonfigurē redis.windows.conf šādi:

# Norādiet žurnāla faila nosaukumu. Arī "stdout" var izmantot, lai piespiest
# Redis, lai pieteiktos standarta izvadē.
žurnālfails "E:/Redis-x64-3.2.100/redis.txt"

Žurnāla izņēmumi ir šādi:

[8984] 14 May 14:05:09.060 * Fona saglabāšanu sāka pid 8672
[8672] 14. maijs 14:05:09.169 #
Redis Windows versija rezervē kaudzes atmiņu no sistēmas peidžeru faila
koplietošanai ar dakšas procesu, ko izmanto noturības operācijām. Šobrīd nav pietiekami daudz brīvas vietas
Sistēmas peidžeru fails. Varat palielināt sistēmas peidžeru faila lielumu.
Dažreiz atsāknēšana defragmentēs sistēmas peidžeru failu pietiekami, lai
Šī darbība ir veiksmīgi pabeigta.

Redis nevar turpināt. Izeja.
[8984] 14. maijs 14:05:09.278 # dakšas darbība neizdevās



Pēc analīzes izrādījās, ka problēma ar maksimālo kaudzes izmēru "maxheap" konfigurāciju bija saistīta ar nepietiekamu pieejamo atmiņu.

Šķīdums

Atveriet Redis konfigurācijas failu "redis.windows.conf" un atrodiet šādu koda sadaļu:


# Redis kaudzei jābūt lielākai par maxmemory norādīto vērtību
# karodziņš, jo kaudzes sadalītājam ir savas atmiņas prasības un
# kaudzes sadrumstalotība ir neizbēgama. Ja tikai maxmemory karodziņš ir
# norādīts, maxheap tiks iestatīts uz 1.5 * maxmemory. Ja maksimuma karodziņš ir
# norādīts kopā ar maxmemory, maxheap karodziņš tiks automātiski
# palielināts, ja tas ir mazāks par 1.5*maxmemory.
#  
# maksimums <bytes>

Šī iestatījuma pievienošana ir laba,Redis pakalpojums neizdodas startēt!!!!!!!
Noklusējuma vērtība ir: maxheap 1024000000≈976.56M

Es neatradu šo komentāru conf failā, es atradu kaut ko līdzīgu šim:
# Neizmantojiet vairāk atmiņas par norādīto baitu daudzumu.
# Kad atmiņas ierobežojums ir sasniegts, Redis mēģinās noņemt atslēgas
# saskaņā ar izvēlēto izlikšanas politiku (skatīt maxmemory-policy).
#
# Ja Redis nevar noņemt atslēgas saskaņā ar politiku vai ja politika ir
# iestatīts uz 'noeviction', Redis sāks atbildēt ar kļūdām uz komandām
#, kas patērētu vairāk atmiņas, piemēram, SET, LPUSH utt., un turpinās
#, lai atbildētu uz tikai lasāmām komandām, piemēram, GET.
#
# Šī opcija parasti ir noderīga, izmantojot Redis kā LRU kešatmiņu vai lai iestatītu
# cietās atmiņas ierobežojums instancē (izmantojot "noeviction" politiku).
#
# BRĪDINĀJUMS: Ja jums ir vergi, kas pievienoti instancei ar ieslēgtu maxmemory,
# tiek atņemts izejas buferu lielums, kas nepieciešams, lai pabarotu vergus
# no izmantotās atmiņas skaita, lai tīkla problēmas / atkārtota sinhronizācija
# neaktivizēt cilpu, kur atslēgas tiek izliktas, un savukārt izeja
# vergu buferis ir pilns ar izlikto atslēgu DEL, kas izraisa dzēšanu
# vairāk atslēgu un tā tālāk, līdz datu bāze ir pilnībā iztukšota.
#
# Īsāk sakot... Ja jums ir pievienoti vergi, ieteicams iestatīt zemāku
# ierobežojums maxmemory, lai sistēmā būtu brīva RAM vergam
# izvades buferi (bet tas nav nepieciešams, ja politika ir "noeviction").
#
# BRĪDINĀJUMS: neiestatot maxmemory, Redis tiks pārtraukts ar
# Atmiņas trūkuma izņēmums, ja ir sasniegts kaudzes ierobežojums.
#
# PIEZĪME: tā kā Redis izmanto sistēmas peidžeru failu, lai piešķirtu kaudzes atmiņu,
# Darba komplekta atmiņas lietojums, ko parāda Windows uzdevumu pārvaldnieks vai citi
# rīki, piemēram, ProcessExplorer, ne vienmēr būs precīzi. Piemēram, pareizi
# pēc RDB vai AOF failu fona saglabāšanas darba kopas vērtība
# var ievērojami samazināties. Lai pārbaudītu pareizo izmantotās atmiņas daudzumu
# ar redis-serveri, lai saglabātu datus, izmantojiet INFO klienta komandu. INFORMĀCIJA
# komanda rāda tikai atmiņu, kas tiek izmantota redis datu glabāšanai, nevis papildu
# atmiņa, ko Windows process izmanto savām vajadzībām. Th3 papildu summa
# atmiņas, ko neziņo komanda INFO, var aprēķināt, atņemot
# Maksimālais darba komplekts, par kuru ziņo Windows uzdevumu pārvaldnieks un used_memory_peak
# ziņo komanda INFO.
#
# maksimālā atmiņa <bytes>

Brīdinājums: Ja kaudzes ierobežojums ir sasniegts, neiestatot maksimālo atmiņu, Redis tiks pārtraukts ar izņēmumu bez atmiņas.

Piezīme: Sakarā arRedis izmanto sistēmas peidžeru failus, lai piešķirtu kaudzes atmiņu

Windows uzdevumu pārvaldnieks vai citi rīki, piemēram, ProcessExplorer, ne vienmēr parāda precīzu darbkopas atmiņas lietojumu. Vienkārši sakot,Uzdevumu pārvaldnieka parādītais atmiņas lietojums nav precīzs!!!

Izmantojiet komandu info, lai vaicātu šādi:

# Atmiņa
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



Iestatījumi ir šādi:

1073741824 baiti = 1G
Pēc iestatījuma redis .net klients pievieno kešatmiņas kļūdu šādi:

OOM komanda nav atļauta, ja izmantotā atmiņa > 'maxmemory'.
# MAXMEMORY POLICY: kā Redis izvēlēsies, ko noņemt, kad maxmemory
# ir sasniegts. Varat izvēlēties kādu no piecām darbībām:
#
# volatile-lru -> noņemiet atslēgu ar derīguma termiņu, izmantojot LRU algoritmu
# allkeys-lru -> noņemt jebkuru atslēgu saskaņā ar LRU algoritmu
# gaistošs-nejaušs -> noņemiet nejaušu atslēgu ar derīguma termiņa beigu kopu
# allkeys-random -> noņemt nejaušu atslēgu, jebkuru atslēgu
# volatile-ttl -> noņemiet atslēgu ar tuvāko derīguma termiņu (neliels TTL)
# noeviction -> vispār nebeidzas, vienkārši atgrieziet kļūdu rakstīšanas operācijās
#
# Piezīme: izmantojot kādu no iepriekš minētajām politikām, Redis atgriezīs kļūdu rakstīšanas laikā
# operācijas, kad nav piemērotu atslēgu izlikšanai.
#
# Šo komandu rakstīšanas dienā ir: set setnx setex pievienot
# incr decr rpush lpush rpushx lpush 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
#
# Noklusējums ir:
#
# maxmemory-politika noeviction
#MAXMEMORY策略: Kad MAXMEMORY

#到达. Varat izvēlēties kādu no piecām darbībām:

#

#volatile LRU-> izmanto LRU algoritmu, lai noņemtu atslēgas ar derīguma termiņa beigām

#allkeys LRU-> izdzēš jebkuru atslēgu saskaņā ar LRU algoritmu

#volatile nejaušs - > noņemt nejaušas atslēgas ar derīguma termiņu

#allkeys nejauši > izdzēš nejaušas atslēgas, patvaļīgas atslēgas

#volatile TTL-> Dzēst atslēgu ar tuvāko derīguma termiņu (neliels TTL)

#noeviction-> vispār nebeidzas, atgriež tikai rakstīšanas operācijas kļūdas

#

#注意: Jebkurai no iepriekš minētajām stratēģijām Redis atgriež kļūdu rakstīšanas laikā

#操作, ja nav piemērotas izlikšanas atslēgas.

#

#在编写之日 šīs komandas ir: 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 exec sorting

#

#默认值为:

#

#maxmemory策略无效
Jums ir jāiestata arī šādas konfigurācijas:

Noklusējuma redis iestatījums ir ļoti konservatīvs, tas ir, tas netiek saglabāts pēc atmiņas ierobežojuma pārsniegšanas, un politiku var mainīt uz LRU algoritmu (nesen vismazāk izmantotais algoritms) - jaunā saglabātā informācija aizstās veco informāciju.

Pārskats:

Redis noturības atšķirība starp RDB un AOF
https://www.itsvse.com/thread-9555-1-1.html

Docker instalācija palaiž Redis kešatmiņu
https://www.itsvse.com/thread-8995-1-1.html

Piemēri paskaidro, kas ir Redis kešatmiņas iekļūšana, kešatmiņas lavīna un kešatmiņas sadalījums
https://www.itsvse.com/thread-8968-1-1.html

Redis aizstājējzīmes, lai izdzēstu atslēgas lielapjomā
https://www.itsvse.com/thread-7957-1-1.html

CentOS 7 instalēšana Redis 5.0.3 apmācība
https://www.itsvse.com/thread-7201-1-1.html

Instalējiet redis paplašinājumu zem php 5.5.7 zem CentOS
https://www.itsvse.com/thread-7200-1-1.html

Cik atslēgu var saglabāt redis instancē un kādas ir maksimālās atslēgas un vērtības?
https://www.itsvse.com/thread-6848-1-1.html

Redis ķīniešu problēmu nevar pareizi parādīt
https://www.itsvse.com/thread-5032-1-1.html

Redis iespējo attālinātu piekļuvi
https://www.itsvse.com/thread-5011-1-1.html

Windows neizdodas startēt Redis pakalpojumu, kļūda 1067: process negaidīti tiek pārtraukts.
https://www.itsvse.com/thread-5010-1-1.html

CentOS instalēts Redis 4.0.8
https://www.itsvse.com/thread-4614-1-1.html

Redis izveido attālo savienojumu un piekļuves paroles
https://www.itsvse.com/thread-4101-1-1.html

Redis iztukšo datu kešatmiņu
https://www.itsvse.com/thread-4027-1-1.html

Redis noturības konfigurācija un izslēgšanas noturība
https://www.itsvse.com/thread-4012-1-1.html

Atšķirība starp saglabāšanu un bgsave redis
https://www.itsvse.com/thread-4010-1-1.html

Redis divas noturības metodes un principi
https://www.itsvse.com/thread-4009-1-1.html

Redis ir trīs veidi, kā sākt
https://www.itsvse.com/thread-4008-1-1.html

Redis komandrindas logu slēpšanas metode
https://www.itsvse.com/thread-2988-1-1.html

Redis Hash Hash Hash vērtības problēma
https://www.itsvse.com/thread-2587-1-1.html

5 lietas, kas jums jāzina pirms Redis lietošanas
https://www.itsvse.com/thread-2580-1-1.html

Redis modificē noklusējuma porta numuru un iestata piekļuves paroli
https://www.itsvse.com/thread-2577-1-1.html

Redis Windows 64 bitu lejupielāde, oficiālā lejupielādes adrese
https://www.itsvse.com/thread-2576-1-1.html

Redis detalizētiem skaidrojumiem izmanto Lua skriptus
https://www.itsvse.com/thread-9634-1-1.html

Redis Benchmark veiktspējas tests
https://www.itsvse.com/thread-9645-1-1.html

(Beigas)






Iepriekšējo:NPOI spriedums par šūnas datuma tipu
Nākamo:NPOI operācija Excel detalizēts skaidrojums
 Saimnieks| Publicēts 2023-7-12 21:08:55 |
Redis atmiņas astoņas eliminācijas stratēģijas
https://www.itsvse.com/thread-10626-1-1.html
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com