Redis ஹாஷ்கள் என்பது ஒரு சிறப்பு வகையான தரவு வகையாகும், இது JSON ஆப்ஜெக்ட், ஜாவா ஹாஷ்மேப் அல்லது பைதான் அகராதியைப் போன்றது. மேலும், இது கள-மதிப்பு ஜோடிகளின் தொகுப்பாகும், இது டொமைன் பொருள்களை மாதிரியாக்கப் பயன்படுகிறது. ரெடிஸ் ஹாஷ் தரவு அமைப்பு மிகவும் நினைவாற்றல் திறன் கொண்டது, அங்கு ஒவ்வொரு ஹாஷ் விசையும் நான்கு பில்லியன் புல மதிப்பு ஜோடிகளை சேமிக்க முடியும். மிக முக்கியமாக, HSET, HGET, HMGET போன்ற அடிப்படை ஹாஷ் செயல்பாடுகள் நிலையான நேர சிக்கலில் செயல்படுகின்றன.
Redis ஹாஷ் விசைகள் வாழ முடிவற்ற நேரத்தைக் கொண்டுள்ளன (TTL) அதாவது அவை தொடர்ந்து நிலைத்திருக்கின்றன, DEL போன்ற கட்டளைகளைப் பயன்படுத்தி வெளிப்படையாக நீக்கப்படும். இந்தக் கட்டுரையில், EXPIRE கட்டளையைப் பயன்படுத்தி Redis ஹாஷ்களுக்கான TTL ஐ அமைப்பதில் கவனம் செலுத்துவோம்.
ரெடிஸ் காலாவதி கட்டளை
ரெடிஸ் ஹாஷ், செட், லிஸ்ட் போன்றவற்றின் கொடுக்கப்பட்ட விசையில் காலக்கெடுவை அமைக்க EXPIRE கட்டளை பயன்படுத்தப்படுகிறது. காலாவதியானது காலாவதியானால், தரவுத்தளத்திலிருந்து Redis விசை நீக்கப்படும். மிக முக்கியமாக, விசையின் உள்ளடக்கங்கள் நீக்கப்படும் வரை அல்லது மேலெழுதப்படும் வரை காலக்கெடு தெளிவாக இருக்காது. விசையுடன் தொடர்புடைய மதிப்புகளை மாற்றுவது காலாவதி நேரத்தை பாதிக்காது.
EXPIRE கட்டளையின் தொடரியல் பின்வருமாறு:
EXPIRE விசை expiry_time_seconds [ NX | ஜிஎக்ஸ் | ஜிடி | எல்.டி ]
முக்கிய: நீங்கள் காலக்கெடுவை அமைக்க வேண்டிய ஹாஷ், பட்டியல் அல்லது அமைவின் திறவுகோல்.
expirty_time_seconds: நொடிகளில் காலாவதி மதிப்பு.
EXPIRE கட்டளையால் பல விருப்ப வாதங்கள் ஏற்கப்படுகின்றன.
NX: குறிப்பிட்ட விசை ஏற்கனவே காலாவதியாகவில்லை என்றால் மட்டுமே காலாவதி மதிப்பு அமைக்கப்படும்.
XX: குறிப்பிடப்பட்ட விசை ஏற்கனவே காலாவதி மதிப்பைக் கொண்டிருக்கும்போது, புதிய காலாவதி அமைக்கப்படும்.
ஜிடி: புதிய காலாவதி மதிப்பு ஏற்கனவே உள்ளதை விட அதிகமாக இருந்தால், புதிய காலாவதி அமைக்கப்படும்.
LT: புதியதை விட ஏற்கனவே உள்ள மதிப்பு அதிகமாக இருந்தால் புதிய காலக்கெடு மதிப்பு அமைக்கப்படும்.
மிக முக்கியமாக, EXPIRE கட்டளை நிலையான நேர சிக்கலில் செயல்படுகிறது. கட்டளை செயல்படுத்தல் வெற்றிகரமாக இருந்தால் முழு எண் 1 திரும்பும். தவறான வாதங்கள் அல்லது இல்லாத விசைகள் காரணமாக செயல்பாடு தோல்வியுற்றால், 0 வழங்கப்படும்.
பின்வரும் பிரிவில் காட்டப்பட்டுள்ளபடி காலாவதி நேரத்தை அமைக்க ஹாஷ்களில் EXPIRE கட்டளையைப் பயன்படுத்துவோம்:
EXPIRE கட்டளையைப் பயன்படுத்தி Redis Hash ஐ காலாவதி செய்யவும்
ஒரு பயனருக்கு ஒரு அமர்வு தகவல் Redis ஹாஷில் சேமிக்கப்படுகிறது என்று வைத்துக்கொள்வோம் அமர்வு:ஐடி:1000:பயனர்:10. பல புல மதிப்பு ஜோடிகளுடன் Redis ஹாஷை உருவாக்க HMSET கட்டளையைப் பயன்படுத்தலாம்:
hmset அமர்வு:id: 1000 :பயனர்: 10 பயனர் பெயர் 'ஜெய்' குக்கீ 'ஆம்' கடவுச்சொல் '389Ysu2'
HGETALL கட்டளையைப் பயன்படுத்தி உருவாக்கப்பட்ட ஹாஷை ஆய்வு செய்வோம்.
கூடுதலாக, பயனர் 60 வினாடிகளுக்கு மேல் செயலற்ற நிலையில் இருந்தால், அமர்வு 10 வினாடிகளுக்குப் பிறகு காலாவதியாகிவிடும். அமர்வு தகவலைச் சேமிக்கும் ஹாஷின் காலாவதி நேரத்தை அமைப்பதன் மூலம் அமர்வு காலாவதி அடையப்படுகிறது.
EXPIRE கட்டளையை நாம் பின்வருமாறு பயன்படுத்தலாம்:
காலாவதியாகும் அமர்வு:id: 1000 :பயனர்: 10 10
குறிப்பிட்டுள்ளபடி, காலாவதி மதிப்பு 10 வினாடிகளுக்கு அமைக்கப்பட்டுள்ளது.
எதிர்பார்த்தபடி, ரிட்டர்ன் மதிப்பு 1 ஆகும், அதாவது ஹாஷுக்கு TTL வெற்றிகரமாக அமைக்கப்பட்டது. ரெடிஸ் ஸ்டோரில் இருந்து ஹாஷ் கீயை அகற்றுவதற்கு முன் எஞ்சியிருக்கும் நேரத்தைச் சரிபார்ப்போம். TTL கட்டளையை பின்வருமாறு பயன்படுத்தலாம்:
வெளியீட்டில் காட்டப்பட்டுள்ளபடி, ஹாஷை தானாக அகற்றுவதற்கு முன் மூன்று வினாடிகள் மீதமுள்ளன. 10 வினாடிகளுக்குப் பிறகு, TTL கட்டளை வெளியீடு பின்வருமாறு:
-2 முழு எண் பதில் சுட்டிக்காட்டப்பட்டபடி, ஹாஷ் இல்லை.
காலாவதி நேரத்தின் இருப்பின் அடிப்படையில் காலக்கெடுவை அமைக்கவும்
EXPIRE கட்டளையானது NX மற்றும் XX தருமதிப்புகளை ஏற்று ஒரு குறிப்பிட்ட ஹாஷின் காலாவதியின் இருப்பின் அடிப்படையில் புதிய காலக்கெடுவை அமைக்கிறது. உடன் புதிய ஹாஷை உருவாக்குவோம் நாட் டைம்அவுட் முக்கிய .
hmset noTimeOut பெயர் 'சோதனை'
முந்தைய ஹாஷுக்கு புதிய காலாவதியை அமைக்க முயற்சிப்போம். கூடுதலாக, XX வாதத்தை EXPIRE கட்டளைக்கும் அனுப்புகிறோம்.
நாம் குறிப்பிடுவதால் XX கட்டளையில் விருப்பம், காலாவதி நேரம் அமைக்கப்படாது. குறிப்பிட்ட ஹாஷ் விசையுடன் தொடர்புடைய காலக்கெடு எதுவும் இல்லை என்றால், XX விருப்பம் புதிய காலாவதி நேரத்தை அமைக்க அனுமதிக்காது.
நாம் பயன்படுத்தினால் NX விருப்பம், காலாவதி மதிப்பு 15 ஆக அமைக்கப்பட்டுள்ளது.
EXPIRE கட்டளை முழு எண் 1 பதிலை வழங்குகிறது, அதாவது காலக்கெடு சரியாக அமைக்கப்பட்டுள்ளது.
தற்போதுள்ள காலக்கெடு மதிப்பின் அடிப்படையில் காலக்கெடுவை அமைக்கவும்
GT மற்றும் LT விருப்பங்களைப் பயன்படுத்தி ஹாஷ் காலாவதி நேரத்தை தற்போதுள்ள காலக்கெடுவின் அடிப்படையில் அமைக்கலாம்.
என்ற புதிய ஹாஷை உருவாக்குவோம் hashWithTimeout.
hmset hashWithTimeout புலம்1 மதிப்பு1
அடுத்து, ஹாஷுக்கு 200 வினாடிகள் காலாவதி நேரத்தை அமைக்கிறோம்.
ஜிடி விருப்பத்துடன் ஹாஷிற்கு 100 வினாடிகள் புதிய காலக்கெடுவை பின்வருமாறு அமைக்க முயற்சிப்போம்:
GT விருப்பம் குறிப்பிடப்பட்டுள்ளதால், EXPIRE கட்டளையானது புதிய காலாவதி மதிப்பு ஏற்கனவே உள்ளதை விட அதிகமாக உள்ளதா என சரிபார்த்து புதிய காலாவதி நேரத்தை அமைக்கும். இந்த எடுத்துக்காட்டில், புதிய காலக்கெடு தற்போதுள்ள காலக்கெடுவை விட அதிகமாக இல்லை. எனவே, கட்டளை புதிய காலாவதி நேரத்தை அமைக்காது மற்றும் 0 திரும்பும்.
GTக்குப் பதிலாக LT விருப்பத்தைப் பயன்படுத்துவோம். புதிய காலாவதி நேரம் தற்போதைய நேரத்தை விட குறைவாக இருப்பதால், பின்வரும் கட்டளை புதிய காலக்கெடுவை வெற்றிகரமாக அமைக்க வேண்டும்.
முடிவுரை
சுருக்கமாக, கொடுக்கப்பட்ட விசைக்கு TTL மதிப்பை அமைக்க Redis EXPIRE கட்டளை பயன்படுத்தப்படுகிறது. முன்னிருப்பாக, ரெடிஸ் ஹாஷ் விசைகள் நிலையற்றதாக அழைக்கப்படும் எந்த காலக்கெடுவுடன் தொடர்புபடுத்தப்படவில்லை. விவாதிக்கப்பட்டபடி, ரெடிஸ் ஹாஷில் காலக்கெடு மதிப்பை அமைக்க EXPIRE கட்டளை பயன்படுத்தப்படுகிறது. வழக்கமாக, ரெடிஸ் டேட்டா ஸ்டோரில் இருந்து ஹாஷ் காலாவதியான மதிப்பாகக் குறிப்பிடப்பட்ட நேரத்திற்குப் பிறகு நீக்கப்படும். எடுத்துக்காட்டுகளில் காட்டப்பட்டுள்ளபடி, நிபந்தனையின் அடிப்படையில் ஹாஷ் காலாவதியை அமைக்க XX, NX, GT மற்றும் LT போன்ற சில விருப்ப வாதங்களை EXPIRE கட்டளை ஏற்றுக்கொள்கிறது.