ரெடிஸ் கெடெக்ஸ்

Retis Keteks



ரெடிஸ் என்பது இன்-மெமரி கேச், டேட்டாபேஸ், டைம் சீரிஸ், ஸ்ட்ரீம் என்ஜின், மெசேஜ் ப்ரோக்கர் போன்றவற்றாகப் பயன்படுத்தப்படும் ஒரு முக்கிய-மதிப்பு டேட்டா ஸ்டோர் ஆகும். ரெடிஸ் டேட்டா ஸ்டோர், டேட்டாவை வைத்திருக்க எளிய விசை-மதிப்பு ஜோடி வடிவமைப்பைப் பயன்படுத்துவதால், இது மிகவும் நினைவகம். திறமையான. கூடுதலாக, O(1) மற்றும் O(log(N)) போன்ற குறைந்த நேர சிக்கல்களுடன் வினவல் வேகம் மிக அதிகமாக உள்ளது. Redis விசைகள் சரங்கள், தொகுப்புகள், ஹாஷ்கள், வரிசைப்படுத்தப்பட்ட தொகுப்புகள் மற்றும் பட்டியல்கள் போன்ற பல்வேறு தரவு கட்டமைப்புகளை வைத்திருக்க முடியும்.

வழக்கமாக, GET மற்றும் SET கட்டளைகள் கொடுக்கப்பட்ட Redis விசையில் சேமிக்கப்பட்ட சரம் வகை மதிப்புகளை சேமிக்கவும் மீட்டெடுக்கவும் பயன்படுத்தப்படுகின்றன. இந்த இரண்டு கட்டளைகளும் நிலையான நேர சிக்கலுடன் செயல்படுகின்றன.







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



ரெடிஸ் கீயின் TTL

வாழும் நேரம் (TTL) மதிப்பு என்பது கொடுக்கப்பட்ட தரவின் காலாவதி நேரமாகும். பொதுவாக, ஒரு TTL ஆனது தரவுத்தள வரிசைகளுடன் இணைக்கப்படலாம். ரெடிஸ் விசைகள் மூலம் காலக்கெடுவை அமைக்கலாம். எனவே, கொடுக்கப்பட்ட விசை தரவு சேமிப்பகத்தில் கிடைக்கும் மீதமுள்ள வினாடிகளை Redis கிளையன்ட் சரிபார்க்க முடியும். கொடுக்கப்பட்ட விசையின் நேரடி மதிப்பிற்கான நேரத்தை சரிபார்க்க ரெடிஸ் ஒரு TTL கட்டளையை வழங்குகிறது. குறிப்பிட்ட விசையுடன் காலக்கெடு எதுவும் இல்லை என்றால், TTL கட்டளை -1 ஐ வழங்குகிறது. கொடுக்கப்பட்ட விசையின் மீதமுள்ள நேரத்தைச் சரிபார்க்க அடுத்த பிரிவுகளில் TTL கட்டளையைப் பயன்படுத்துவோம்.



GETEX கட்டளை

சிறப்பித்துக் காட்டப்பட்டுள்ளபடி, GETEX கட்டளையானது GET கட்டளையைப் போலவே உள்ளது, தவிர, குறிப்பிட்ட விசையின் காலாவதி நேரத்தை அமைக்க இது பயன்படுத்தப்படலாம். மேலும், கட்டளை விருப்பமானது கொடுக்கப்பட்ட விசையிலிருந்து காலாவதியான மதிப்பை நீக்கலாம். GETEX கட்டளை தொடரியல் பின்வருமாறு:





GETEX விசை [ EX நேரம் முடிந்தது_வினாடிகளில் | PX நேரம் முடிந்தது_in_milliseconds | EXAT டைம்அவுட்_இன்_யுனிக்ஸ்-டைம்-வினாடிகள் | PXAT டைம்அவுட்_இன்_யுனிக்ஸ்-டைம்-மில்லி விநாடிகள் | நிலைத்து ]

முக்கிய: இது சர மதிப்பைக் குறிக்கும் விசையாகும்.

வினாடிகள் அல்லது மில்லி விநாடிகளில் காலக்கெடுவை அமைக்க பின்வரும் விருப்ப வாதங்கள் பயன்படுத்தப்படலாம்.



உதாரணம்: இது கொடுக்கப்பட்ட விசைக்கான காலாவதி நேரத்தை நொடிகளில் அமைக்கும்.

PX: முக்கிய காலக்கெடு மதிப்பு மில்லி விநாடிகளில் அமைக்கப்படும்.

கூடுதலாக, பின்வரும் கட்டளை விருப்பங்களைப் பயன்படுத்தி UNIX நேர முத்திரை மதிப்பை வினாடிகள் அல்லது மில்லி விநாடிகளில் குறிப்பிடலாம் EXAT மற்றும் PXAT :

EXAT: காலாவதி நேரம் UNIX நேர முத்திரை வடிவத்தில் அமைக்கப்படும், மேலும் நேரமுத்திரை நொடிகளில் இருக்கும்.

PXAT: கொடுக்கப்பட்ட Redis விசைக்கான காலக்கெடு, மில்லி விநாடிகளில் UNIX நேர முத்திரையாக அமைக்கப்படும்.

நிலைத்து: இதைக் குறிப்பிடுவதன் மூலம், குறிப்பிட்ட விசையுடன் தொடர்புடைய நேர மதிப்பிற்கான நேரத்தை நீங்கள் அகற்றலாம்.

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

பின்வரும் பிரிவில், GETEX கட்டளையின் நடைமுறை பயன்பாட்டைப் பார்ப்போம்.

வழக்கைப் பயன்படுத்தவும் - கடவுச்சொல் மீட்பு/OTP களுக்கான தற்காலிக மீட்டமைப்பு இணைப்பு அல்லது பின் குறியீடு உருவாக்கம்

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

user_id 1000 உள்ள பயனர் கடவுச்சொல் மீட்டெடுப்பைக் கோருகிறார் என்று வைத்துக்கொள்வோம். எனவே, மீட்பு URL ஐ விசையில் சேமிக்க முடியும் RecoveryURL:UserID:1000 . மீட்பு URL ஐ பின்வருமாறு சேமிக்க SET கட்டளையைப் பயன்படுத்தலாம்:

அமைக்கப்பட்டது RecoveryURL:UserID: 1000 'https://abc.com/recovery/userid=1000,key=sdfiuoe3290e9rjs'

சரத்தின் URL விசையில் சரியாகச் சேமிக்கப்பட்டுள்ளதா என்பதைச் சரிபார்ப்போம் RecoveryURL:UserID:1000. நாம் GETEX கட்டளையை பின்வருமாறு பயன்படுத்தலாம்:

getex RecoveryURL:UserID: 1000

முந்தைய கட்டளையின் வெளியீடு பின்வருவனவற்றில் காட்டப்பட்டுள்ளது:

GETEX கட்டளைக்குப் பதிலாக GET கட்டளையைப் பயன்படுத்தியிருந்தால், வெளியீடு ஒரே மாதிரியாக இருக்கும்.

இந்த விசையுடன் காலாவதி நேரம் தொடர்புடையதா என்பதைச் சரிபார்க்க TTL கட்டளையைப் பயன்படுத்துவோம்.

Ttl RecoveryURL:UserID: 1000

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

இந்த எடுத்துக்காட்டின்படி, ஹோஸ்டிங் நிறுவனம் மீட்டெடுப்பு URLக்கு 5 நிமிட காலக்கெடுவை அமைக்க வேண்டும். எனவே, நாங்கள் பயன்படுத்துவோம் EX கட்டளை விருப்பம். 5 நிமிடங்கள் 300 வினாடிகள் என்பதால், நாம் GETEX கட்டளையை பின்வருமாறு உருவாக்கலாம்:

getex RecoveryURL:UserID: 1000 EX 500

டேட்டா ஸ்டோரில் இருக்கும் மீதமுள்ள நேரத்தை ஆய்வு செய்ய TTL கட்டளையை சில முறை இயக்குவோம்.

எதிர்பார்த்தபடி, நேரம் குறைகிறது, இறுதியில், தி RecoveryURL:UserID:1000 விசை அகற்றப்படும். 5 நிமிடங்களுக்குப் பிறகு பின்வரும் வெளியீடு:

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

சில நேரங்களில், கொடுக்கப்பட்ட விசையுடன் தொடர்புடைய காலக்கெடு மதிப்பை நீங்கள் அகற்ற வேண்டியிருக்கலாம். எனவே, குறிப்பிட்ட விசையுடன் தொடர்புடைய TTL மதிப்பை நீக்க PERSIST கட்டளை விருப்பத்தைப் பயன்படுத்தலாம்.

மற்றொரு மாதிரி விசையை உருவாக்கி அதற்கு ஒரு சர மதிப்பை ஒதுக்குவோம். இந்த வழக்கில், TTL மதிப்பை மில்லி விநாடிகளில் கடந்து செல்வதன் மூலம் குறிப்பிடுவோம் PX விருப்பம்.

அமைக்கப்பட்டது KeytoTestPersist 'இது 60 வினாடிகளுக்குள் காலாவதியாகிவிடும்' PX 50000

அடுத்து, மீதமுள்ள நேரத்தை பின்வருமாறு சரிபார்க்கிறோம்:

எதிர்பார்த்தபடி, TTL குறைந்து வருகிறது. PERSIST விருப்பத்துடன் GETEX கட்டளையை பின்வருமாறு அழைப்போம்:

getex KeytoTestPersist persist

வெறுமனே, இது இந்த விசையுடன் தொடர்புடைய TTL ஐ அகற்றும். விசைக்கான TTL ஐ ஆய்வு செய்வோம் KeytoTestPersist.

TTL கட்டளை -1 ஐ வழங்கியது, அதாவது TTL விசையுடன் தொடர்புபடுத்தப்படவில்லை KeytoTestPersist.

இதேபோல், தி GETEX UNIX நேர முத்திரையில் விசைகளுக்கான காலாவதி நேரத்தை அமைக்க கட்டளை பயன்படுத்தப்படலாம்.

முடிவுரை

சுருக்கமாக, GET கட்டளையைப் போலவே கொடுக்கப்பட்ட விசையில் சேமிக்கப்பட்ட சரம் மதிப்புகளை மீட்டெடுக்க Redis GETEX கட்டளையைப் பயன்படுத்தலாம். GETEX கட்டளையுடனான ஒரே வித்தியாசம் என்னவென்றால், கொடுக்கப்பட்ட விசைக்கான காலாவதி நேரங்களை அமைப்பதையும் அகற்றுவதையும் ஆதரிக்கிறது. வினாடிகள், மில்லி விநாடிகள் மற்றும் UNIX நேர முத்திரை வினாடிகள் அல்லது மில்லி விநாடிகளில் காலாவதி நேரத்தைக் குறிப்பிட இது பல விருப்ப வாதங்களை ஆதரிக்கிறது. விவாதிக்கப்பட்டபடி, கொடுக்கப்பட்ட விசைக்கான தொடர்புடைய TTL ஐ அகற்ற PERSIST விருப்பத்தை கட்டளை வழங்குகிறது. ஒட்டுமொத்தமாக, GETEX கட்டளை நிலையான நேர சிக்கலுடன் செயல்படுகிறது.