ரெடிஸ் ZSCAN

Retis Zscan



வரிசைப்படுத்தப்பட்ட தொகுப்பின் உறுப்பினர்களை மீண்டும் செய்யவும்

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







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



ZSCAN கட்டளை

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



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

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





தொடரியல்:
ZSCAN கட்டளையானது SCAN கட்டளையின் அதே தொடரியலைப் பயன்படுத்துகிறது, தவிர அது வரிசைப்படுத்தப்பட்ட தொகுப்பு விசையை முதல் வாதமாக ஏற்றுக்கொள்கிறது. அனுமதிக்கப்பட்ட வாதங்களுடன் கட்டளை தொடரியல் பின்வருமாறு:

ZSCAN வரிசைப்படுத்தப்பட்ட_செட்_கீ கர்சர் [ மேட்ச் பேட்டர்ன் ] [ COUNT உறுப்பினர்_எண்ணிக்கை ]

வரிசைப்படுத்தப்பட்ட_செட்_விசை : வரிசைப்படுத்தப்பட்ட தொகுப்பின் திறவுகோல்.
கர்சர் : கர்சர் மதிப்பு 0 இலிருந்து தொடங்கி முழு மறு செய்கையாக இருந்தால் 0 இல் முடிவடையும்.



பின்வரும் வாதங்கள் விருப்பமானவை:

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

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

வழக்கு 1 ஐப் பயன்படுத்தவும் - ஒரு ஆன்லைன் விளையாட்டின் அனைத்து உறுப்பினர்களையும் அவர்களின் முடிக்கப்பட்ட பணிகளையும் மீட்டெடுக்கவும்

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

முதலில், சில வீரர்கள் மற்றும் முடிக்கப்பட்ட பணிகளின் எண்ணிக்கையுடன் வரிசைப்படுத்தப்பட்ட தொகுப்பை உருவாக்குகிறோம்.

zadd லீடர்போர்டு 12 வீரர் 6: ஜான் 4 வீரர் 2:மேரி 22 வீரர் 1:படேல் பதினைந்து ஆட்டக்காரர்: பதினொரு 23 வீரர் 5:ஆன் 30 வீரர்7:கடுமையான 23 வீரர் 12:அபி இரண்டு வீரர் 13:நிக்கி 6 வீரர் 9: ஜெர்மி 7 வீரர் 45:கினா

இப்போது, ​​வரிசைப்படுத்தப்பட்ட தொகுப்பின் உறுப்பினர்களை பின்வருமாறு மீண்டும் கூறலாம்:

zscan லீடர்போர்டு 0

வெளியீடு:

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

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

வழக்கு 2 ஐப் பயன்படுத்தவும் - 'J' என்ற எழுத்தில் தொடங்கும் வீரர்களைப் பெறவும்

ZSCAN கட்டளையானது ஒரு முறை பொருத்தத்தின் அடிப்படையில் திரும்பிய உறுப்பினர்களை வடிகட்ட பயன்படுத்தப்படலாம். அந்த வழக்கில், MATCH வாதத்தை குறிப்பிட வேண்டும்.

முந்தைய பயன்பாட்டு வழக்கிலிருந்து அதே உதாரணத்தைப் பயன்படுத்துவோம். 'ஜே' என்ற எழுத்தில் பெயர் தொடங்கும் வீரர்களைப் பெறுவது அவசியம். இது விளையாட்டு தொடர்பான அடுத்த குளிர் அம்சத்தை செயல்படுத்த உள்ளது. MATCH வாதத்தை பின்வருமாறு குறிப்பிடலாம்:

zscan லீடர்போர்டு 0 பொருத்துக * ஜே *

இது ஜெர்மி மற்றும் ஜான் என்ற இரண்டு உறுப்பினர்களை சிறந்த முறையில் திருப்பி அனுப்ப வேண்டும்.

முடிவுரை

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