E pili ana i ka neʻe ʻana mai Redis i Redis-cluster

E pili ana i ka neʻe ʻana mai Redis i Redis-cluster

Ke hele mai nei i kahi huahana e ulu nei no nā makahiki he ʻumi, ʻaʻole ia he mea kupanaha ka ʻike ʻana i nā ʻenehana kahiko i loko. Akā, pehea inā i loko o ʻeono mahina e mālama ʻoe i ka ukana 10 mau manawa kiʻekiʻe, a ʻo ke kumukūʻai o ka hāʻule e hoʻonui mau haneli? I kēia hihia, pono ʻoe i kahi Highload Engineer. Akā i ka loaʻa ʻole o kahi kaikamahine, ua hāʻawi lākou iaʻu i ka hoʻoponopono ʻana i ka pilikia. Ma ka ʻāpana mua o ka ʻatikala e haʻi wau iā ʻoe pehea mākou i neʻe ai mai Redis a Redis-cluster, a ma ka ʻāpana ʻelua e hāʻawi wau i ka ʻōlelo aʻo e pili ana i ka hoʻomaka ʻana e hoʻohana i ka cluster a me ka mea e hoʻolohe ai i ka wā e hoʻohana ai.

Koho ʻenehana

He ino anei? kaawale Redis (kūʻokoʻa redis) i ka hoʻonohonoho o 1 haku a me N kauā? No ke aha wau i kapa ai he ʻenehana kahiko?

ʻAʻole, ʻaʻole maikaʻi ʻo Redis ... Eia naʻe, aia kekahi mau hemahema ʻaʻole hiki ke mālama ʻia.

  • ʻO ka mea mua, ʻaʻole kākoʻo ʻo Redis i nā hana hoʻōla pōʻino ma hope o ka hemahema o ka haku. No ka hoʻoponopono i kēia pilikia, ua hoʻohana mākou i kahi hoʻonohonoho me ka hoʻololi maʻalahi o nā VIP i kahi haku hou, e hoʻololi i ke kuleana o kekahi o nā kauā a hoʻololi i ke koena. Ua hana kēia mīkini, akā ʻaʻole hiki ke kapa ʻia he hopena hilinaʻi. ʻO ka mea mua, ua puka mai nā ʻōhumu hoʻopunipuni, a ʻo ka lua, ua hoʻopau ʻia, a ma hope o ka hana ʻana i nā hana manual e koi ʻia e hoʻopiʻi i ka pūnāwai.

  • ʻO ka lua, ʻo ka loaʻa ʻana o hoʻokahi haku i alakaʻi i ka pilikia o ka sharding. Pono mākou e hana i kekahi mau puʻupuʻu kūʻokoʻa "1 haku a me nā kauā N," a laila e puʻunaue lima i nā ʻikepili i waena o kēia mau mīkini a manaʻolana ʻaʻole e pehu nui kekahi o nā waihona i mea e hoʻoneʻe ʻia i kahi ʻokoʻa.

He aha nā koho?

  • ʻO ka hopena maikaʻi loa a me ka waiwai nui ʻo Redis-Enterprise. He hopena pahu pahu kēia me ke kākoʻo ʻenehana piha. ʻOiai ʻo ia ke ʻano maikaʻi loa mai ka ʻike loea, ʻaʻole ia i kūpono iā mākou no nā kumu ideological.
  • Redis-huihui. Aia ma waho o ka pahu ke kākoʻo no master failover a me sharding. ʻAʻole ʻokoʻa ka interface me ka mana maʻamau. He mea hoʻohiki, e kamaʻilio mākou e pili ana i nā pitfalls ma hope.
  • ʻO Tarantool, Memcache, Aerospike a me nā mea ʻē aʻe. Hana like kēia mau mea hana a pau. Akā he mau hemahema ko kēlā me kēia. Ua hoʻoholo mākou ʻaʻole e hoʻokomo i kā mākou mau hua a pau i loko o ka hīnaʻi hoʻokahi. Hoʻohana mākou iā Memcache a me Tarantool no nā hana ʻē aʻe, a, e nānā ana i mua, e ʻōlelo wau i kā mākou hana ʻoi aku ka nui o nā pilikia me lākou.

Nā kikoʻī o ka hoʻohana

E nānā i nā pilikia a mākou i hoʻoponopono ai i ka mōʻaukala me Redis a me nā hana a mākou i hoʻohana ai:

  • Cache ma mua o nā noi i nā lawelawe mamao e like me 2GIS | ʻO Golang

    E LOA I KA SET MGET MSET "KOHO DB"

  • Cache ma mua o MYSQL | PHP

    E LOA I KA SET MGET MSET SCAN "KEY BY PATTERN" "WE DB"

  • ʻO ka waihona nui no ka lawelawe o ka hana ʻana me nā kau a me nā hoʻonohonoho hoʻokele | ʻO Golang

    E LOA I KA SET MGET MSET "KOHO DB" "ADD GEO KEY" "GET GEO KEY" SCAN

E like me kāu e ʻike ai, ʻaʻohe makemakika kiʻekiʻe. He aha ka pilikia? E nānā kaʻawale i kēlā me kēia ʻano.

Palapala
hōʻikeʻano
Nā hiʻohiʻona o Redis-cluster
olelo hooholo

E KAUOHA
Kākau/heluhelu kī

MGET MSET
Kākau/heluhelu i nā kī he nui
Aia nā kī ma nā node like ʻole. Hiki i nā hale waihona puke i hoʻomākaukau ʻia ke hana i nā hana lehulehu i loko o hoʻokahi node
Hoʻololi iā MGET me kahi paipu o nā hana N GET

KOHO DB
E koho i ke kahua a mākou e hana pū ai
ʻAʻole kākoʻo i nā waihona ʻikepili lehulehu
E hoʻokomo i nā mea a pau i hoʻokahi waihona. Hoʻohui i nā prefix i nā kī

SCAN
E hele i nā kī āpau i ka waihona
No ka mea he hoʻokahi kā mākou waihona, ʻoi aku ka pipiʻi o ka hele ʻana i nā kī āpau o ka hui
E mālama i kahi ʻokoʻa i loko o hoʻokahi kī a hana i kahi HSCAN ma kēia kī. A i ʻole e hōʻole loa

GEO
Nā hana me kahi geokey
ʻAʻole ʻoki ʻia ka geokey

KI MA KE KANAWAI
Ke ʻimi nei i kahi kī ma ke ʻano
No ka loaʻa ʻana o hoʻokahi waihona, e ʻimi mākou ma nā kī āpau o ka hui. Piʻi nui loa
Hōʻole a mālama paha i ka ʻokoʻa, e like me ka hihia o SCAN

ʻO Redis vs Redis-cluster

He aha kā mākou e nalowale ai a he aha ka mea e loaʻa iā mākou ke hoʻololi i kahi hui?

  • Nā pōʻino: nalowale mākou i ka hana o kekahi mau waihona.
    • Inā makemake mākou e mālama i nā ʻikepili pili ʻole i loko o kahi puʻupuʻu, pono mākou e hana i nā koʻokoʻo ma ke ʻano o nā prefixes.
    • Nalo mākou i nā hana "base", e like me SCAN, DBSIZE, CLEAR DB, etc.
    • Ua ʻoi aku ka paʻakikī o ka hoʻokō ʻana i nā hana lehulehu no ka mea pono ke komo i nā nodes.
  • Nui:
    • ʻO ka hoʻomanawanui hewa ma ke ʻano o master failover.
    • Sharding ma ka ʻaoʻao Redis.
    • Hoʻololi i ka ʻikepili ma waena o nā nodes me ka ʻole o ka manawa hoʻomaha.
    • Hoʻohui a puʻunaue hou i ka hiki a me nā ukana me ka ʻole o ka manawa hoʻomaha.

Manaʻo wau inā ʻaʻole pono ʻoe e hāʻawi i kahi kiʻekiʻe o ka hoʻomanawanui hewa, a laila ʻaʻole pono ka neʻe ʻana i kahi puʻupuʻu, no ka mea hiki ke hana i kahi hana ʻole. Akā inā koho mua ʻoe ma waena o kahi ʻano ʻokoʻa a me kahi ʻano cluster, a laila pono ʻoe e koho i kahi hui, no ka mea, ʻaʻole ia i ʻoi aku ka maikaʻi a, eia kekahi, e hoʻomaha iā ʻoe i kekahi o nā poʻo.

Hoʻomākaukau e neʻe

E hoʻomaka kākou me nā koi no ka neʻe ʻana:

  • Pono ʻole ia. ʻAʻole kūpono ka pau ʻana o ka lawelawe no 5 mau minuke iā mākou.
  • Pono e palekana a me ka mālie e like me ka hiki. Makemake au e hoʻomalu i ke kūlana. ʻAʻole mākou makemake e hoʻolei i nā mea āpau i ka manawa hoʻokahi a pule i ka pihi rollback.
  • ʻO ka liʻiliʻi liʻiliʻi o ka ʻikepili i ka neʻe ʻana. Hoʻomaopopo mākou he mea paʻakikī loa ka neʻe ʻana i ka atomically, no laila ke ʻae nei mākou i kahi desynchronization ma waena o ka ʻikepili ma Redis maʻamau a hui pū ʻia.

Ka mālama pūʻulu

Ma mua o ka neʻe ʻana, pono mākou e noʻonoʻo inā hiki iā mākou ke kākoʻo i ka pūʻulu:

  • Nā palapala kiʻi. Hoʻohana mākou iā Prometheus a me Grafana e kiʻi i ka ukana CPU, hoʻohana hoʻomanaʻo, helu o nā mea kūʻai aku, helu o nā hana GET, SET, AUTH, etc.
  • ʻike. E noʻonoʻo ʻoe i ka lā ʻapōpō e loaʻa iā ʻoe kahi hui nui ma lalo o kāu kuleana. Inā haʻihaʻi, ʻaʻohe mea hiki iā ʻoe ke hoʻoponopono. Inā hoʻomakaʻo ia e lohi, e holo nā mea a pau iāʻoe. Inā pono ʻoe e hoʻohui i nā kumuwaiwai a puʻunaue hou i ka ukana, e hoʻi mai iā ʻoe. I ʻole e lilo i hina i ka 25, pono e hoʻolako i kēia mau hihia a nānā mua i ke ʻano o ka ʻenehana ma lalo o kekahi mau hana. E kamaʻilio hou kākou e pili ana i kēia ma ka ʻāpana “Expertise”.
  • Ka nānā ʻana a me nā makaʻala. Ke wāwahi ʻia kahi pūʻulu, makemake ʻoe e ʻike mua e pili ana iā ia. Ma ʻaneʻi mākou i kaupalena iā mākou iho i ka hoʻolaha ʻana e hoʻihoʻi nā nodes a pau i ka ʻike like e pili ana i ke kūlana o ka puʻupuʻu (ʻae, ʻokoʻa ka hopena). A hiki ke ʻike koke ʻia nā pilikia ʻē aʻe e nā mākaʻikaʻi mai nā lawelawe mea kūʻai aku Redis.

Hoʻohui ʻana

Pehea mākou e neʻe ai:

  • ʻO ka mea mua, pono ʻoe e hoʻomākaukau i kahi waihona e hana pū me ka pūʻulu. Lawe mākou i ka go-redis i kumu no ka mana Go a hoʻololi iki iā mākou iho. Ua hoʻokō mākou i nā ʻano he nui ma o nā pipelines, a ua hoʻoponopono liʻiliʻi hoʻi i nā lula no ka noi hou ʻana. ʻOi aku ka pilikia o ka mana PHP, akā ua hoʻoholo mākou ma php-redis. Ua hoʻolauna koke lākou i ke kākoʻo cluster a maikaʻi ia i ko mākou manaʻo.
  • A laila pono ʻoe e kau i ka cluster ponoʻī. Hana ʻia kēia ma nā kauoha ʻelua e pili ana i ka faila hoʻonohonoho. E kūkākūkā mākou i ka hoʻonohonoho ma lalo nei.
  • No ka neʻe mālie, hoʻohana mākou i ke ʻano maloʻo. No ka loaʻa ʻana o ʻelua mau mana o ka waihona me ka interface like (hoʻokahi no ka mana maʻamau, ʻo kekahi no ka puʻupuʻu), ʻaʻohe kumu kūʻai no ka hana ʻana i kahi wīwī e hana me kahi ʻano ʻokoʻa a ma ke ʻano hoʻohālikelike i nā noi āpau i ka hui. hoʻohālikelike i nā pane a kākau i nā ʻokoʻa i loko o nā lāʻau (i kā mākou hihia ma NewRelic). No laila, ʻoiai inā e haki ka mana cluster i ka wā o ka hoʻopuka ʻana, ʻaʻole e hoʻopilikia ʻia kā mākou hana.
  • Ma hope o ka ʻōwili ʻana i ka pūʻulu ma ke ʻano maloʻo, hiki iā mākou ke nānā mālie i ka pakuhi o nā ʻokoʻa pane. Inā neʻe mālie ka hapa hewa i kahi mau liʻiliʻi, a laila ua maikaʻi nā mea a pau. No ke aha i mau ai nā ʻokoʻa? Ma muli o ka hoʻopaʻa ʻana ma kahi ʻano ʻokoʻa ma mua iki ma mua o ka pūʻulu, a ma muli o ka microlag, hiki ke ʻokoʻa ka ʻikepili. ʻO nā mea a pau i koe, ʻo ka nānā ʻana i nā log discrepancy, a inā wehewehe ʻia lākou āpau e ka non-atomicity o ka moʻolelo, a laila hiki iā mākou ke neʻe.
  • I kēia manawa hiki iā ʻoe ke hoʻololi i ke ʻano maloʻo ma ka ʻaoʻao ʻē aʻe. E kākau a heluhelu mākou mai ka pūʻulu, a e hoʻopālua iā ia i kahi mana ʻokoʻa. He aha ke kumu? I ka pule aʻe, makemake wau e nānā i ka hana o ka hui. Inā ʻike koke ʻia aia nā pilikia ma ka haʻahaʻa kiʻekiʻe, a ʻaʻole mākou i noʻonoʻo i kekahi mea, loaʻa mau iā mākou kahi rollback pilikia i ka code kahiko a me ka ʻikepili o kēia manawa e hoʻomaikaʻi i ke ʻano maloʻo.
  • ʻO nā mea a pau i koe, ʻo ka hoʻopau ʻana i ke ʻano maloʻo a wehe i ka mana kaʻawale.

He poe kaulana

ʻO ka mea mua, e pili ana i ka hoʻolālā cluster.

ʻO ka mea mua, ʻo Redis kahi hale kūʻai waiwai nui. Hoʻohana ʻia nā kaula kuʻuna ma ke ʻano he kī. Hiki ke hoʻohana ʻia nā helu, nā kaula, a me nā hale holoʻokoʻa ma ke ʻano he waiwai. He nui nā mea hope loa, akā no ka hoʻomaopopo ʻana i ke ʻano maʻamau ʻaʻole ia he mea nui iā mākou.
ʻO ka pae aʻe o ka abstraction ma hope o nā kī he slots (SLOTS). No kēlā me kēia kī i hoʻokahi o 16 slots. Hiki ke loaʻa kekahi helu o nā kī i loko o kēlā me kēia slot. No laila, ua māhele ʻia nā kī āpau i 383 mau pūʻulu hoʻokaʻawale.
E pili ana i ka neʻe ʻana mai Redis i Redis-cluster

A laila, pono e loaʻa nā kumu kumu N i ka pūʻulu. Hiki ke noʻonoʻo ʻia kēlā me kēia node ma ke ʻano he ʻokoʻa Redis i ʻike i nā mea āpau e pili ana i nā node ʻē aʻe i loko o ka pūʻulu. Loaʻa i kēlā me kēia puʻupuʻu haku he mau ʻīpuka. No hoʻokahi kumu node wale nō kēlā me kēia slot. Pono e māhele ʻia nā ʻāpana āpau ma waena o nā nodes. Inā ʻaʻole i hoʻokaʻawale ʻia kekahi mau slots, a laila hiki ʻole ke kiʻi ʻia nā kī i mālama ʻia i loko. Maikaʻi ka holo ʻana i kēlā me kēia haku node ma kahi mīkini ʻokoʻa a i ʻole mīkini kino. He mea kūpono hoʻi e hoʻomanaʻo i ka holo ʻana o kēlā me kēia node ma ke kumu hoʻokahi, a inā makemake ʻoe e holo i nā manawa Redis he nui ma ka mīkini loiloi hoʻokahi, e ʻike pono e holo lākou ma nā cores ʻokoʻa (ʻaʻole mākou i hoʻāʻo i kēia, akā ma ke kumumanaʻo e hana ia) . ʻO ka mea nui, hāʻawi nā nodes master i ka sharding maʻamau, a ʻoi aku ka nui o nā nodes master e hiki ke kākau a heluhelu i nā noi e hoʻonui.

Ma hope o ka māhele ʻia ʻana o nā kī a pau i waena o nā puʻupuʻu, a ua hoʻopuehu ʻia nā puʻupuʻu ma waena o nā node haku, hiki ke hoʻohui ʻia ka helu o nā node kauā i kēlā me kēia haku. Ma loko o kēlā me kēia loulou haku-kauā, e hana ka hana maʻamau. Pono nā kauā no ka hoʻonui ʻana i nā noi heluhelu a no ka hāʻule ʻana inā ʻaʻohe haku.
E pili ana i ka neʻe ʻana mai Redis i Redis-cluster

I kēia manawa e kamaʻilio e pili ana i nā hana i ʻoi aku ka maikaʻi o ka hiki ke hana.

E komo mākou i ka ʻōnaehana ma o Redis-CLI. No ka mea ʻaʻohe wahi komo hoʻokahi o Redis, hiki iā ʻoe ke hana i kēia mau hana ma kekahi o nā nodes. I kēlā me kēia manawa ke kaʻawale nei au i ka nānā ʻana i ka hiki ke hana i ka hana ma lalo o ka ukana.

  • ʻO ka mea mua a me ka mea nui a mākou e pono ai ʻo ka hana nodes cluster. Hoʻihoʻi ia i ka mokuʻāina o ka puʻupuʻu, hōʻike i kahi papa inoa o nā nodes, kā lākou kuleana, ka māhele slot, etc. Hiki ke loaʻa ka ʻike hou aku me ka hoʻohana ʻana i ka ʻike cluster a me nā slot cluster.
  • He mea maikaʻi e hiki ke hoʻohui a wehe i nā nodes. No kēia kumu aia nā hana hui hui a me nā hana poina puʻupuʻu. E ʻoluʻolu, pono e hoʻopili ʻia ka poina cluster i kēlā me kēia node, nā haku a me nā kope. A ʻo ka hui hui e pono ke kāhea ʻia ma hoʻokahi node. Hiki i kēia ʻokoʻa ke pilikia, no laila ʻoi aku ka maikaʻi e aʻo e pili ana ma mua o kou hele ʻana e noho me kāu hui. ʻO ka hoʻohui ʻana i kahi node e hana ʻia me ka palekana i ke kaua a ʻaʻole pili i ka hana o ka puʻupuʻu ma kekahi ʻano (ʻo ia ke kūpono). Inā ʻoe e hoʻoneʻe i kahi node mai ka pūʻulu, pono ʻoe e hōʻoia ʻaʻole i waiho ʻia nā kau ma luna o ia mea (inā ʻaʻole hiki iā ʻoe ke nalowale ke komo i nā kī āpau o kēia node). Eia kekahi, mai holoi i ka haku nona nā kauā, i ʻole e hana ʻia kahi koho pono ʻole no kahi haku hou. Inā ʻaʻohe puka o nā nodes, he pilikia liʻiliʻi kēia, akā no ke aha mākou e makemake ai i nā koho hou inā hiki iā mākou ke holoi mua i nā kauā.
  • Inā pono ʻoe e hoʻololi ikaika i nā kūlana haku a me ke kauā, a laila e hana ke kauoha failover cluster. I ke kāhea ʻana iā ia i ke kaua, pono ʻoe e hoʻomaopopo ʻaʻole e loaʻa ka haku i ka wā o ka hana. ʻO ka maʻamau, hiki ke hoʻololi i ka liʻiliʻi ma mua o hoʻokahi kekona, akā ʻaʻole atomic. Hiki iā ʻoe ke manaʻo e hāʻule kekahi mau noi i ka haku i kēia manawa.
  • Ma mua o ka wehe ʻana i kahi puʻupuʻu mai ka pūʻulu, ʻaʻole pono e waiho ʻia nā puka ma luna. ʻOi aku ka maikaʻi o ka hāʻawi ʻana iā lākou me ka hoʻohana ʻana i ke kauoha cluster reshard. E hoʻoneʻe ʻia nā slots mai kekahi haku i kekahi. Hiki i ka hana holoʻokoʻa ke lawe i kekahi mau minuke, pili ia i ka nui o ka ʻikepili i hoʻoili ʻia, akā palekana ke kaʻina hana hoʻoili a ʻaʻole pili i ka hana o ka hui ma kekahi ʻano. No laila, hiki ke hoʻoili ʻia nā ʻikepili āpau mai kekahi node i kekahi ma lalo o ka ukana, a me ka hopohopo ʻole e pili ana i kona loaʻa. Eia nō naʻe, aia kekahi mau subtleties. ʻO ka mea mua, pili ka hoʻoili ʻikepili me kahi haʻahaʻa ma nā node o ka mea hoʻouna a me ka mea hoʻouna. Inā ua hoʻouka nui ʻia ka node loaʻa i ka mea hana, a laila ʻaʻole pono ʻoe e hoʻouka iā ia me ka loaʻa ʻana o ka ʻikepili hou. ʻO ka lua, inā ʻaʻole i koe hoʻokahi slot ma ka haku hoʻouna, e hele koke nā kauā a pau i ka haku i hoʻoili ʻia ai kēia mau slot. A ʻo ka pilikia, makemake kēia mau kauā a pau e hoʻonohonoho i ka ʻikepili i ka manawa hoʻokahi. Laki ʻoe inā he hapa ia ma mua o ka hoʻonohonoho piha ʻana. E noʻonoʻo i kēia a hoʻohui i nā hana o ka hoʻoili ʻana i nā slots a me ka hoʻopau ʻana / hoʻololi i nā kauā. A i ʻole e manaʻolana ua loaʻa iā ʻoe kahi palena palekana.
  • He aha kāu e hana ai inā, i ka wā o ka hoʻoili ʻana, ʻike ʻoe ua nalowale kāu mau slot ma kahi? Manaʻo wau ʻaʻole pili kēia pilikia iā ʻoe, akā inā pili ia, aia kahi hana hoʻoponopono cluster. Ma ka liʻiliʻi loa, e hoʻopuehu ʻo ia i nā slots ma nā nodes ma kahi ʻano ʻole. Manaʻo wau e nānā i kāna hana ma ka wehe mua ʻana i ka node me nā puʻupuʻu puʻupuʻu mai ka pūpū. No ka mea, ʻaʻole i loaʻa ka ʻikepili i nā ʻāpana i hoʻokaʻawale ʻole ʻia, ua lōʻihi ka hopohopo e pili ana i nā pilikia me ka loaʻa ʻana o kēia mau slot. I ka huli ʻana, ʻaʻole e pili ka hana i nā slot i puʻunaue ʻia.
  • ʻO kekahi hana maikaʻi ʻē aʻe ʻo ka monitor. Hiki iā ʻoe ke ʻike i ka manawa maoli i ka papa inoa holoʻokoʻa o nā noi e hele ana i ka node. Eia kekahi, hiki iā ʻoe ke grep a ʻike inā aia ke kaʻa pono.

He mea kūpono hoʻi e haʻi i ke kaʻina hana master failover. I ka pōkole, aia ia, a, i koʻu manaʻo, hana nui ia. Eia naʻe, mai noʻonoʻo ʻoe inā e wehe ʻoe i ke kaula mana ma kahi mīkini me kahi node haku, e hoʻololi koke ʻo Redis a ʻaʻole ʻike nā mea kūʻai aku i ka nalowale. I kaʻu hana, hiki ke hoʻololi i kekahi mau kekona. I kēia manawa, ʻaʻole loaʻa kekahi o nā ʻikepili: ʻike ʻia ka loaʻa ʻole o ka haku, koho ʻia nā nodes i kahi hou, hoʻololi ʻia nā kauā, hoʻonohonoho ʻia ka ʻikepili. ʻO ke ala maikaʻi loa e hōʻoiaʻiʻo ai iā ʻoe iho e hana ana ka papahana ʻo ia ka hana ʻana i nā hoʻomaʻamaʻa kūloko. E hoʻokiʻekiʻe i ka pūʻulu ma kāu kamepiula, hāʻawi iā ia i ka haʻahaʻa haʻahaʻa, e hoʻohālikelike i kahi hāʻule (e laʻa, ma ke kāohi ʻana i nā awa), a loiloi i ka wikiwiki hoʻololi. I koʻu manaʻo, ma hope o ka pāʻani ʻana i kēia ala no hoʻokahi lā a ʻelua paha hiki iā ʻoe ke hilinaʻi i ka hana o ka ʻenehana. ʻAe, a i ʻole manaʻolana e hana paha ka polokalamu i hoʻohana ʻia e ka hapalua o ka Pūnaewele.

Kauoa

ʻO ka manawa pinepine, ʻo ka hoʻonohonoho ka mea mua e pono ai ʻoe e hoʻomaka e hana me ka mea hana. Pono ʻoe e hoʻoikaika iā ʻoe iho e hoʻi i nā hoʻonohonoho a hele pono i loko o lākou. I koʻu hoʻomanaʻo ʻana, ua loaʻa iā mākou ʻelua mau hemahema koʻikoʻi ma muli o ka nānā ʻole ʻana i ka hoʻonohonoho. E nānā pono i kēia mau mea:

  • hoʻopau manawa 0
    Ka manawa ma hope o ka pani ʻia ʻana o nā pilina paʻa ʻole (ma kekona). 0 - mai pani
    ʻAʻole hiki i kēlā me kēia hale waihona puke o mākou ke pani pololei i nā pilina. Ma ka hoʻopau ʻana i kēia hoʻonohonoho, pilikia mākou i ka paʻi ʻana i ka palena o ka helu o nā mea kūʻai aku. Ma ka ʻaoʻao ʻē aʻe, inā loaʻa kahi pilikia, a laila ʻo ka hoʻopau ʻana i nā pilina nalowale e uhi iā ia, a ʻaʻole paha mākou e ʻike. Eia kekahi, ʻaʻole pono ʻoe e ʻae i kēia hoʻonohonoho i ka wā e hoʻohana ai i nā pilina hoʻomau.
  • E mālama iā xy & hoʻopili ʻae
    Ke mālama nei i kahi kiʻi kiʻi RDB.
    E kūkākūkā mākou i nā pilikia RDB/AOF ma lalo nei.
  • hooki-kākau-ma-bgsave-hewa no & kauā-serve-stale-data ʻae
    Inā ʻae ʻia, inā haki ka kiʻi kiʻi RDB, e pau ka haku i ka ʻae ʻana i nā noi hoʻololi. Inā nalowale ka pilina i ka haku, hiki i ke kauā ke hoʻomau i ka pane i nā noi (ʻae). A i ʻole e pau ka pane ʻana (ʻaʻole)
    ʻAʻole mākou hauʻoli i ke kūlana i lilo ai ʻo Redis i paukena.
  • repl-ping-kauwa-manawa 5
    Ma hope o kēia manawa, hoʻomaka mākou e hopohopo ua haki ka haku a ʻo ka manawa kēia e hoʻokō ai i ke kaʻina failover.
    Pono ʻoe e ʻimi lima i kahi kaulike ma waena o nā hopena maikaʻi ʻole a me ka hoʻoulu ʻana i kahi failover. I kā mākou hoʻomaʻamaʻa he 5 kekona kēia.
  • repl-backlog-nui 1024mb & epl-backlog-ttl 0
    Hiki iā mākou ke mālama pono i kēia ʻikepili i loko o kahi buffer no kahi kope i hāʻule ʻole. Inā pau ka buffer, pono ʻoe e hoʻonohonoho pono.
    Hōʻike ka hoʻomaʻamaʻa ʻoi aku ka maikaʻi o ka hoʻonohonoho ʻana i kahi waiwai kiʻekiʻe. Nui nā kumu e hoʻomaka ai kahi kope e lohi. Inā lag, a laila, ʻoi aku ka paʻakikī o kou haku e hoʻokō, a ʻo ka hoʻonohonoho piha ʻana ʻo ia ka mauʻu hope loa.
  • maxclients 10000
    Ka helu kiʻekiʻe o nā mea kūʻai manawa hoʻokahi.
    I kā mākou ʻike, ʻoi aku ka maikaʻi o ka hoʻonohonoho ʻana i kahi waiwai kiʻekiʻe. Hoʻohana maikaʻi ʻo Redis i nā pilina 10k. E hōʻoia i ka nui o nā kumu ma ka ʻōnaehana.
  • maxmemory-policy volatile-ttl
    ʻO ke kānāwai e holoi ʻia ai nā kī ke hiki i ka palena hoʻomanaʻo i loaʻa.
    ʻO ka mea nui ma ʻaneʻi ʻaʻole ke kānāwai ponoʻī, akā ʻo ka hoʻomaopopo ʻana i ke ʻano o kēia. Hiki ke hoʻomaikaʻi ʻia ʻo Redis no kona hiki ke hana maʻamau ke hiki i ka palena hoʻomanaʻo.

Nā pilikia RDB a me AOF

ʻOiai ʻo Redis ponoʻī e mālama i nā ʻike āpau i ka RAM, aia kekahi ʻano hana no ka mālama ʻana i ka ʻikepili i ka disk. ʻOi aku ka pololei, ʻekolu mau hana:

  • RDB-paʻi kiʻi - he kiʻi piha o nā ʻikepili āpau. E hoʻonohonoho me ka hoʻonohonoho SAVE XY a heluhelu "E mālama i kahi kiʻi piha o nā ʻikepili āpau i kēlā me kēia X kekona inā ua loli nā kī Y."
  • Hoʻopili-wale waihona - he papa inoa o nā hana ma ke ʻano o ka hana ʻana. Hoʻohui i nā hana hou i ka faila i kēlā me kēia X kekona a i ʻole kēlā me kēia hana Y.
  • ʻO RDB a me AOF kahi hui o nā mea ʻelua i hala.

Loaʻa i nā ʻano hana āpau ko lākou pono a me nā hemahema, ʻaʻole wau e papa inoa iā lākou a pau, e huki wale wau i ka nānā ʻana i nā wahi i koʻu manaʻo, ʻaʻole maopopo.

ʻO ka mea mua, ʻo ka mālama ʻana i kahi snapshot RDB pono e kāhea iā FORK. Inā nui ka ʻikepili, hiki iā ia ke kau i nā Redis āpau no ka manawa o kekahi mau milliseconds a i kekona. Eia kekahi, pono e hoʻokaʻawale ka ʻōnaehana i ka hoʻomanaʻo no ia snapshot, e alakaʻi ana i ka pono e mālama i ka lako pālua o ka RAM ma ka mīkini loiloi: inā hāʻawi ʻia ʻo 8 GB no Redis, a laila e loaʻa iā 16 GB ma ka mīkini virtual me ia.

ʻO ka lua, aia nā pilikia me ka ʻāpana synchronization. Ma ke ʻano AOF, ke hoʻopili hou ʻia ke kauā, ma kahi o ka hoʻonohonoho ʻana i ka hapa, hiki ke hana i ka hoʻonohonoho piha. No ke aha e hiki mai ai kēia, ʻaʻole hiki iaʻu ke hoʻomaopopo. Akā, pono e hoʻomanaʻo i kēia.

ʻO kēia mau manaʻo ʻelua e noʻonoʻo iā mākou inā pono mākou i kēia ʻikepili ma ka disk inā ua kope ʻia nā mea āpau e nā kauā. Hiki ke nalowale ka ʻikepili inā pau nā kauā a pau, a he pilikia pae "ahi i ka DC" kēia. Ma ke ʻano he kuʻikahi, hiki iā ʻoe ke manaʻo e mālama i ka ʻikepili i nā kauā wale nō, akā i kēia hihia, pono ʻoe e hōʻoia i kēia mau kauā ʻaʻole loa e lilo i haku i ka wā o ka hoʻihoʻi ʻana i ka pōʻino (no kēia mea aia kahi kauā kauā i kā lākou config). No mākou iho, i kēlā me kēia hihia kikoʻī mākou e noʻonoʻo ai inā pono e mālama i ka ʻikepili i ka disk, a ʻo ka pinepine ka pane "ʻaʻole".

hopena

I ka hopena, manaʻolana wau ua hiki iaʻu ke hāʻawi i kahi manaʻo maʻamau e pili ana i ka hana ʻana o ka redis-cluster no ka poʻe i lohe ʻole ʻia, a ua huki pū kekahi i kekahi mau ʻike ʻike ʻole no ka poʻe i hoʻohana iā ia. no ka manawa loihi.
Mahalo i kou manawa a, e like me nā manawa a pau, mahalo ʻia nā manaʻo e pili ana i ke kumuhana.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka