Редис ЕКСПИРЕ хеш кључ

Redis Ekspire Hes Kluc



Редис хешови су посебна врста типа података који је много сличнији ЈСОН објекту, Јава ХасхМап-у или Питхон речнику. Штавише, то је колекција парова поља-вредност који се могу користити за моделирање објеката домена. Редис хеш структура података је изузетно ефикасна у меморији где сваки хеш кључ може да ускладишти до четири милијарде парова поља-вредност. Што је најважније, фундаменталне хеш операције као што су ХСЕТ, ХГЕТ, ХМГЕТ, итд. раде на константној временској сложености.


Редис хеш кључеви имају бесконачно време живота (ТТЛ) што значи да су упорни и експлицитно се бришу помоћу команди као што је ДЕЛ. У овом чланку ћемо се фокусирати на подешавање ТТЛ-а за Редис хешове помоћу команде ЕКСПИРЕ.







Редис ЕКСПИРЕ команда

Команда ЕКСПИРЕ се користи за постављање временског ограничења за дати кључ Редис хеша, скупа, листе, итд. Редис кључ се брише из базе података ако временско ограничење истекне. Оно што је најважније, временско ограничење се не брише док се садржај кључа не избрише или препише. Промена вредности повезаних са кључем не утиче на време истека.



Синтакса команде ЕКСПИРЕ је следећа:



ЕКСПИРЕ кључ екпири_тиме_сецондс [ НКС | ГКС | ГТ | ЛТ ]


кључ: Кључ за Хасх, Лист или Сет који вам је потребан да подесите временско ограничење.





екпирти_тиме_сецондс: Вредност временског ограничења у секундама.

Команда ЕКСПИРЕ прихвата неколико опционих аргумената.



НКС: Вредност временског ограничења је подешена само ако наведени кључ већ није истекао.

КСКС: Када наведени кључ има постојећу вредност временског ограничења, поставља се нови рок трајања.

ГТ: Ако је нова вредност временског ограничења већа од постојеће, поставља се нови истек.

ЛТ: Нова вредност временског ограничења се поставља ако је постојећа већа од нове.

Најважније, команда ЕКСПИРЕ ради на константној временској сложености. Цео број 1 се враћа ако је извршење команде успешно. Ако операција не успе због погрешних аргумената или непостојећих кључева, враћа се 0.

Користићемо команду ЕКСПИРЕ за хешове да бисмо поставили време истека као што је приказано у следећем одељку:

Екпире Редис хеш помоћу команде ЕКСПИРЕ

Претпоставимо да су информације о сесији по кориснику ускладиштене у Редис хешу сесија:ид:1000:корисник:10. Можемо користити команду ХМСЕТ да креирамо Редис хеш са више парова поља-вредност на следећи начин:

хмсет сесија:ид: 1000 :корисник: 10 корисничко име 'јае' колачић 'да' Лозинка '389Ису2'


Хајде да проверимо креирани хеш користећи команду ХГЕТАЛЛ.

хгеталл сесија:ид: 1000 :корисник: 10



Поред тога, сесија истиче након 10 секунди ако је корисник неактиван дуже од 60 секунди. Истек сесије се постиже подешавањем времена истека за хеш који чува информације о сесији.

Команду ЕКСПИРЕ можемо користити на следећи начин:

истекне сесија:ид: 1000 :корисник: 10 10


Као што је поменуто, вредност временског ограничења је подешена на 10 секунди.


Као што се и очекивало, повратна вредност је 1 што значи да је ТТЛ успешно постављен за хеш. Хајде да проверимо преостало време пре него што се хеш кључ уклони из Редис продавнице. ТТЛ команда се може користити на следећи начин:

ттл сесија:ид: 1000 :корисник: 10



Као што је приказано у излазу, преостале су три секунде пре аутоматског уклањања хеша. Након 10 секунди, излаз ТТЛ команде је следећи:


Пошто је наведен целобројни одговор -2, хеш не постоји.

Подесите временско ограничење на основу постојања времена истека

Команда ЕКСПИРЕ прихвата аргументе НКС и КСКС да би поставила ново временско ограничење на основу постојања истека за наведени хеш. Хајде да направимо нови хеш са ноТимеОут кључ .

хмсет ноТимеОут име 'тест'


Покушајмо да поставимо нови рок трајања за претходни хеш. Поред тога, аргумент КСКС такође прослеђујемо команди ЕКСПИРЕ.

екпире ноТимеОут петнаест КСКС


Пошто наводимо КСКС опцију у команди, време истека неће бити подешено. КСКС опција вам не дозвољава да поставите ново време истека ако не постоји постојеће временско ограничење повезано са наведеним хеш кључем.


Ако користимо НКС опција, вредност временског ограничења је подешена на 15.

екпире ноТимеОут петнаест НКС



Команда ЕКСПИРЕ враћа цео број 1 одговор што значи да је временско ограничење правилно подешено.

Подесите временско ограничење на основу постојеће вредности временског ограничења

Опције ГТ и ЛТ се могу користити за подешавање времена истека хеширања на основу постојеће дужине временског ограничења.

Хајде да направимо нови хеш под називом хасхВитхТимеоут.

хмсет хасхВитхТимеоут поље1 вредност1


Затим постављамо време истека хеша од 200 секунди.

екпире хасхВитхТимеоут 200


Покушајмо да поставимо ново временско ограничење од 100 секунди за хеш заједно са ГТ опцијом на следећи начин:

екпире хасхВитхТимеоут 100 ГТ


Пошто је ГТ опција наведена, команда ЕКСПИРЕ ће проверити да ли је нова вредност временског ограничења већа од постојеће и подесити ново време истека. У овом примеру, ново временско ограничење није веће од постојећег. Дакле, команда неће поставити ново време истека и 0 ће бити враћено.


Хајде да користимо опцију ЛТ уместо ГТ. Пошто је ново време истека краће од тренутног, следећа команда би требало да успешно подеси ново временско ограничење.

екпире хасхВитхТимеоут 100 ЛТ


Закључак

Укратко, наредба Редис ЕКСПИРЕ се користи за постављање ТТЛ вредности за дати кључ. Подразумевано, Редис хеш кључеви нису повезани ни са једним тимеоутом који се назива непроменљивим. Као што је објашњено, команда ЕКСПИРЕ се користи за постављање вредности временског ограничења на Редис хеш. Обично се хеш брише из Редис складишта података након временског периода наведеног као вредност временског ограничења. Као што је приказано у примерима, команда ЕКСПИРЕ прихвата неке опционе аргументе као што су КСКС, НКС, ГТ и ЛТ за постављање истека хеша на основу услова.