429 ukufundwa
429 ukufundwa

Yini kufanele usebenzisa cache nge MongoDB?

nge MongoDB8m2025/05/14
Read on Terminal Reader

Kude kakhulu; Uzofunda

Izigaba ze-caching zithunyelwe ngenxa yokuba i-applications zithunyelwe ngokushesha idatha ebizwa ngqo kusuka ku-database ye-relational. Iningi le databases ye-relational ziye zithunyelwe ezingu-50 edlule lapho inkampani yenza idatha kanye nama-applications e-datacenter eyodwa. I-Fast forward ku-day, lapho amabhizinisi nama-customers zithunyelwe emhlabeni wonke, lapho wonke umuntu ufuna ukusebenza nge-data efanayo.
featured image - Yini kufanele usebenzisa cache nge MongoDB?
MongoDB HackerNoon profile picture
0-item

Umbhalo wahlala u-Andrew Morgan ka-MongoDB.

U-Andrew MorganU-Andrew Morgan


Okwangoku, ngibhalisa aDesign UkuhlolwaUkuze isicelo esithathwe kusuka ku-relational database ku-MongoDB, lapho ikhasimende usihlanganisa i-diagram ye-architectural ebonisa isakhiwo se-caching (ukuvamile i-Redis) esekelwe phakathi kwe-app server ne-MongoDB.

Design Ukuhlolwa


Ngithanda ukugcina isakhiwo elula kakhulu kunokwenzeka - ngemva kwalokho, ngamunye isakhiwo inikeza umthamo yayo yayo kanye nemikhiqizo yokulawula - ngakho ngithombe ukuthi ukuthi isakhiwo se-caching iyatholakala. Okwakheka, impendulo kuyinto njalo ukuthi kungcono ukufinyelela idatha ngokushesha. Lokhu kubonisa ukuhlangabezana kokubili isakhiwo se-caching kanye ne-MongoDB inikeza.


Ngicabanga ukuqala ukubuyekezwa kwe-design ngaphandle kokufunda ukunciphisa isigaba se-cache.


Ngakho-ke ukuchofoza umbuzo embhedeni le nqaku - lapho kufanele usebenzisa cache nge MongoDB? - isibuyekezo kuyoba. Le nqaku uqinisekisa ukuthi kungcono ukuthi, kodwa uma ufike ekupheleni futhi akholelwa ukuthi isicelo yakho kuyimfuneko, ngithanda ukubuyekeza isicelo yakho nawe.

Yini i-cache efana ne-Memcached & Redis yasungulwa, futhi kanjani zihlala?

Izingubo ze-caching ziye zithunyelwe ngenxa yokuba i-applications zithunyelwe ngokushesha idatha eyenziwe ngqo kusuka ku-database ye-relational.


Ingabe lokhu kubalulekile ukuba akuyona abathengi smart abasebenza ku-Oracle, DB2, Postgres, MySQL, njll? Ngakho-ke akuyona abathengi awukwazi ukwenza amabhasi we-relational ngokushesha? Ukuphendula kubhalwe ukuthi zonke lezi amabhasi amabhasi wabhaliswe ngama-developer amakhulu abahlanganisa ama-indices, ama-cache yebhasi yebhasi, nezinye izici zokwenza ukubuyekeza umbhalo ngokushesha.


I-problem iyona i-application akufanele ukhangela isicelo esisodwa esisodwa esekelwe ku-database ye-relational eyenziwe ngokuvamile. Ngokuvamile, kufanele isebenze ukuxhumana eziningana phakathi kwama-tables ezininzi ukuze ifakwe isikhwama esisodwa se-business. Lezi zihlanganisa zithakazelisayo (ama-slow and consume many resources). Ngenxa yalokhu, isicelo akufuna ukuxhumana ne-cost lapho zihlanganisa isikhwama esisodwa se-business. Kuyinto lapho isigaba se-caching ibonise impahla — isihlanganisa idatha se-relational eyenziwe ngexesha elinye bese ibhambise imiphumela ukuze isicelo ingathola ngokuvamile imiphumela efanayo izikhathi eziningi.


Ngaphezu kwalokho, inqubo ye-data distribution. Iningi le databases ye-relational yasungulwa eminyakeni angu-50 edlule lapho inkampani yenza i-database kanye nama-applications e-datacenter eyodwa. Ukulungele ngokushesha kuze kube namhlanje, lapho amabhizinisi nama-customers zihlanganisa emhlabeni wonke, lapho wonke umuntu ufuna ukusebenza nge-data efanayo. Ungafuna ukuthi ama-application servers e-global ezihlangene ne-latency ne-cost of continuously catching the same data from a database located on a different continent. Ungafuna i-copy of the data located locally close to every app server that needs it.


Izinhlelo zokusebenza ze-RDBMS zihlanganisa izixazululo ezithakazelisayo zokusebenza kulokhu, kodwa zihlanganisa okungcono. Ngaphandle kwalokho, amazwe amaningi zihlanganisa ukuxazululwa kwedatha ku-cache epholile.


Qaphela ukuthi i-Redis ne-Memcached isetshenziswe ngokubanzi ukulungiselela izinhlelo zokusebenza zewebhu lapho ukuzinza akufanele. Kulesi isicelo, i-cache yinto eyodwa yokuhlanza idatha (ie, akuyona isigaba sokuhlanza phakathi kwe-application ne-MongoDB). Nakuba ungasebenzisa i-MongoDB yokuhlanza izinhlelo, lokhu kunezinguquko.

Okokuqala, lokho kuyimfuneko ukuba unayo caching tier?

Ukuqhathanisa isigaba se-caching ikakhulukazi isixazululo esihle lapho ibhodi yakho ayikwazi ukunikezela ukusebenza kanye nokumiswa kwe-application yakho.


Nangona kunjalo, le nkqubo yedatha eyengeziwe inikeza izindleko. Okuhlobene zihlanganisa izicelo ze-software kanye ne-hardware ezidingekayo ukunikeza inkonzo ye-cache.


Okungenani okuhlobene kuyinto ingcindezi okwengeziwe kumadivayisi. It is a new query language (and possibly programming language) to master. What happens when the data in the RDBMS changes? How are those changes propagated to your cache layer?


Ngakho-ke, isigaba se-cache kufuneka ukunikezele ngokuvumela izinzuzo ezithakazelisayo ngokuvumela isicelo sakho ukufinyelela kwebhizinisi ngqo.

Yini kungcono MongoDB?

WazeMongoDB document model.

I-MongoDB Model yeDokument


Ngama-MongoDB, sincoma idatha akho eyenziwe ngempumelelo ukuze kusebenza ngokushesha ukuhlangabezana nezicelo zakho ezivame kakhulu (noma abo nge-SLAs ezinzima). I-MongoDB ibonise isakhiwo se-objects ngokuvumela idokhumenti eyodwa (i-document) ifakwe ama-objects ezihambile (i-nested). Ukusekela ama-array kunikeza i-one-to-many kanye ne-many-to-many izilinganiso ngaphandle kokufaka ama-collections eziningana.


Kwiimeko ezininzi, isikhwama se-business esithathwe yi-application kuya ku-MongoDB idokhumenti eyodwa. Kwiimeko ezininzi, kungabangela idokhumenti ezininzi angatholakala nge-indexed searchup eyodwa.


I-MongoDB ine-LRU ye-cache yayo ye-internal (okungenani esisebenzayo), ngakho-ke uma idokhumenti yakho ifakwe ngokushesha, kungenzeka ukuthi iyatholakala ku-memory. Ngakho-ke, njenge-Redis, i-MongoDB ingatholela isicelo sokufundisa ngokufaka idokhumenti/i-object eyodwa kusuka ku-memory.


Qaphela ukuthi i-MongoDB isekelwejoins, kodwa sincoma ukwakha idatha yakho ukuze ukunciphise ukusetshenziswa kwayo.

ikhaya


I-value-add-on ye-caching layer iyindawo yedatha ku-architectures e-distributed. I-MongoDB inikeza lokhu ku. AI-MongoDB Replica SetI-Node ye-Primary ye-MongoDB iyahambisana ne-49 ye-Node ye-Secondary, eyodwa nge-copy ye-data. Ukuze uthole izicelo ze-latency ezincinane, ungakwazi ukufaka ama-secondaries ezivamile kumasayithi ye-server ye-app yakho. I-MongoDB inesibophelele ukugcina idatha e-Node ye-Secondary ku-update ne-primary, ngakho-ke ungenza ukulanda kanye nokuthuthukisa ikhodi ye-synchronization eyengeziwe.

I-MongoDB Replica Set

Yini akuyona?

Imibuzo eyenziwe yi-generative AI iye yakhelwe ulwazi oluthunyelwe abantu asebenza, futhi ngakho-ke kufanele lihlanganisa imibuzo yabasetyhini. Ngingathanda kuyoba kubalulekile ukubona ukuthi i-AI iye yakhelwe ukuhlola njengesayensi esivamile mayelana nokuba abantu zihlanganisa i-cache ngaphambi kwe-MongoDB.


Ngithole i-ChatGPT 4o lokhu umbuzo:


"Ukuhlolwa ukuthi ngaba usebenzisa isigaba se-cache (njenge-Redis) ngaphandle kokufunda isicelo yami idatha kusuka ku-MongoDB ngqo."

I-Redis isebenza ngokuphelele kwi-memory, okwenza kahle ngempumelelo kune-MongoDB, okuyinto ibhekwa ku-Disk I/O yokufaka idatha.

"Ukuhlolwa ukuthi ngaba usebenzisa isigaba se-cache (njenge-Redis) ngaphandle kokufunda isicelo yami idatha kusuka ku-MongoDB ngqo."

I-Redis isebenza ngokuphelele kwi-memory, okwenza kahle ngempumelelo kune-MongoDB, okuyinto ibhekwa ku-Disk I/O yokufaka idatha.


Njengoba kubhalwe phezulu, i-MongoDB ine-cache yayo ye-in-memory, ngakho-ke idokhumenti abavela ngokushesha kuya ku-memory, futhi akufanele ukufinyelela kwedivayisi.


Ukunciphisa ukubheja ku-MongoDB. Ukufinyelela ngokushesha ku-MongoDB ngqo kwedatha efanayo kuncike ukubheja kwebhizinisi, okuyinto kungabangela ukubheja kwebhizinisi, ikakhulukazi ngaphansi kwe-read traffic eningi. "

Ukunciphisa ukubheja ku-MongoDB. Ukufinyelela ngokushesha ku-MongoDB ngqo kwedatha efanayo kuncike ukubheja kwebhizinisi, okuyinto kungabangela ukubheja kwebhizinisi, ikakhulukazi ngaphansi kwe-read traffic eningi. "


I-MongoDB iyatholakala ngokushesha. Ama-nodes ezingaphezu kwe-secondary angasetshenziswe ku-replica set ukongeza ububanzi be-query extra.I-MongoDB ye-sharding(I-partitioning) inokukwazi ukunyakaza umthamo we-data noma ukubhala i-throughput emangalisayo.

I-MongoDB ye-sharding


"Ukuhlukanisa Ukuhlolwa okuphezulu. Izicelo eziningana nezinga lokufaka (isib. izicelo zewebhu, APIs) zitholakala ukusetshenziswa kwamandla we-Redis yokuthumela idatha e-cache ngokushesha."


"Ukuhlukanisa Ukuhlolwa okuphezulu. Izicelo eziningana nezinga lokufaka (isib. izicelo zewebhu, APIs) zitholakala ukusetshenziswa kwamandla we-Redis yokuthumela idatha e-cache ngokushesha."


I-cache ye-database ye-MongoDB inikeza izinzuzo efanayo ngaphandle kokusebenza okwengeziwe ka-developer ekubeni izinguquko ze-data.


“I-Access Fast to Frequently Used Data. I-Redis iyona elungileyo yokubhalisa idatha e-frequently accessed noma i-hot data (isib. Isikhathi se-user, isizinda se-configurations, noma imininingwane se-product).”


“I-Access Fast to Frequently Used Data. I-Redis iyona elungileyo yokubhalisa idatha e-frequently accessed noma i-hot data (isib. Isikhathi se-user, isizinda se-configurations, noma imininingwane se-product).”


Ukufinyelela ngokushesha, idatha okushisayo iyatholakala ku-MongoDB's in-memory database cache.


“I-Lower Latency for Geo-Distributed Applications. Ngokuphathelisa ama-Caches e-Redis emangalisayo kumakhasimende ekupheleni, ungakwazi ukuvikela i-network latency ephezulu lapho ukhangela i-MongoDB emakhasimende.”


“I-Lower Latency for Geo-Distributed Applications. Ngokuphathelisa ama-Caches e-Redis emangalisayo kumakhasimende ekupheleni, ungakwazi ukuvikela i-network latency ephezulu lapho ukhangela i-MongoDB emakhasimende.”


I-Data Location ingahlukaniswa ngokufaka ama-replicas e-app server sites yakho.


“Ukukhuthaza idatha esifushane (TTL). I-Redis inesakhiwo se-Time-to-Live (TTL) isici esithathwe ngokuzenzakalelayo idatha esifushane ngemva kokuzihlanganisa isikhathi esifushane.”


“Ukukhuthaza idatha esifushane (TTL). I-Redis inesakhiwo se-Time-to-Live (TTL) isici esithathwe ngokuzenzakalelayo idatha esifushane ngemva kokuzihlanganisa isikhathi esifushane.”


I-MongoDB isebenzisa i-LRU cache, ngakho-ke ezinye izidakamizwa ezidlulile ziye zithunyelwe emoyeni uma i-space iyadingeka ngoba idatha ezidlulileyo ezidlulile. I-MongoDB futhi hasUkubuyekezwaUma ufuna ukuthatha idokhumenti kusuka ku-database ngokugcwele nomaI-Atlas Online ye-ArchiveUma ufuna ukulayisha ku-storage enhle.

UkubuyekezwaI-Atlas Online ye-Archive


"Ukuhlola kusuka ku-MongoDB ngokuvamile kungase ku-resource-intensive, ikakhulukazi nge-queries ephikile, okwenza izindleko zokuthuthukiswa kwama-infrastructure."


"Ukuhlola kusuka ku-MongoDB ngokuvamile kungase ku-resource-intensive, ikakhulukazi nge-queries ephikile, okwenza izindleko zokuthuthukiswa kwama-infrastructure."


I-MongoDB ye-scheme yakho kufanele yenzelwe ukuze izibuyekezo zayo ebaluleke akudingeke izibuyekezo ezinzima.


"Use Cases for Specialized Data Structures. I-Redis inikeza izakhiwo zokuthuthukiswa kwebhizinisi, njenge-lists, amasethi, ama-sets, ama-hashes, ne-streams, okuyinto e-MongoDB ayizokunika ngokwemvelo."


"Use Cases for Specialized Data Structures. I-Redis inikeza izakhiwo zokuthuthukiswa kwebhizinisi, njenge-lists, amasethi, ama-sets, ama-hashes, ne-streams, okuyinto e-MongoDB ayizokunika ngokwemvelo."


I-MongoDB inikeza i-hashes njenge-array of documents containing keyword-value pairs (i-hashes ingatholakala ku-mongoDB).I-MongoDB Pattern ye-attributeNgathiI-MongoDB Time Series Imininingwaneukuhlangabezana nezidingo efanayo ezifana ne-Redis Streams.

I-MongoDB Pattern ye-attributeI-MongoDB Time Series Imininingwane


“I-Resilience and Fault Tolerance. I-cache layer ingasebenza njenge-fallback uma i-MongoDB ayikho ngempumelelo noma ngaphansi kwezimpahla ezinzima.”


“I-Resilience and Fault Tolerance. I-cache layer ingasebenza njenge-fallback uma i-MongoDB ayikho ngempumelelo noma ngaphansi kwezimpahla ezinzima.”


I-MongoDB ingasebenza ngokuvamile noma ngokuvamile ukuze kuhlobene nezidingo zokusebenza zokusebenza.Ukuphakamisa kungenziwa ku-automated lapho usebenzisa i-MongoDB Atlas. I-MongoDB replica sets inikeza ukunambitheka kwe-fault tolerance kumadokhumenti kanye ne-writes.

Ukuphakamisa kungenziwa ku-automated lapho usebenzisa i-MongoDB Atlas


“I-Simplified Complex Query Results. I-MongoDB inesikhathi eside ukucubungula izixazululo ze-complex (isib. Ama-aggregations, ama-joins) ukuze uthole imiphumela e-frequently requested.”


“I-Simplified Complex Query Results. I-MongoDB inesikhathi eside ukucubungula izixazululo ze-complex (isib. Ama-aggregations, ama-joins) ukuze uthole imiphumela e-frequently requested.”


I-MongoDB ye-scheme yakho kufanele yenzelwe ukuze akufanele ukuguqulwa kwebhizinisi emangalisayo ngokushesha. Imiphumela ingathunyelwa (i-cache)MongoDB ukubuyekeza, ukunciphisa ukunemba ukuguqulwa okuqhubekayo kwebhizinisi/i-aggregation efanayo.

MongoDB ukubuyekeza


Qaphela ukuthi impendulo esithathwe kusuka ku-ChatGPT kubaluleke kakhulu imibuzo esithathwe. Uma ngifake isicelo yami ku-"Ukuhlolise ukuthi akufanele usebenzisa isigaba se-cache (njenge-Redis) ngaphandle kokwenza isicelo yami ukucacisa idatha kusuka ku-MongoDB ngqo," I-ChatGPT iyahlekile ukunceda ukongeza isigaba se-cache, ukhangela izimo ezifana nokukhula kwekhwalithi, imibuzo se-data, ukusebenza kwama-workloads ezinzima yokubhalisa, izindleko, ukucaciswa kwebhizinisi, ukugcinwa nokuthembeka, ama-datasets amancane (ama-datasets asebenzayo ku-cache ye-MongoDB), kanye nokuhlolwa kwe-real-time

Ukuhlobisa

I-cache layer ingatholakala kakhulu lapho i-RDBMS yakho ayikwazi ukunikezela ukusebenza kwe-query eyenza i-application yakho. Xa usebenzisa i-MongoDB, idatha ye-record kanye ne-cache functionality iyahlukaniswe ku-layer eyodwa, ukugcina imali futhi isikhathi sokuthuthukiswa.


I-cache e-distributed ingakwazi ukunciphisa izixazululo ze-RDBMS yakho, kodwa i-MongoDB ine-distribution ehlanganisiwe.


Qaphela le nqaku uma ungenza ukuthi isicelo yakho uyaziqhathaniswa ne-cache layer phakathi kwe-application yakho ne-MongoDB. Ngingathanda ukubuyekeza.

Funda kabanzi mayelana ne-MongoDB design reviews

Ukuhlolwa DesignI-MongoDB yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali yobungcali.

Ukuhlolwa Design


Kulesi isihloko esifundisa ukuthi ukucubungula isakhiwo se-MongoDB esifanayo indlela yokusebenza kwe-application yakho nge-data kungatholakala nezidingo zakho zokusebenza ngaphandle kokufuna isakhiwo se-cache. Uma ufuna ukunakekela ukuqala isakhiwo se-mongoDB, isakhiwo sokubuyiselwa indlela yokufumana lokhu ukunakekela.


Ingabe isicelo sakho uyaziqhathanisa ukubuyekezwa?Ukubuyekeza design yakho.

Ukubuyekeza design yakho

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks