Редис ГЕТЕКС

Redis Geteks



Редис је складиште података кључ-вредност које се користи као кеш меморија, база података, временске серије, механизам за ток, посредник порука, итд. Пошто Редис складиште података користи једноставан формат пара кључ-вредност за чување података, веома је меморијско ефикасан. Поред тога, брзина упита је веома висока са малим временским сложеностима као што су О(1) и О(лог(Н)). Редис кључеви могу да садрже различите структуре података, као што су стрингови, скупови, хешеви, сортирани скупови и листе.

Обично се команде ГЕТ и СЕТ користе за чување и преузимање вредности типа стрингова ускладиштених на датом Редис кључу. Ове две команде раде са константном временском сложеношћу.







Поред тога, команда ГЕТЕКС је доступна за читање вредности стрингова ускладиштених на датом кључу. Али ова команда је такође повезана са паралелном операцијом писања. Овај водич ће се фокусирати на синтаксу команде ГЕТЕКС, њене опције и случајеве употребе.



ТТЛ кључа Редис

Вредност времена живота (ТТЛ) је време истека датог податка. Обично се ТТЛ може повезати са редовима базе података. Временско ограничење се такође може подесити помоћу Редис тастера. Дакле, Редис клијент може да провери преостале секунде да ће дати кључ бити доступан у складишту података. Редис нуди ТТЛ команду за проверу времена до живе вредности датог кључа. Ако временско ограничење није повезано са наведеним кључем, ТТЛ команда враћа -1. Користићемо ТТЛ команду у следећим одељцима да проверимо преостало време датог кључа.



Команда ГЕТЕКС

Као што је истакнуто, команда ГЕТЕКС је сличнија команди ГЕТ, осим што се може користити за подешавање времена истека за наведени кључ. Штавише, командна опција може уклонити вредност временског ограничења из датог кључа. Синтакса ГЕТЕКС команде је следећа:





ГЕТЕКС кључ [ ЕКС тимеоут_ин_сецондс | ПКС тимеоут_ин_миллисецондс | ЕКСАТ тимеоут_ин_уник-тиме-сецондс | ПКСАТ тимеоут_ин_уник-време-милисекунде | УРАЈТЕ ]

кључ: Ово је кључ који указује на вредност низа.

Следећи опциони аргументи се могу користити за постављање временског ограничења у секундама или милисекундама.



Нпр.: Ово ће поставити време истека у секундама за дати кључ.

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

Поред тога, можемо навести УНИКС временску ознаку у секундама или милисекундама користећи следеће опције команде ЕКСАТ и ПКСАТ :

ЕКСАТ: Време истека ће бити подешено у УНИКС формату временске ознаке, а временска ознака ће бити у секундама.

ПКСАТ: Временско ограничење за дати Редис кључ биће постављено као УНИКС временска ознака у милисекундама.

ТРАЈТЕ: Навођењем овога, можете уклонити вредност времена до активне вредности повезане са одређеним кључем.

Команда ГЕТЕКС враћа вредност наведеног кључа. Ова команда ради само са вредностима типа низа, али не и хешовима, листама, сортираним скуповима итд. Ако наведете кључ повезан са вредношћу која није низ, команда ће вратити грешку. Поред тога, ако је кључ већ истекао или не постоји, команда ће се вратити нула.

У следећем одељку ћемо покрити практичну употребу ГЕТЕКС команде.

Случај употребе — Привремена веза за ресетовање или генерисање ПИН кода за опоравак лозинке/ОТП

Компанија за веб хостинг обезбеђује функцију опоравка лозинке за регистроване кориснике. Као безбедносну меру, кориснику шаљу нову УРЛ везу, која ће истећи у року од 5 минута. Компанија већ дуже време користи Редис складиште података и користи команду ГЕТЕКС да би поставила вредност времена за датог корисника.

Претпоставимо да корисник са усер_ид 1000 захтева опоравак лозинке. Дакле, УРЛ за опоравак може бити сачуван у кључу РецовериУРЛ:УсерИД:1000 . Можемо користити команду СЕТ да сачувамо УРЛ за опоравак на следећи начин:

комплет РецовериУРЛ:УсерИД: 1000 '9135789ФБ6Е0Ф81Ц37209А22ФА71АД33Ц9053798'

Хајде да проверимо да ли је УРЛ стринг правилно ускладиштен у кључу РецовериУРЛ:УсерИД:1000. Наредбу ГЕТЕКС можемо користити на следећи начин:

гетек РецовериУРЛ:УсерИД: 1000

Излаз претходне команде је приказан у следећем:

Ако смо користили команду ГЕТ уместо команде ГЕТЕКС, излаз ће бити исти.

Хајде да користимо ТТЛ команду да проверимо да ли је време истека повезано са овим кључем.

Ттл РецовериУРЛ:УсерИД: 1000

Као што се очекивало, ТТЛ команда је вратила -1, што значи да време истека није повезано са наведеним кључем.

Према овом примеру, компанија за хостовање треба да подеси временско ограничење од 5 минута за УРЛ за опоравак. Дакле, користићемо ЕКС командна опција. Пошто је 5 минута 300 секунди, можемо конструисати ГЕТЕКС команду на следећи начин:

гетек РецовериУРЛ:УсерИД: 1000 ЕКС 500

Покренимо ТТЛ команду неколико пута да бисмо проверили преостало време за које ће кључ постојати у складишту података.

Као што се и очекивало, време се смањује, а на крају и РецовериУРЛ:УсерИД:1000 кључ ће бити уклоњен. Следећи резултат је након 5 минута:

Наредба је вратила -2, што значи да је кључ истекао и обрисан из складишта података.

Понекад ћете можда морати да уклоните вредност временског ограничења која је повезана са датим кључем. Дакле, опција команде ПЕРСИСТ се може користити за брисање ТТЛ вредности повезане са наведеним кључем.

Хајде да направимо још један пример кључа и доделимо му вредност низа. У овом случају ћемо навести ТТЛ вредност у милисекундама преношењем ПКС опција.

комплет КеитоТестПерсист „Ово ће истећи у року од 60 секунди“ ПКС 50000

Затим ћемо проверити преостало време на следећи начин:

Као што се очекивало, ТТЛ се смањује. Позовимо ГЕТЕКС команду са опцијом ПЕРСИСТ на следећи начин:

гетек КеитоТестПерсист персист

У идеалном случају, ово би уклонило ТТЛ повезан са овим кључем. Хајде да прегледамо ТТЛ за кључ КеитоТестПерсист.

ТТЛ команда је вратила -1, што значи да ТТЛ није повезан са кључем КеитоТестПерсист.

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

Закључак

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