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

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

local chosen = redis.call('ZRANGE', KEYS[1], 0, 0)[1]
if not chosen then
    return nil
end

redis.call('ZINCRBY', KEYS[1], 1, chosen)
return chosen

வரிசைப்படுத்தப்பட்ட தொகுப்பின் விசையை ஸ்கிரிப்டின் ஒரே விசை வாதமாக உங்கள் Redis கிளையண்டின் EVAL இடைமுகம் வழியாக அனுப்பவும். காலியான குளம் null முடிவைத் தரும்; பயன்பாடு கோரிக்கை செய்யாமல் அதைக் கையாள வேண்டும்.

இரண்டு கட்டளைகளை ஏன் இணைக்க வேண்டும்?

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

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

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

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

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

குறைந்த-ஒพร้อม கொள்கைக்கு வேறு வாழ்க்கைச் சுழற்சி தேவை, அதில் நிறைவு மற்றும் கைவிடப்பட்ட பணிகளைக் கையாள்வது அடங்கும். இந்தக் கூட்டு எண்ணியை அந்த வாழ்க்கைச் சுழற்சியாகப் புரிந்து கொள்ள வேண்டாம்.

தொடர்புடைய கட்டுரைகள்