മലയാളം

ഗ്ലോബൽ ആപ്ലിക്കേഷനുകളിൽ ഉയർന്ന ലഭ്യതയ്ക്കും, സ്കേലബിലിറ്റിക്കും, പ്രകടനത്തിനും വേണ്ടി റെഡിസ് ക്ലസ്റ്ററിംഗ് ഉപയോഗിക്കാം. അതിൻ്റെ ആർക്കിടെക്ചർ, വിന്യാസം, മികച്ച രീതികൾ എന്നിവയെക്കുറിച്ച് അറിയുക.

റെഡിസ് ക്ലസ്റ്ററിംഗ്: ഗ്ലോബൽ ആപ്ലിക്കേഷനുകൾക്കായി നിങ്ങളുടെ ഇൻ-മെമ്മറി ഡാറ്റാബേസ് സ്കെയിൽ ചെയ്യുന്നു

ഇന്നത്തെ അതിവേഗം മാറിക്കൊണ്ടിരിക്കുന്ന ഡിജിറ്റൽ ലോകത്ത്, ആപ്ലിക്കേഷനുകൾക്ക് മിന്നൽ വേഗത്തിലുള്ള ഡാറ്റാ ആക്‌സസും വലിയ ട്രാഫിക് കൈകാര്യം ചെയ്യാനുള്ള കഴിവും ആവശ്യമാണ്. ഈ പ്രകടനം കൈവരിക്കുന്നതിന് റെഡിസ് പോലുള്ള ഇൻ-മെമ്മറി ഡാറ്റാബേസുകൾ (IMDBs) അത്യാവശ്യ ഘടകങ്ങളായി മാറിയിരിക്കുന്നു. എന്നിരുന്നാലും, ഒരു സിംഗിൾ റെഡിസ് ഇൻസ്റ്റൻസിന് ഒരു പരിധി വരെ മാത്രമേ സ്കെയിൽ ചെയ്യാൻ കഴിയൂ. ഇവിടെയാണ് റെഡിസ് ക്ലസ്റ്ററിംഗ് രംഗപ്രവേശം ചെയ്യുന്നത്. ഇത് നിങ്ങളുടെ ആഗോളതലത്തിൽ വിതരണം ചെയ്യപ്പെട്ട ആപ്ലിക്കേഷനുകൾക്ക് ഹൊറിസോണ്ടൽ സ്കേലബിലിറ്റി, ഉയർന്ന ലഭ്യത, ഫോൾട്ട് ടോളറൻസ് എന്നിവ വാഗ്ദാനം ചെയ്യുന്നു.

എന്താണ് റെഡിസ് ക്ലസ്റ്ററിംഗ്?

ഒന്നിലധികം റെഡിസ് നോഡുകളിലുടനീളം ഡാറ്റയെ ഓട്ടോമാറ്റിക്കായി ഷാർഡ് ചെയ്യുന്ന റെഡിസിന്റെ ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് രൂപമാണ് റെഡിസ് ക്ലസ്റ്റർ. ഒറ്റ-ഇൻസ്റ്റൻസ് റെഡിസ് സജ്ജീകരണങ്ങളിൽ നിന്ന് വ്യത്യസ്തമായി, ഒരു സെർവറിന്റെ മെമ്മറി ശേഷിക്ക് അതീതമായ ഡാറ്റാസെറ്റുകൾ കൈകാര്യം ചെയ്യാൻ റെഡിസ് ക്ലസ്റ്ററിന് കഴിയും. ഒന്നിലധികം നോഡുകളിലുടനീളം ഡാറ്റയുടെ പകർപ്പ് സൂക്ഷിക്കുന്നതിലൂടെ ഇത് ഉയർന്ന ലഭ്യതയും നൽകുന്നു, ചില നോഡുകൾ പരാജയപ്പെട്ടാലും നിങ്ങളുടെ ആപ്ലിക്കേഷൻ പ്രവർത്തനക്ഷമമായി തുടരുന്നുവെന്ന് ഉറപ്പാക്കുന്നു.

നിങ്ങളുടെ ഡാറ്റ എന്ന വലിയ ലൈബ്രറിയെ വിവിധ നഗരങ്ങളിലുള്ള ഒന്നിലധികം ശാഖകളിലേക്ക് (റെഡിസ് നോഡുകൾ) വിതരണം ചെയ്യുന്നതായി ഇതിനെ കരുതാം. ഓരോ ശാഖയിലും പുസ്തകങ്ങളുടെ (ഡാറ്റ) ഒരു ഉപവിഭാഗം അടങ്ങിയിരിക്കുന്നു, ഒരു ശാഖ അടച്ചാൽ (നോഡ് പരാജയം), മറ്റ് ശാഖകളിൽ ഏറ്റവും പ്രധാനപ്പെട്ട പുസ്തകങ്ങളുടെ പകർപ്പുകൾ (ഡാറ്റ റെപ്ലിക്കേഷൻ) ഉണ്ടാകും, അങ്ങനെ കമ്മ്യൂണിറ്റിക്ക് സേവനം തുടരാൻ സാധിക്കും.

റെഡിസ് ക്ലസ്റ്ററിംഗിന്റെ പ്രധാന നേട്ടങ്ങൾ

റെഡിസ് ക്ലസ്റ്റർ ആർക്കിടെക്ചർ

ഒരു റെഡിസ് ക്ലസ്റ്ററിൽ താഴെ പറയുന്ന ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

ഒരു റെഡിസ് ക്ലസ്റ്റർ സജ്ജീകരിക്കുന്നു

ഒരു റെഡിസ് ക്ലസ്റ്റർ സജ്ജീകരിക്കുന്നതിൽ താഴെ പറയുന്ന ഘട്ടങ്ങൾ ഉൾപ്പെടുന്നു:

  1. റെഡിസ് ഇൻസ്റ്റാൾ ചെയ്യുക: ക്ലസ്റ്ററിന്റെ ഭാഗമാകുന്ന എല്ലാ സെർവറുകളിലും റെഡിസ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. മികച്ച പ്രകടനത്തിനും സുരക്ഷയ്ക്കും റെഡിസിന്റെ ഏറ്റവും പുതിയ സ്റ്റേബിൾ പതിപ്പ് ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു.
  2. റെഡിസ് ഇൻസ്റ്റൻസുകൾ കോൺഫിഗർ ചെയ്യുക: ഓരോ റെഡിസ് ഇൻസ്റ്റൻസും ക്ലസ്റ്റർ മോഡിൽ പ്രവർത്തിക്കാൻ കോൺഫിഗർ ചെയ്യുക. ഇതിനായി redis.conf ഫയലിൽ cluster-enabled എന്ന ഓപ്ഷൻ yes എന്ന് സജ്ജീകരിക്കണം. കൂടാതെ cluster-config-file, cluster-node-timeout എന്നീ ഓപ്ഷനുകളും കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.
  3. ക്ലസ്റ്റർ ഉണ്ടാക്കുക: ക്ലസ്റ്റർ ഉണ്ടാക്കാൻ redis-cli --cluster create എന്ന കമാൻഡ് ഉപയോഗിക്കുക. ഈ കമാൻഡ് റെഡിസ് ഇൻസ്റ്റൻസുകളുടെ ഒരു ലിസ്റ്റ് ആർഗ്യുമെന്റായി എടുക്കുകയും അവയെ ഒരു ക്ലസ്റ്ററായി യാന്ത്രികമായി കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുന്നു. ഈ കമാൻഡ് മാസ്റ്റർ നോഡുകൾക്ക് ഹാഷിംഗ് സ്ലോട്ടുകൾ സ്വയമേവ നൽകുകയും ചെയ്യും.
  4. റെപ്ലിക്ക നോഡുകൾ ചേർക്കുക: redis-cli --cluster add-node കമാൻഡ് ഉപയോഗിച്ച് ക്ലസ്റ്ററിലേക്ക് റെപ്ലിക്ക നോഡുകൾ ചേർക്കുക. ഈ കമാൻഡ് ഒരു റെപ്ലിക്ക നോഡിന്റെ വിലാസവും ഒരു മാസ്റ്റർ നോഡിന്റെ വിലാസവും ആർഗ്യുമെന്റായി എടുക്കുന്നു. ഈ കമാൻഡ് മാസ്റ്റർ നോഡിൽ നിന്ന് ഡാറ്റ റെപ്ലിക്കേറ്റ് ചെയ്യാൻ റെപ്ലിക്ക നോഡിനെ സ്വയമേവ കോൺഫിഗർ ചെയ്യും.
  5. ക്ലസ്റ്റർ ടെസ്റ്റ് ചെയ്യുക: redis-cli ഉപയോഗിച്ച് ക്ലസ്റ്ററിലേക്ക് കണക്റ്റുചെയ്‌ത്, കീകൾ സെറ്റ് ചെയ്യുക, ഗെറ്റ് ചെയ്യുക തുടങ്ങിയ അടിസ്ഥാന പ്രവർത്തനങ്ങൾ നടത്തി ക്ലസ്റ്റർ ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക. ക്ലസ്റ്റർ നില കാണുന്നതിനും എല്ലാ നോഡുകളും ശരിയായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പിക്കുന്നതിനും നിങ്ങൾക്ക് redis-cli cluster info കമാൻഡ് ഉപയോഗിക്കാവുന്നതാണ്.

ഉദാഹരണം: 6 നോഡുകളുള്ള ഒരു റെഡിസ് ക്ലസ്റ്റർ ഉണ്ടാക്കുന്നു (3 മാസ്റ്റേഴ്സ്, 3 റെപ്ലിക്കാസ്)

നിങ്ങൾക്ക് താഴെ പറയുന്ന IP വിലാസങ്ങളും പോർട്ടുകളുമുള്ള 6 സെർവറുകൾ ഉണ്ടെന്ന് കരുതുക:

സെർവറുകളിൽ ഒന്നിൽ (ഉദാഹരണത്തിന്, 192.168.1.101), താഴെ പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

redis-cli --cluster create 192.168.1.101:7000 192.168.1.102:7001 192.168.1.103:7002 192.168.1.104:7003 192.168.1.105:7004 192.168.1.106:7005 --cluster-replicas 1

ഈ കമാൻഡ് 3 മാസ്റ്റർ നോഡുകളും 3 റെപ്ലിക്ക നോഡുകളും ഉള്ള ഒരു ക്ലസ്റ്റർ ഉണ്ടാക്കും, ഓരോ മാസ്റ്ററിനും ഒരു റെപ്ലിക്ക വീതം ഉണ്ടാകും.

ഒരു റെഡിസ് ക്ലസ്റ്ററിലേക്ക് കണക്ട് ചെയ്യുന്നു

ഒരു റെഡിസ് ക്ലസ്റ്ററിലേക്ക് കണക്ട് ചെയ്യുന്നത് ഒരൊറ്റ റെഡിസ് ഇൻസ്റ്റൻസിലേക്ക് കണക്ട് ചെയ്യുന്നതിൽ നിന്ന് അല്പം വ്യത്യസ്തമാണ്. ക്ലസ്റ്റർ മോഡിനെ പിന്തുണയ്ക്കുന്ന ഒരു റെഡിസ് ക്ലയന്റ് നിങ്ങൾ ഉപയോഗിക്കേണ്ടതുണ്ട്. ഈ ക്ലയന്റുകൾ സാധാരണയായി ക്ലസ്റ്ററിലെ നോഡുകൾ കണ്ടെത്താനും ഉചിതമായ മാസ്റ്റർ നോഡുകളിലേക്ക് അഭ്യർത്ഥനകൾ റൂട്ട് ചെയ്യാനും ക്ലസ്റ്റർ ബസ് ഉപയോഗിക്കുന്നു.

മിക്ക റെഡിസ് ക്ലയന്റുകളും റെഡിസ് ക്ലസ്റ്ററിംഗിനായി ബിൽറ്റ്-ഇൻ പിന്തുണ നൽകുന്നു. സാധാരണയായി ക്ലയന്റിന് സീഡ് നോഡുകളുടെ (അതായത്, ക്ലസ്റ്ററിലെ ചില നോഡുകളുടെ അറിയാവുന്ന വിലാസങ്ങൾ) ഒരു ലിസ്റ്റ് നൽകേണ്ടിവരും. ക്ലസ്റ്ററിന്റെ ശേഷിക്കുന്ന ടോപ്പോളജി കണ്ടെത്താൻ ക്ലയന്റ് ഈ സീഡ് നോഡുകൾ ഉപയോഗിക്കും.

ഉദാഹരണം: പൈത്തൺ (redis-py-cluster) ഉപയോഗിച്ച് ഒരു റെഡിസ് ക്ലസ്റ്ററിലേക്ക് കണക്ട് ചെയ്യുന്നു

from rediscluster import RedisCluster

# ക്ലയന്റ് ക്ലസ്റ്റർ ടോപ്പോളജി കണ്ടെത്താൻ ഉപയോഗിക്കുന്ന നോഡുകളുടെ ഒരു ലിസ്റ്റാണ് സ്റ്റാർട്ടപ്പ് നോഡുകൾ.
startup_nodes = [
 {"host": "192.168.1.101", "port": "7000"},
 {"host": "192.168.1.102", "port": "7001"},
 {"host": "192.168.1.103", "port": "7002"}
]

rc = RedisCluster(startup_nodes=startup_nodes, decode_responses=True)

rc.set("foo", "bar")
print(rc.get("foo"))

ഗ്ലോബൽ ആപ്ലിക്കേഷനുകളിൽ റെഡിസ് ക്ലസ്റ്റർ

ഭൂമിശാസ്ത്രപരമായി വിതരണം ചെയ്യപ്പെട്ട പ്രദേശങ്ങളിലുടനീളം കുറഞ്ഞ ലേറ്റൻസിയും ഉയർന്ന ലഭ്യതയും ആവശ്യമുള്ള ഗ്ലോബൽ ആപ്ലിക്കേഷനുകൾക്ക് റെഡിസ് ക്ലസ്റ്റർ വളരെ അനുയോജ്യമാണ്. ചില സാധാരണ ഉപയോഗങ്ങൾ താഴെ നൽകുന്നു:

റെഡിസ് ക്ലസ്റ്ററിംഗിനുള്ള മികച്ച രീതികൾ

നിങ്ങളുടെ റെഡിസ് ക്ലസ്റ്റർ വിന്യാസത്തിന്റെ മികച്ച പ്രകടനവും വിശ്വാസ്യതയും ഉറപ്പാക്കാൻ, താഴെ പറയുന്ന മികച്ച രീതികൾ പരിഗണിക്കുക:

റെഡിസ് ക്ലസ്റ്ററിംഗിനുള്ള ബദലുകൾ

റെഡിസിനെ സ്കെയിൽ ചെയ്യുന്നതിനുള്ള ശക്തമായ ഒരു പരിഹാരമാണ് റെഡിസ് ക്ലസ്റ്ററിംഗ് എങ്കിലും, നിങ്ങളുടെ പ്രത്യേക ആവശ്യങ്ങൾക്കനുസരിച്ച് പരിഗണിക്കാൻ മറ്റ് ബദലുകളും ഉണ്ട്:

ഉപസംഹാരം

ആഗോളതലത്തിൽ വിതരണം ചെയ്യപ്പെട്ട ആപ്ലിക്കേഷനുകളിൽ ഇൻ-മെമ്മറി ഡാറ്റ കൈകാര്യം ചെയ്യുന്നതിന് റെഡിസ് ക്ലസ്റ്ററിംഗ് ശക്തവും സ്കെയിലബിളുമായ ഒരു പരിഹാരം നൽകുന്നു. അതിന്റെ ആർക്കിടെക്ചർ, നേട്ടങ്ങൾ, മികച്ച രീതികൾ എന്നിവ മനസ്സിലാക്കുന്നതിലൂടെ, ഇന്നത്തെ ഡിജിറ്റൽ ലോകത്തിന്റെ ആവശ്യകതകൾ നിറവേറ്റുന്ന ഉയർന്ന പ്രകടനമുള്ളതും, ഉയർന്ന ലഭ്യതയുള്ളതും, ഫോൾട്ട്-ടോളറൻ്റ് ആയതുമായ ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ നിങ്ങൾക്ക് റെഡിസ് ക്ലസ്റ്ററിംഗ് പ്രയോജനപ്പെടുത്താം. നിങ്ങൾ ഒരു കാഷിംഗ് ലെയറോ, സെഷൻ മാനേജ്മെന്റ് സിസ്റ്റമോ, അല്ലെങ്കിൽ ഒരു തത്സമയ അനലിറ്റിക്സ് പ്ലാറ്റ്‌ഫോമോ നിർമ്മിക്കുകയാണെങ്കിലും, നിങ്ങളുടെ പ്രകടന, സ്കേലബിലിറ്റി ലക്ഷ്യങ്ങൾ കൈവരിക്കാൻ റെഡിസ് ക്ലസ്റ്ററിംഗ് നിങ്ങളെ സഹായിക്കും.