Redis హాష్ కీని గడువు ముగుస్తుంది

Redis Has Kini Gaduvu Mugustundi



Redis హాష్‌లు అనేది JSON ఆబ్జెక్ట్, జావా హాష్‌మ్యాప్ లేదా పైథాన్ డిక్షనరీకి చాలా సారూప్యమైన ఒక ప్రత్యేక రకమైన డేటా రకం. ఇంకా, ఇది డొమైన్ వస్తువులను మోడల్ చేయడానికి ఉపయోగించే ఫీల్డ్-వాల్యూ జతల సమాహారం. ప్రతి హాష్ కీ నాలుగు బిలియన్ల ఫీల్డ్-విలువ జతల వరకు నిల్వ చేయగల రెడిస్ హాష్ డేటా నిర్మాణం చాలా మెమరీ సామర్థ్యం కలిగి ఉంటుంది. మరీ ముఖ్యంగా, HSET, HGET, HMGET మొదలైన ప్రాథమిక హాష్ కార్యకలాపాలు స్థిరమైన సమయ సంక్లిష్టతపై పనిచేస్తాయి.


Redis హాష్ కీలు జీవించడానికి అనంతమైన సమయాన్ని కలిగి ఉంటాయి (TTL) అంటే అవి నిరంతరంగా ఉంటాయి, అవి DEL వంటి ఆదేశాలను ఉపయోగించి స్పష్టంగా తొలగించబడతాయి. ఈ కథనంలో, మేము EXPIRE ఆదేశాన్ని ఉపయోగించి Redis హాష్‌ల కోసం TTLని సెట్ చేయడంపై దృష్టి పెడతాము.







Redis EXPIRE కమాండ్

EXPIRE ఆదేశం Redis హాష్, సెట్, జాబితా మొదలైన వాటి యొక్క ఇచ్చిన కీపై గడువును సెట్ చేయడానికి ఉపయోగించబడుతుంది. గడువు ముగిసినట్లయితే Redis కీ డేటాబేస్ నుండి తొలగించబడుతుంది. మరీ ముఖ్యంగా, కీ యొక్క కంటెంట్‌లు తొలగించబడే వరకు లేదా ఓవర్‌రైట్ అయ్యే వరకు సమయం ముగిసింది. కీతో అనుబంధించబడిన విలువలను మార్చడం గడువు సమయాన్ని ప్రభావితం చేయదు.



EXPIRE కమాండ్ యొక్క వాక్యనిర్మాణం క్రింది విధంగా ఉంది:



EXPIRE కీ expiry_time_seconds [ NX | GX | GT | LT ]


కీ: హాష్, జాబితా లేదా సెట్ యొక్క కీ మీరు గడువును సెట్ చేయవలసి ఉంటుంది.





expirty_time_seconds: సెకన్లలో గడువు ముగింపు విలువ.

EXPIRE కమాండ్ ద్వారా అనేక ఐచ్ఛిక వాదనలు ఆమోదించబడ్డాయి.



NX: పేర్కొన్న కీకి ఇప్పటికే గడువు ముగియకపోతే మాత్రమే గడువు ముగింపు విలువ సెట్ చేయబడుతుంది.

XX: పేర్కొన్న కీ ఇప్పటికే గడువు ముగింపు విలువను కలిగి ఉన్నప్పుడు, కొత్త గడువు సెట్ చేయబడుతుంది.

GT: కొత్త గడువు ముగింపు విలువ ఇప్పటికే ఉన్న దాని కంటే ఎక్కువగా ఉంటే, కొత్త గడువు సెట్ చేయబడుతుంది.

LT: ఇప్పటికే ఉన్నది కొత్తదాని కంటే ఎక్కువగా ఉంటే కొత్త గడువు ముగింపు విలువ సెట్ చేయబడుతుంది.

ముఖ్యంగా, EXPIRE కమాండ్ స్థిరమైన సమయ సంక్లిష్టతపై పనిచేస్తుంది. కమాండ్ ఎగ్జిక్యూషన్ విజయవంతమైతే పూర్ణాంకం 1 తిరిగి వస్తుంది. తప్పు వాదనలు లేదా ఉనికిలో లేని కీల కారణంగా ఆపరేషన్ విఫలమైతే, 0 తిరిగి ఇవ్వబడుతుంది.

కింది విభాగంలో చూపిన విధంగా గడువు సమయాన్ని సెట్ చేయడానికి మేము హాష్‌లపై EXPIRE ఆదేశాన్ని ఉపయోగిస్తాము:

EXPIRE కమాండ్‌ని ఉపయోగించి Redis Hash గడువును ముగించండి

ఒక వినియోగదారుకు ఒక సెషన్ సమాచారం Redis హాష్‌లో నిల్వ చేయబడిందని అనుకుందాం సెషన్:id:1000:user:10. ఈ క్రింది విధంగా బహుళ ఫీల్డ్-వాల్యూ జతలతో Redis హాష్‌ని సృష్టించడానికి HMSET ఆదేశాన్ని ఉపయోగించవచ్చు:

hmset సెషన్:id: 1000 :user: 10 వినియోగదారు పేరు 'జే' కుకీ 'అవును' పాస్వర్డ్ '389Ysu2'


HGETALL ఆదేశాన్ని ఉపయోగించి సృష్టించిన హాష్‌ని తనిఖీ చేద్దాం.

hgetall సెషన్:id: 1000 :user: 10



అదనంగా, వినియోగదారు 60 సెకన్ల కంటే ఎక్కువ నిష్క్రియంగా ఉంటే సెషన్ 10 సెకన్ల తర్వాత ముగుస్తుంది. సెషన్ సమాచారాన్ని నిల్వ చేసే హాష్ కోసం గడువు సమయాన్ని సెట్ చేయడం ద్వారా సెషన్ గడువు సాధించబడుతుంది.

మేము ఈ క్రింది విధంగా EXPIRE ఆదేశాన్ని ఉపయోగించవచ్చు:

సెషన్ గడువు ముగుస్తుంది:id: 1000 :user: 10 10


పేర్కొన్నట్లుగా, గడువు ముగింపు విలువ 10 సెకన్లకు సెట్ చేయబడింది.


ఊహించినట్లుగా, రిటర్న్ విలువ 1, అంటే TTL హ్యాష్ కోసం విజయవంతంగా సెట్ చేయబడింది. Redis స్టోర్ నుండి హ్యాష్ కీని తీసివేయడానికి ముందు మిగిలి ఉన్న సమయాన్ని తనిఖీ చేద్దాం. TTL ఆదేశాన్ని ఈ క్రింది విధంగా ఉపయోగించవచ్చు:

ttl సెషన్:id: 1000 :user: 10



అవుట్‌పుట్‌లో చూపినట్లుగా, హాష్‌ను స్వయంచాలకంగా తీసివేయడానికి ముందు మూడు సెకన్లు మిగిలి ఉన్నాయి. 10 సెకన్ల తర్వాత, TTL కమాండ్ అవుట్‌పుట్ క్రింది విధంగా ఉంటుంది:


-2 పూర్ణాంక ప్రత్యుత్తరం సూచించినట్లుగా, హాష్ ఉనికిలో లేదు.

గడువు సమయం యొక్క ఉనికి ఆధారంగా గడువును సెట్ చేయండి

EXPIRE ఆదేశం NX మరియు XX ఆర్గ్యుమెంట్‌లను ఒక నిర్దిష్ట హాష్‌కు గడువు ముగింపు ఉనికి ఆధారంగా కొత్త గడువును సెట్ చేయడానికి అంగీకరిస్తుంది. దీనితో కొత్త హాష్‌ని క్రియేట్ చేద్దాం సమయం ముగిసింది కీ .

hmset noTimeOut పేరు 'పరీక్ష'


మునుపటి హాష్‌కి కొత్త గడువును సెట్ చేయడానికి ప్రయత్నిద్దాం. అదనంగా, మేము XX ఆర్గ్యుమెంట్‌ను EXPIRE కమాండ్‌కు కూడా పాస్ చేస్తాము.

సమయం ముగిసింది పదిహేను XX


మేము పేర్కొన్నందున XX ఆదేశంలో ఎంపిక, గడువు సమయం సెట్ చేయబడదు. పేర్కొన్న హాష్ కీతో అనుబంధించబడిన ప్రస్తుత గడువు ముగియకపోతే కొత్త గడువు సమయాన్ని సెట్ చేయడానికి XX ఎంపిక మిమ్మల్ని అనుమతించదు.


మేము ఉపయోగిస్తే NX ఎంపిక, గడువు ముగింపు విలువ 15కి సెట్ చేయబడింది.

సమయం ముగిసింది పదిహేను NX



EXPIRE కమాండ్ పూర్ణాంకం 1 ప్రత్యుత్తరాన్ని అందిస్తుంది అంటే గడువు సరిగ్గా సెట్ చేయబడిందని అర్థం.

ఇప్పటికే ఉన్న గడువు ముగింపు విలువ ఆధారంగా గడువును సెట్ చేయండి

GT మరియు LT ఎంపికలు ఇప్పటికే ఉన్న సమయం ముగిసింది పొడవు ఆధారంగా హాష్ గడువు సమయాన్ని సెట్ చేయడానికి ఉపయోగించవచ్చు.

అనే కొత్త హ్యాష్‌ని క్రియేట్ చేద్దాం hashWithTimeout.

hmset hashWithTimeout ఫీల్డ్1 విలువ1


తరువాత, మేము హాష్ కోసం 200 సెకన్ల గడువు సమయాన్ని సెట్ చేస్తాము.

టైమ్‌అవుట్‌తో హ్యాష్ గడువు ముగుస్తుంది 200


ఈ క్రింది విధంగా GT ఎంపికతో పాటు హాష్ కోసం 100 సెకన్ల కొత్త గడువును సెట్ చేయడానికి ప్రయత్నిద్దాం:

టైమ్‌అవుట్‌తో హ్యాష్ గడువు ముగుస్తుంది 100 GT


GT ఐచ్ఛికం పేర్కొనబడినందున, EXPIRE కమాండ్ కొత్త గడువు ముగింపు విలువ ఇప్పటికే ఉన్నదాని కంటే ఎక్కువగా ఉందో లేదో తనిఖీ చేస్తుంది మరియు కొత్త గడువు సమయాన్ని సెట్ చేస్తుంది. ఈ ఉదాహరణలో, కొత్త సమయం ముగిసింది, ఇప్పటికే ఉన్న సమయం ముగిసింది. అందువల్ల, ఆదేశం కొత్త గడువు సమయాన్ని సెట్ చేయదు మరియు 0 తిరిగి ఇవ్వబడుతుంది.


GTకి బదులుగా LT ఎంపికను ఉపయోగిస్తాము. కొత్త గడువు సమయం ప్రస్తుత సమయం కంటే తక్కువగా ఉన్నందున, కింది ఆదేశం కొత్త గడువును విజయవంతంగా సెట్ చేయాలి.

టైమ్‌అవుట్‌తో హ్యాష్ గడువు ముగుస్తుంది 100 LT


ముగింపు

సంక్షిప్తంగా, ఇచ్చిన కీ కోసం TTL విలువను సెట్ చేయడానికి Redis EXPIRE కమాండ్ ఉపయోగించబడుతుంది. డిఫాల్ట్‌గా, Redis హాష్ కీలు నాన్-వోలటైల్ అని పిలువబడే ఏ గడువుతో అనుబంధించబడవు. చర్చించినట్లుగా, Redis హాష్‌పై గడువు ముగింపు విలువను సెట్ చేయడానికి EXPIRE కమాండ్ ఉపయోగించబడుతుంది. సాధారణంగా, గడువు ముగిసిన విలువగా పేర్కొన్న సమయం తర్వాత Redis డేటా స్టోర్ నుండి హాష్ తొలగించబడుతుంది. ఉదాహరణలలో చూపినట్లుగా, షరతు ఆధారంగా హాష్ గడువును సెట్ చేయడానికి EXPIRE కమాండ్ XX, NX, GT మరియు LT వంటి కొన్ని ఐచ్ఛిక ఆర్గ్యుమెంట్‌లను అంగీకరిస్తుంది.