Redis GETEX

Redis Getex



Redis ialah stor data nilai kunci yang digunakan sebagai cache dalam memori, pangkalan data, siri masa, enjin strim, broker mesej, dsb. Memandangkan stor data Redis menggunakan format pasangan nilai kunci yang mudah untuk menyimpan data, ia adalah sangat memori cekap. Di samping itu, kelajuan pertanyaan adalah sangat tinggi dengan kerumitan masa yang rendah seperti O(1) dan O(log(N)). Kekunci Redis boleh menyimpan struktur data yang berbeza, seperti rentetan, set, cincang, set diisih dan senarai.

Biasanya, arahan GET dan SET digunakan untuk menyimpan dan mendapatkan semula nilai jenis rentetan yang disimpan pada kunci Redis yang diberikan. Kedua-dua arahan ini beroperasi dengan kerumitan masa yang berterusan.







Di samping itu, arahan GETEX tersedia untuk membaca nilai rentetan yang disimpan pada kunci yang diberikan. Tetapi arahan ini dikaitkan dengan operasi tulis selari, juga. Panduan ini akan menumpukan pada sintaks arahan GETEX, pilihannya dan kes penggunaannya.



TTL Kunci Redis

Nilai masa untuk hidup (TTL) ialah masa tamat sekeping data tertentu. Biasanya, TTL boleh dikaitkan dengan baris pangkalan data. Tamat masa boleh ditetapkan dengan kekunci Redis juga. Jadi, pelanggan Redis boleh menyemak baki saat bahawa kunci yang diberikan akan tersedia dalam stor data. Redis menawarkan arahan TTL untuk menyemak masa untuk nilai hidup kunci yang diberikan. Jika tiada tamat masa dikaitkan dengan kunci yang ditentukan, arahan TTL mengembalikan -1. Kami akan menggunakan arahan TTL dalam bahagian seterusnya untuk menyemak baki masa kunci yang diberikan.



Perintah GETEX

Seperti yang diserlahkan, arahan GETEX lebih serupa dengan arahan GET, kecuali ia boleh digunakan untuk menetapkan masa tamat tempoh untuk kunci yang ditentukan. Tambahan pula, pilihan arahan boleh mengalih keluar nilai tamat masa daripada kunci yang diberikan. Sintaks arahan GETEX adalah seperti berikut:





kunci GETEX [ EX masa tamat_dalam_saat | tamat masa PX_dalam_milisaat | EXAT tamat masa_dalam_unix-masa-saat | tamat masa PXAT_dalam_unix-time-milisaat | BERTAHAN ]

kunci: Ini adalah kunci yang menunjuk kepada nilai rentetan.

Argumen pilihan berikut boleh digunakan untuk menetapkan tamat masa dalam saat atau milisaat.



Cth: Ini akan menetapkan masa tamat tempoh dalam beberapa saat untuk kunci yang diberikan.

PX: Nilai tamat masa kunci akan ditetapkan dalam milisaat.

Selain itu, kita boleh menentukan nilai cap waktu UNIX dalam saat atau milisaat menggunakan pilihan arahan berikut EXAT dan PXAT :

EXAT: Masa tamat tempoh akan ditetapkan dalam format cap masa UNIX, dan cap masa akan berada dalam beberapa saat.

PXAT: Tamat masa untuk kunci Redis yang diberikan akan ditetapkan sebagai cap masa UNIX dalam milisaat.

BERTAHAN: Dengan menyatakan ini, anda boleh mengalih keluar masa untuk nilai hidup yang dikaitkan dengan kunci yang ditentukan.

Perintah GETEX mengembalikan nilai kunci yang ditentukan. Perintah ini hanya berfungsi dengan nilai jenis rentetan tetapi bukan cincang, senarai, set diisih, dsb. Jika anda menentukan kunci yang dikaitkan dengan nilai bukan rentetan, arahan itu akan mengembalikan ralat. Di samping itu, jika kunci sudah tamat tempoh atau tidak wujud, arahan akan kembali tiada.

Dalam bahagian berikut, kami akan merangkumi penggunaan praktikal arahan GETEX.

Use Case — Pautan Tetapan Semula Sementara atau Penjanaan Kod PIN untuk Pemulihan Kata Laluan/OTP

Sebuah syarikat pengehosan web menyediakan ciri pemulihan kata laluan untuk pengguna berdaftar. Sebagai langkah keselamatan, mereka menghantar pautan URL baharu kepada pengguna, yang akan tamat tempoh dalam masa 5 minit. Syarikat itu telah lama menggunakan stor data Redis dan menggunakan arahan GETEX untuk menetapkan masa untuk nilai hidup bagi pengguna tertentu.

Katakan bahawa pengguna dengan user_id 1000 meminta pemulihan kata laluan. Jadi, URL pemulihan boleh disimpan pada kunci RecoveryURL:UserID:1000 . Kita boleh menggunakan arahan SET untuk menyimpan URL pemulihan seperti berikut:

ditetapkan RecoveryURL:UserID: 1000 'https://abc.com/recovery/userid=1000,key=sdfiuoe3290e9rjs'

Mari semak sama ada URL rentetan disimpan dengan betul pada kunci RecoveryURL:UserID:1000. Kita boleh menggunakan arahan GETEX seperti berikut:

getex RecoveryURL:UserID: 1000

Output arahan sebelumnya ditunjukkan dalam perkara berikut:

Jika kita telah menggunakan arahan GET dan bukannya arahan GETEX, output akan sama.

Mari gunakan arahan TTL untuk menyemak sama ada masa tamat tempoh dikaitkan dengan kunci ini.

Ttl RecoveryURL:UserID: 1000

Seperti yang dijangkakan, -1 telah dikembalikan oleh arahan TTL, yang bermaksud tiada masa tamat tempoh dikaitkan dengan kunci yang ditentukan.

Seperti contoh ini, syarikat pengehosan perlu menetapkan tamat masa 5 minit untuk URL pemulihan. Jadi, kami akan menggunakan EX pilihan arahan. Oleh kerana 5 minit ialah 300 saat, kita boleh membina arahan GETEX seperti berikut:

getex RecoveryURL:UserID: 1000 EX 500

Mari jalankan arahan TTL beberapa kali untuk memeriksa baki masa bahawa kunci akan wujud dalam stor data.

Seperti yang dijangka, masa semakin berkurangan, dan akhirnya, RecoveryURL:UserID:1000 kunci akan dikeluarkan. Berikut ialah output selepas 5 minit:

-2 telah dikembalikan oleh arahan, yang bermaksud kunci telah tamat tempoh dan dipadamkan daripada stor data.

Kadangkala, anda mungkin perlu mengalih keluar nilai tamat masa yang dikaitkan dengan kunci yang diberikan. Jadi, pilihan arahan PERSIST boleh digunakan untuk memadam nilai TTL yang berkaitan dengan kunci yang ditentukan.

Mari buat kunci sampel lain dan tetapkan nilai rentetan kepadanya. Dalam kes ini, kami akan menentukan nilai TTL dalam milisaat dengan melepasi PX pilihan.

ditetapkan KeytoTestPersist 'Ini akan tamat tempoh dalam masa 60 saat' PX 50000

Seterusnya, kami akan menyemak baki masa seperti berikut:

Seperti yang dijangkakan, TTL semakin berkurangan. Mari panggil arahan GETEX dengan pilihan PERSIST seperti berikut:

getex KeytoTestPersist berterusan

Sebaik-baiknya, ini akan mengalih keluar TTL yang dikaitkan dengan kunci ini. Mari kita periksa TTL untuk kunci KeytoTestPersist.

Perintah TTL mengembalikan -1, yang bermaksud tiada TTL dikaitkan dengan kunci KeytoTestPersist.

Begitu juga dengan GETEX arahan boleh digunakan untuk menetapkan masa tamat untuk kunci dalam cap waktu UNIX.

Kesimpulan

Secara ringkasnya, arahan Redis GETEX boleh digunakan untuk mendapatkan semula nilai rentetan yang disimpan pada kunci yang diberikan seperti yang dilakukan oleh arahan GET. Satu-satunya perbezaan dengan arahan GETEX ialah ia menyokong tetapan dan mengalih keluar masa tamat untuk kunci yang diberikan. Ia menyokong beberapa argumen pilihan untuk menentukan masa tamat dalam saat, milisaat dan UNIX-cap masa saat atau milisaat. Seperti yang dibincangkan, arahan itu menyediakan pilihan PERSIST untuk mengalih keluar TTL yang berkaitan untuk kunci yang diberikan. Secara keseluruhan, arahan GETEX beroperasi dengan kerumitan masa yang berterusan.