Redis RDB-ийн бүтэн нэр юу вэ? Redis RDB санах ойн өгөгдлийн тогтвортой ажиллах горим

RDB-ийн бүтэн нэр ньRedis database.

  • Нэрнээс нь харахад RDB нь өгөгдлийг хадгалахад ашигладаг Redis мэдээллийн сан юм.
  • Тиймээс RDB-ийн тогтвортой байдлын тусламжтайгаар Redis санах ойд хадгалагдсан өгөгдлийг RDB файлд бичиж, дискэнд хадгалдаг.
  • Redis-ийн онцлог нь өгөгдлийг хадгалах, өөрөөр хэлбэл ямар ч өгөгдөл алдагдахгүй байхын тулд санах ойд өгөгдлийг диск рүү бичих, мөн дискнээс санах ой руу өгөгдлийг ачаалах боломжтой юм.

Redis RDB-ийн бүтэн нэр юу вэ? Redis RDB санах ойн өгөгдлийн тогтвортой ажиллах горим

Redis-ийн эхэн үеийн үйлдлүүд бүгд санах ой дээр суурилдаг тул гүйцэтгэл нь маш өндөр байдаг ч програмыг хаасны дараа өгөгдөл алдагддаг.

Тиймээс бид санах ойн өгөгдлийг диск рүү заасан интервалаар бичих хэрэгтэй бөгөөд энэ нь Snapshot гэсэн үг юм.

Сэргээх үед агшин зуурын файлыг санах ойд шууд бичдэг.

Энэ нь бас Redis болон Memcached-ийн гол ялгаануудын нэг юм, учир нь Memcached нь тогтвортой ажиллах чадваргүй байдаг.

Redis санах ойн өгөгдлийг хадгалахын тулд Redis бидэнд дараах аргуудыг өгдөг.

  • Snapshot арга (RDB, Redis DataBase): санах ойн өгөгдлийг тодорхой агшинд хоёртын хэлбэрээр диск рүү бичих;
  • Зөвхөн файл нэмэх (AOF, Зөвхөн хавсаргах), бүх үйлдлийн командуудыг бичиж, текст хэлбэрээр файлд хавсаргах;
  • Redis 4.0-ийн дараах шинэ арга болох Hybrid persistence нь RDB болон AOF-ийн давуу талыг хослуулсан.Бичиж байхдаа эхлээд одоогийн өгөгдлийг файлын эхэнд RDB хэлбэрээр бичиж, дараа нь дараагийн үйлдлийн командуудыг файлд AOF хэлбэрээр хадгалдаг бөгөөд энэ нь Redis-ийг дахин эхлүүлэх хурдыг хангахаас гадна багасгах боломжтой. мэдээлэл алдагдах эрсдэл.

Учир нь тогтвортой байдлын схем бүр нь тодорхой хэрэглээний хувилбаруудтай байдаг.

Redis RDB санах ойн өгөгдөл хадгалах горим

  • RDB (Redis DataBase) нь тодорхой агшинд санах ойн агшин зуурын зургийг (Snapshot) диск рүү хоёртын хэлбэрээр бичих процесс юм.
  • Санах ойн агшин зуурын зургууд нь бидний дээр хэлсэн зүйл юм.Энэ нь тодорхой агшинд санах ой дахь өгөгдлийн улсын бүртгэлийг хэлнэ.
  • Энэ нь зураг авахтай адил юм.Та найзынхаа зургийг авах үед тухайн зураг нь найзынхаа бүх зургийг агшин зуурт бичиж болно.
  • RDB-ийг өдөөх хоёр арга байдаг: нэг нь гараар гох, нөгөө нь автоматаар гох.

RDB-г гараар өдөөх

Тогтвортой байдлыг гараар өдөөх хоёр үйлдэл байдаг:saveТэгээдbgsave.

Тэдний гол ялгаа нь Redis-ийн үндсэн урсгалын гүйцэтгэлийг хаах эсэх юм.

1. хадгалах команд

Үйлчлүүлэгч тал дээр хадгалах командыг гүйцэтгэх нь Redis-ийн тогтвортой байдлыг өдөөх боловч энэ нь Redis-ийг блоклох төлөвт оруулах болно. RDB ажиллахгүй болтол бусад үйлчлүүлэгчийн илгээсэн командуудад хариу өгөхгүй тул үүнийг болгоомжтой ашиглах хэрэгтэй. үйлдвэрлэлийн орчин.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

Тушаалыг гүйцэтгэх үйл явцыг зурагт үзүүлэв 

2. bgsave команд

  • bgsave (арын дэвсгэр дээр хадгалах) нь дэвсгэр хадгалалт юм.
  • Хадгалах командаас хамгийн том ялгаа нь bgsave нь хүүхэд процессыг таслан зогсооход оршино.
  • Бүх үйл явц нь зөвхөн хүүхдийн процесс нь сэрээтэй үед л тохиолддог.Зөвхөн богинохон бөглөрөл бий.
  • Хүүхдийн процессыг үүсгэсний дараа Redis-ийн үндсэн процесс нь бусад үйлчлүүлэгчдийн хүсэлтэд хариу өгөх боломжтой.

бүх үйл явцыг блоклох замаарsaveтушаалтай харьцуулахадbgsaveТушаал нь бидэнд ашиглахад илүү тохиромжтой нь ойлгомжтой.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

RDB-г автоматаар өдөөх

Гараар гохыг ярьсны дараа автомат гохыг харцгаая.Бид тохиргооны файлд автоматаар идэвхжүүлэх нөхцлийг тохируулах боломжтой.

1. mn хэмнэнэ

  • save mn гэдэг нь m секундын дотор n товчлуур солигдвол тууштай байдал автоматаар идэвхжинэ гэсэн үг.m ба n параметрүүдийг Redis тохиргооны файлаас олж болно.
  • Жишээлбэл, 60 1 хэмнэнэ гэдэг нь 60 секундын дотор нэг түлхүүр өөрчлөгдвөл RDB тогтвортой байдал идэвхжинэ гэсэн үг.
  • Автоматаар өдөөх тогтвортой байдлын мөн чанар нь хэрэв тогтоосон гох нөхцөл хангагдсан бол Redis нь bgsave командыг нэг удаа автоматаар гүйцэтгэнэ.

Тайлбар: Олон тооны save mn командыг тохируулсан тохиолдолд аль нэг нөхцөл нь тогтвортой байдлыг өдөөх болно.

Жишээлбэл, бид дараах хоёр save mn командыг тохируулна:

save 60 10
save 600 20
  • Redis түлхүүрийн утга 60 секундын дотор 10 удаа өөрчлөгдөхөд тогтвортой байдал идэвхжинэ;
  • Хэрэв Redis товчлуур 60 секундын дотор өөрчлөгдвөл, хэрэв утга нь 10 дахин бага өөрчлөгдвөл Redis нь Redis товчлуурыг 600 секундын дотор дор хаяж 20 удаа өөрчилсөн эсэхийг тодорхойлох бөгөөд хэрэв тийм бол тогтвортой байдлыг өдөөх болно.

2. Flushall

  • Redis мэдээллийн санг цэвэрлэхийн тулд flushall командыг ашигладаг.
  • Үүнийг үйлдвэрлэлийн орчинд болгоомжтой ашиглах хэрэгтэй.
  • Redis нь flushall командыг гүйцэтгэх үед автоматаар тогтвортой ажиллахыг идэвхжүүлж, RDB файлыг цэвэрлэнэ.

3. Мастер-боол синхрончлолын гох

Redis master-slave репликацийн үед боол зангилаа бүрэн хуулбарлах үйлдлийг гүйцэтгэх үед мастер зангилаа RDB файлыг slave зангилаа руу илгээхийн тулд bgsave командыг гүйцэтгэнэ.Энэ процесс автоматаар Redis-ийн тогтвортой байдлыг идэвхжүүлдэг.

Redis нь командуудаар дамжуулан одоогийн тохиргооны параметрүүдийг асууж болно.

Асуулгын командын формат нь:config get xxx

Жишээлбэл, хэрэв та RDB файлын хадгалах нэрийн тохиргоог авахыг хүсвэл ашиглаж болно config get dbfilename .

Гүйцэтгэлийн үр нөлөө нь дараах байдалтай байна.

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Redis сервер нь RDB файлыг ачаалж дуустал блоклох тул энэ нь удаан хугацааны туршид вэбсайт руу нэвтрэх боломжгүй болно.

Хэрэв та Redis-ийн RDB кэш файлын dump.rdb-г гараар устгахыг хүсвэл dump.rdb файлын хадгалах замыг олохын тулд дараах тушаалыг ашиглаж болно▼

find / -name dump.rdb
  • Дараа нь dump.rdb кэш файлыг SSH-ээр гараар устгана уу.

Redis нь RDB-ийн тохиргоог тохируулдаг

RDB-ийн тохиргоог тохируулахын тулд та дараах хоёр аргыг ашиглаж болно.

  1. Redis тохиргооны файлыг гараар өөрчлөх
  2. Тушаалын мөрийн тохиргоог ашиглана уу, config set dir "/usr/data" нь RDB файлыг өөрчлөх хадгалах команд юм.

Тайлбар: redis.conf доторх тохиргоог get xxx тохиргоогоор авч, тохиргооны xxx утгыг ашиглан өөрчлөх боломжтой бөгөөд Redis тохиргооны файлыг гараар өөрчлөх арга нь дэлхий даяар үр дүнтэй байдаг, өөрөөр хэлбэл Redis серверийг дахин ачаалснаар тохируулсан параметрүүд ажиллахгүй. алдагдах боловч тушаалыг ашиглан өөрчилсөн тохиолдолд Redis-ийг дахин эхлүүлсний дараа алга болно.

Гэсэн хэдий ч, хэрэв та Redis тохиргооны файлыг нэн даруй хүчин төгөлдөр болгохын тулд гараар өөрчлөхийг хүсвэл Redis серверийг дахин эхлүүлэх хэрэгтэй бөгөөд тушаалын арга нь Redis серверийг дахин эхлүүлэхийг шаарддаггүй.

RDB файл сэргээх

Redis сервер ажиллаж эхлэхэд, хэрэв RDB файл dump.rdb Redis-ийн үндсэн директорт байгаа бол Redis нь байнгын өгөгдлийг сэргээхийн тулд RDB файлыг автоматаар ачаална.

Хэрэв үндсэн директорт dump.rdb файл байхгүй бол эхлээд Redis-ийн үндсэн директор руу dump.rdb файлыг зөөнө үү.

Мэдээжийн хэрэг, Redis эхлэхэд лог мэдээлэл байгаа бөгөөд энэ нь RDB файл ачаалагдсан эсэхийг харуулах болно.

Redis сервер нь RDB файлыг ачаалж дуустал блоклодог.

Одоо бид RDB-ийн тууштай байдал нь гарын авлага болон автомат гох гэсэн хоёр төрөлд хуваагддаг болохыг мэдэж байна.

  1. Үүний давуу тал нь хадгалах файлын хэмжээ бага бөгөөд Redis-ийг эхлүүлэх үед өгөгдлийг сэргээх нь илүү хурдан байдаг.
  2. Сул тал нь өгөгдөл алдагдах эрсдэлтэй байдаг.

RDB файлуудыг сэргээх нь бас маш энгийн бөгөөд RDB файлуудыг Redis-ийн үндсэн директорт хийхэд л Redis автоматаар өгөгдлийг ачаалж, сэргээнэ.

RDB-ийн давуу болон сул талууд

1) RDB-ийн давуу тал

RDB контент нь хоёртын өгөгдөл, бага санах ой эзэлдэг, илүү авсаархан, нөөц файлын хувьд илүү тохиромжтой;

RDB нь гамшгийг сэргээхэд маш хэрэгтэй бөгөөд энэ нь Redis үйлчилгээг сэргээхэд зориулж алсын сервер рүү илүү хурдан шилжүүлэх боломжтой шахсан файл юм;

RDB нь Redis-ийн хурдыг ихээхэн сайжруулж чадна, учир нь Redis-ийн үндсэн процесс нь өгөгдлийг диск рүү хадгалахын тулд хүүхэд процессыг холбодог.

Redis үндсэн процесс нь дискний I/O гэх мэт үйлдлүүдийг гүйцэтгэдэггүй;

AOF форматтай файлуудтай харьцуулахад RDB файлууд илүү хурдан дахин эхэлдэг.

2) RDB-ийн сул талууд

RDB нь зөвхөн тодорхой хугацааны интервалд өгөгдлийг хадгалах боломжтой тул Redis үйлчилгээ санамсаргүйгээр дундуур нь зогссон тохиолдолд Redis-ийн өгөгдөл тодорхой хугацаанд устах болно;

RDB нь дэд оруулгыг ашиглан диск дээр хадгалахын тулд байнга сэрээ шаарддаг процесс.

Хэрэв өгөгдлийн багц том бол сэрээ нь цаг хугацаа их шаарддаг бөгөөд хэрэв өгөгдлийн багц том бол CPU-ийн гүйцэтгэл муу байдаг бөгөөд энэ нь Редисийг хэдэн миллисекунд эсвэл бүр секундын турш үйлчлүүлэгчдэд үйлчлэх боломжгүй болгодог.

Мэдээжийн хэрэг, бид Redis-ийн гүйцэтгэлийн үр ашгийг дээшлүүлэхийн тулд тууштай байдлыг идэвхгүй болгож болно.

Хэрэв та өгөгдлийн алдагдалд мэдрэмтгий биш бол үйлчлүүлэгч холбогдох үед үүнийг хийж болно config set save "" Redis-ийн тогтвортой байдлыг идэвхгүй болгох тушаал.

redis.conf, хэрэв байгаа болsaveБүх тохиргоог эхэнд нь тайлбарлаарай, мөн тууштай байх нь идэвхгүй болно, гэхдээ энэ нь ерөнхийдөө хийгдээгүй.

Hope Chen Weiliang блог ( https://www.chenweiliang.com/ ) shared "Redis RDB-ийн бүтэн нэр юу вэ? Redis RDB санах ойн өгөгдөл хадгалах горим нь танд туслах болно.

Энэ нийтлэлийн холбоосыг хуваалцахад тавтай морилно уу:https://www.chenweiliang.com/cwl-26677.html

Чен Вэйляны блогын Telegram сувагт тавтай морил, хамгийн сүүлийн үеийн мэдээг аваарай!

🔔 Сувгийн шилдэг лавлахаас "ChatGPT Content Marketing AI Tool Usage Guide"-г хамгийн түрүүнд аваарай! 🌟
📚 Энэхүү гарын авлага нь асар их үнэ цэнийг агуулсан, 🌟Энэ бол ховор боломж, бүү алдаарай! ⏰⌛💨
Хэрэв танд таалагдвал лайк дарж, хуваалцаарай!
Таны хуваалцах, дуртай зүйл бол бидний байнгын урам зориг юм!

 

发表 评论

Таны имэйл хаяг нийтлэгдэхгүй. 必填 项 已 用 дээр ажиллаж байна * 标注

滚动 到 顶部