ரெடிஸ் ஷார்டிங்

Retis Sartin



நீங்கள் முதலில் Redis ஐப் பயன்படுத்தத் தொடங்கும்போது, ​​இயல்புநிலை அமைப்புகளுக்கு அப்பால் அதை அளவிட வேண்டிய அவசியமில்லை என்று நம்புவது எளிது. சிக்கல் என்னவென்றால், உங்கள் பயன்பாடு வளரும்போது, ​​உங்கள் வணிகத் தேவைகளை ஆதரிக்க உங்களுக்கு அதிக நினைவகம், CPU மற்றும் செயல்திறன் திறன் தேவைப்படும். இந்தக் கட்டுரையில், உங்கள் வணிகத்தை சீராக நடத்துவதற்கும், எதிர்காலத்தில் வளர உங்களுக்குத் தேவையான கூடுதல் திறனை வழங்குவதற்கும், ரெடிஸ் கிளஸ்டர் எவ்வாறு ஷார்டிங் மூலம் அளவிடப்படுகிறது என்பதை நாங்கள் உங்களுக்குக் காண்பிப்போம். ரெடிஸ் கிளஸ்டர் எவ்வாறு ஷார்டிங்குடன் அதிக செயல்திறனை வழங்குகிறது என்பதை நாங்கள் குறிப்பாகக் கற்றுக்கொள்வோம்.

அளவீடல்

ஒரு சேவையகத்தை அளவிடுவதற்கு இரண்டு பொதுவான அணுகுமுறைகள் உள்ளன: செங்குத்து அளவிடுதல் மற்றும் கிடைமட்ட அளவிடுதல். செங்குத்து அளவிடுதல் அல்லது அளவிடுதல் என்பது உங்கள் சர்வரில் அதிக சக்தி மற்றும் வளங்களைச் சேர்க்கும் இடமாகும், அதிக CPUகள், நினைவகம் மற்றும் சேமிப்பகம் போன்றவை விலை அதிகம். மறுபுறம், கிடைமட்ட அளவிடுதல் என்பது உங்கள் ஏற்கனவே உள்ள வளக் குழுவில் பல முனைகளைச் சேர்க்கிறது. இது ஸ்கேலிங் அவுட் என்று அழைக்கப்படுகிறது. எனவே, உங்கள் வரம்புகள் மற்றும் தேவைகளின் அடிப்படையில், ஒரு பெரிய சர்வர் நிகழ்வை வைத்திருப்பது அல்லது பல சேவையக முனைகளை வரிசைப்படுத்துவது உங்களுடையது.

உங்களிடம் 100 ஜிபி ரேம் உள்ளது மற்றும் 200 ஜிபி டேட்டா வைத்திருக்க வேண்டும் என்று வைத்துக்கொள்வோம். இந்த வழக்கில், உங்களுக்கு இரண்டு தேர்வுகள் உள்ளன:







  • கணினியில் அதிக ரேம் சேர்ப்பதன் மூலம் அளவை அதிகரிக்கவும்
  • 100 ஜிபி ரேம் உடன் மற்றொரு சர்வர் நிகழ்வைச் சேர்ப்பதன் மூலம் அளவிடவும்

உங்கள் உள்கட்டமைப்பிற்குள் நீங்கள் அதிகபட்ச ரேம் வரம்பை அடைந்துவிட்டால், அளவிடுதல் சிறந்த அணுகுமுறையாகும். கூடுதலாக, அளவிடுதல் தரவுத்தள செயல்திறனை ஒரு பெரிய வித்தியாசத்தில் அதிகரிக்கும்.





ரெடிஸ் ஷார்டிங்

ரெடிஸ் ஒரு இழையில் இயங்குகிறது என்பது தெரிந்த விஷயம். எனவே, கட்டளைகளைச் செயலாக்க ரெடிஸ் உங்கள் சர்வரின் CPU இன் பல கோர்களைப் பயன்படுத்த முடியாது. எனவே, அதிக CPU கோர்களைச் சேர்ப்பது, Redis உடன் அதிக செயல்திறன் அல்லது செயல்திறனை உங்களுக்கு வழங்காது. பல சேவையக நிகழ்வுகளுக்கு இடையில் உங்கள் தரவைப் பிரிப்பதில் இது பொருந்தாது. பல சேவையகங்களைச் சேர்ப்பது மற்றும் அவற்றில் தரவுத் தொகுப்பை விநியோகிப்பது கிளையன்ட் கோரிக்கைகளை இணையாக செயலாக்க உதவுகிறது, இது செயல்திறனை அதிகரிக்கிறது. கூடுதலாக, ஒட்டுமொத்த செயல்திறன் நேர்கோட்டுக்கு நெருக்கமாக அதிகரிக்கலாம்.





அளவைக் கருத்தில் கொண்டு பல சேவையகங்களிடையே தரவைப் பிரித்தல் அல்லது விநியோகம் செய்யும் இந்த அணுகுமுறை அழைக்கப்படுகிறது ஷார்டிங் . தரவின் பகுதிகளைச் சேமிக்கும் அனைத்து சேவையகங்களும் அழைக்கப்படுகின்றன துண்டுகள் .



ஷார்டிங் செய்வது எப்படி — அல்காரிதமிக் ஷார்டிங்

பல ரெடிஸ் நோட்களில் கொடுக்கப்பட்ட விசையை எவ்வாறு கண்டுபிடிப்பது என்பது ஷார்டிங்கின் முக்கிய கவலைகளில் ஒன்றாகும். கொடுக்கப்பட்ட விசையை கிடைக்கக்கூடிய எந்தத் துண்டுகளிலும் சேமிக்க முடியும் என்பதால், ஒரு குறிப்பிட்ட விசையைக் கண்டறிய அனைத்துத் துண்டுகளையும் வினவுவது சிறந்த வழி அல்ல. எனவே, ஒவ்வொரு விசையையும் ஒரு குறிப்பிட்ட ஷார்டுக்கு வரைபடமாக்க ஒரு வழி இருக்க வேண்டும், மேலும் ரெடிஸ் அல்காரிதமிக் ஷார்டிங் உத்தியைப் பயன்படுத்துகிறது.

ரெடிஸ் கீ பெயர் மற்றும் மாடுலோவைப் பயன்படுத்தி ஹாஷ் மதிப்பைக் கணக்கிடுவது மிகவும் பொதுவான அணுகுமுறை. பின்னர், அதை கணினியில் கிடைக்கும் ரெடிஸ் ஷார்ட்களால் பிரிக்கவும்.

HASH_SLOT = CRC16(முக்கிய) மோட் 16384

மொத்த துண்டுகளின் எண்ணிக்கை நிலையானதாக இருக்கும் வரை இது ஒரு நல்ல தீர்வாகும். நீங்கள் ஒரு புதிய Reids சேவையக நிகழ்வைச் சேர்க்கும் போதெல்லாம், கொடுக்கப்பட்ட விசைக்கான மதிப்பு மாறலாம், ஏனெனில் மொத்த துண்டுகளின் எண்ணிக்கை அதிகரித்தது. இது தவறான ரெடிஸ் ஷார்ட்டை வினவுகிறது. எனவே, ஒவ்வொரு விசைக்கும் புதிய ஷார்ட்டைக் கணக்கிட்டு, சரியான சர்வருக்கு தரவை மாற்றுவதன் மூலம் மறுபகிர்வு செயல்முறையை நீங்கள் பின்பற்ற வேண்டும், இது சிக்கலானது மற்றும் உங்கள் மொத்த துகள் எண்ணிக்கை அவ்வப்போது அதிகரித்துக் கொண்டிருந்தால் அற்பமான செயல் அல்ல.

ரெடிஸ் ஒரு புதிய தருக்க உட்பொருளைப் பயன்படுத்துகிறார், இது a ஹாஷ் ஸ்லாட் இந்த பிரச்சனையை தடுக்க. கொடுக்கப்பட்ட ஷார்டுக்கு பல ஹாஷ் ஸ்லாட்டுகள் கிடைக்கின்றன, மேலும் ஒரு ஹாஷ் ஸ்லாட் பல ரெடிஸ் விசைகளை வைத்திருக்கும். ரெடிஸ் தரவுத்தள கிளஸ்டரில் 16384 ஹாஷ் ஸ்லாட்டுகள் உள்ளன, அவை மாறாமல் உள்ளன. மாடுலோ பிரிவு, ஷார்ட் எண்ணிக்கைக்கு பதிலாக ஹாஷ் ஸ்லாட்டுகளின் எண்ணிக்கையுடன் செய்யப்படுகிறது. ஷார்ட்களின் எண்ணிக்கை அதிகரித்தாலும், குறிப்பிட்ட விசைக்கான ஹாஷ் ஸ்லாட்டின் சரியான நிலையை இது வழங்குகிறது. தேவைக்கேற்ப வெவ்வேறு ரெடிஸ் நிகழ்வுகளில் தரவைப் பிரிக்கும் ஹாஷ் ஸ்லாட்டுகளை ஒரு ஷார்டில் இருந்து புதியதற்கு நகர்த்துவதன் மூலம் இது மறுபகிர்வு செயல்முறையை எளிதாக்குகிறது.

ரெடிஸ் ஷார்டிங்கின் நன்மைகள்

Redis sharding ஆனது உங்கள் தரவுத்தள அமைப்பிற்கு குறைந்த மாற்றங்களுடன் பல நன்மைகளை வழங்குகிறது.

உயர் செயல்திறன்

ரெடிஸ் ஒற்றை-திரிக்கப்பட்டதால், பல கிளையன்ட் கோரிக்கைகளைச் செயலாக்குவது பல CPU கோர்களைப் பயன்படுத்தி இணையாகச் செயல்படுத்த முடியாது. எனவே, புதிய துண்டுகள் அல்லது சேவையக நிகழ்வுகளைச் சேர்ப்பது, நீங்கள் ரெடிஸ் செயல்பாடுகளை இணையாகச் செய்ய முடியும் என்பதற்கு உத்தரவாதம் அளிக்கிறது. இது உங்கள் ரெடிஸ் தரவுத்தளத்தில் வினாடிக்கு செயல்பாடுகளை அதிகரிக்கிறது, இது இறுதியில் உங்களுக்கு அதிக செயல்திறனை அளிக்கிறது.

அதிக கிடைக்கும் தன்மை

ஷார்டிங் அணுகுமுறையுடன், ரெடிஸ் கிளஸ்டர் ஒரு மாஸ்டர்-பிரதி கட்டமைப்பை அமைக்க முடியும், இது அதிக கிடைக்கும் தன்மை மற்றும் நீடித்த தன்மையை உறுதி செய்கிறது.

பிரதிகளைப் படியுங்கள்

பகிர்தல் உங்கள் தரவின் சரியான நகலை வைத்திருக்கவும், தனித்தனி ரெடிஸ் நிகழ்வுகள் மூலம் வாசிப்பு செயல்பாடுகளை வழங்கவும் உதவுகிறது, இது உங்கள் வாசிப்பு வினவல் செயலாக்கத்தின் செயல்திறனை அதிகரிக்கிறது.

இந்த நன்மைகளைத் தவிர, நீங்கள் ரெடிஸ் கிளஸ்டரில் சம எண்ணிக்கையிலான ஷார்ட்களை வைத்திருக்கும் போது, ​​ஷார்டிங் மூளையை பிளவுபடுத்தும் சூழ்நிலைகளை ஏற்படுத்தலாம். எனவே, உங்கள் ரெடிஸ் கிளஸ்டரில் ஒற்றைப்படை எண்ணிக்கையிலான துண்டுகளை வைத்திருப்பது பரிந்துரைக்கப்படுகிறது.

முடிவுரை

சுருக்கமாக, ரெடிஸ் ஷார்டிங் என்பது பல சேவையகங்களுக்கிடையில் தரவைப் பிரிப்பதாகும், இது உங்கள் தரவுத்தளத்திற்கு அளவிடுதல் மற்றும் உயர் செயல்திறன் ஆகியவற்றை செயல்படுத்துகிறது. விவாதிக்கப்பட்டபடி, வாடிக்கையாளர் கோரிக்கைகளை சரியான ஷார்டில் சுட்டிக்காட்ட ரெடிஸ் ஒரு அல்காரிதம் ஷார்டிங் உத்தியைப் பயன்படுத்துகிறது. மொத்த துண்டுகளின் எண்ணிக்கை அதிகரிக்கும் போது இது சில குறைபாடுகளைக் கொண்டுள்ளது. எனவே, மொத்த துண்டுகளின் எண்ணிக்கைக்கு பதிலாக, ரெடிஸ் பொருத்தமான ஷார்ட்டைக் கணக்கிட ஹாஷ் ஸ்லாட்களின் எண்ணிக்கையைப் பயன்படுத்துகிறது. ஷார்டிங் அறிமுகப்படுத்தப்பட்டதன் மூலம், ரெடிஸ் தரவுத்தளங்கள் அதிக கிடைக்கும் தன்மை, அதிக செயல்திறன் மற்றும் உயர் செயல்திறனை வழங்குகின்றன.