Redis ನಲ್ಲಿ ಅತಿ ಕಡಿಮೆ ಬಳಸಿದ ಪ್ರಾಕ್ಸಿಯನ್ನು ಪರಮಾಣು ರೀತಿಯಲ್ಲಿ ಹಂಚಿ
ವಿಂಗಡಿತ ಗಣ ಮತ್ತು ಸಣ್ಣ Lua ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸಿ ಕೆಲಸಗಾರರ ನಡುವೆ ಪ್ರಾಕ್ಸಿಯ ಹಂಚಿಕೆ ಎಣಿಕೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ ಹೆಚ್ಚಿಸಿ.
ಹಲವು ಕೆಲಸಗಾರರು 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 ಮುಂದಿನ ಹಂಚಿಕೆಗಾಗಿ ಆಯ್ಕೆಯಾದ ಸದಸ್ಯರ ಅಂಕವನ್ನು ಒಂದರಿಂದ ಹೆಚ್ಚಿಸುತ್ತದೆ.
ಅಂಕದ ಅರ್ಥವನ್ನು ವಿವರಿಸಿ
ಇದು ಹಂಚಿಕೆಗಳನ್ನು ಎಣಿಸುತ್ತದೆ, ನಂತರ ಅದರ ಜಾಲ ವಿನಂತಿ ವಿಫಲವಾಗುವ ಹಂಚಿಕೆಯೂ ಸೇರಿದಂತೆ. ಇದು ವಿಳಂಬ, ಯಶಸ್ವಿ ವಿನಂತಿಗಳು ಅಥವಾ ಪ್ರಗತಿಯಲ್ಲಿರುವ ಕೆಲಸವನ್ನು ಅಳೆಯುವುದಿಲ್ಲ. ಏಕೈಕ ಅರ್ಹ ಸದಸ್ಯರನ್ನು ಪದೇ ಪದೇ ಆಯ್ಕೆಮಾಡುವುದು ಇನ್ನೂ ಸಾಧ್ಯ; ಸ್ಕ್ರಿಪ್ಟ್ ಅದನ್ನು ವಿಶೇಷವಾಗಿ ಕಾಯ್ದಿರಿಸುವುದಿಲ್ಲ.
ಪೂಲ್ನ ಆರೋಗ್ಯ ಮತ್ತು ನೀತಿ ನಿಯಮಗಳಿಂದ ಅರ್ಹತೆಯನ್ನು ಕಾಪಾಡಿ. ಸದಸ್ಯರನ್ನು ತೆಗೆದು ನಂತರ ಮರುಸ್ಥಾಪಿಸಿದರೆ, ಅದರ ಐತಿಹಾಸಿಕ ಎಣಿಕೆಯನ್ನು ಉಳಿಸಬೇಕೇ ಎಂದು ನಿರ್ಧರಿಸಿ. ಮರುಸ್ಥಾಪಿತ ಪ್ರಾಕ್ಸಿಯನ್ನು ಶೂನ್ಯದಿಂದ ಪ್ರಾರಂಭಿಸುವುದು ಅದು ಹಿಂದೆ ಬರುತ್ತಿರುವಾಗ ಹಂಚಿಕೆಗಳನ್ನು ಅದರ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಬಹುದು.
ಕನಿಷ್ಠ-ಸಮಕಾಲೀನ ನೀತಿಗೆ ಬೇರೆ ಜೀವನಚಕ್ರ ಬೇಕು, ಅದರಲ್ಲಿ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ ಮತ್ತು ತ್ಯಜಿಸಿದ ಕೆಲಸಗಳ ನಿರ್ವಹಣೆ ಸೇರಿವೆ. ಈ ಸಂಚಿತ ಎಣಿಕೆಯನ್ನು ಆ ಜೀವನಚಕ್ರ ಎಂದು ಅರ್ಥೈಸಬೇಡಿ.