Redis EXPIRE Hash Key

Redis Expire Hash Key



Hashes Redis ialah jenis jenis data istimewa yang lebih serupa dengan objek JSON, Java HashMap atau kamus Python. Tambahan pula, ia ialah koleksi pasangan nilai medan yang boleh digunakan untuk memodelkan objek domain. Struktur data cincang Redis sangat cekap memori di mana setiap kunci cincang boleh menyimpan sehingga empat bilion pasangan nilai medan. Paling penting, operasi cincang asas seperti HSET, HGET, HMGET, dll. beroperasi pada kerumitan masa yang berterusan.


Kekunci cincang redis mempunyai masa yang tidak terhingga untuk hidup (TTL) yang bermaksud bahawa ia berterusan ia dipadamkan secara eksplisit menggunakan arahan seperti DEL. Dalam artikel ini, kami akan menumpukan pada menetapkan TTL untuk cincangan Redis menggunakan perintah EXPIRE.







Redis EXPIRE Command

Arahan EXPIRE digunakan untuk menetapkan tamat masa pada kunci tertentu bagi cincangan Redis, set, senarai, dll. Kunci Redis dipadamkan daripada pangkalan data jika tamat masa tamat tempoh. Paling penting, tamat masa tidak jelas sehingga kandungan kunci dipadamkan atau ditulis ganti. Mengubah nilai yang dikaitkan dengan kunci tidak menjejaskan masa tamat tempoh.



Sintaks perintah EXPIRE adalah seperti berikut:



EXPIRE kunci tamat tempoh_masa_saat [ NX | GX | GT | LT ]


kunci: Kunci Hash, Senarai atau Set yang anda perlukan untuk menetapkan tamat masa.





tamat_masa_saat: Nilai tamat masa dalam saat.

Beberapa argumen pilihan diterima oleh perintah EXPIRE.



NX: Nilai tamat masa ditetapkan hanya jika kunci yang ditentukan belum tamat tempoh.

XX: Apabila kunci yang ditentukan mempunyai nilai tamat masa sedia ada, tamat tempoh baharu ditetapkan.

GT: Jika nilai tamat masa baharu lebih besar daripada nilai sedia ada, tamat tempoh baharu ditetapkan.

LT: Nilai tamat masa baharu ditetapkan jika nilai sedia ada lebih besar daripada nilai baharu.

Paling penting, arahan EXPIRE beroperasi pada kerumitan masa yang berterusan. Integer 1 dikembalikan jika pelaksanaan arahan berjaya. Jika operasi gagal disebabkan hujah yang salah atau kekunci tidak wujud, 0 dikembalikan.

Kami akan menggunakan perintah EXPIRE pada cincang untuk menetapkan masa tamat seperti yang ditunjukkan dalam bahagian berikut:

Tamat Tempoh Hash Redis Menggunakan Perintah EXPIRE

Mari kita anggap bahawa maklumat sesi bagi setiap pengguna disimpan dalam cincang Redis session:id:1000:user:10. Kita boleh menggunakan arahan HMSET untuk mencipta cincang Redis dengan berbilang pasangan nilai medan seperti berikut:

sesi hmset:id: 1000 :pengguna: 10 nama pengguna 'jae' biskut 'ya' kata laluan '389Ysu2'


Mari kita periksa cincang yang dibuat menggunakan arahan HGETALL.

sesi hgetall:id: 1000 :pengguna: 10



Di samping itu, sesi tamat tempoh selepas 10 saat jika pengguna melahu selama lebih daripada 60 saat. Tamat tempoh sesi dicapai dengan menetapkan masa tamat untuk cincang yang menyimpan maklumat sesi.

Kita boleh menggunakan perintah EXPIRE seperti berikut:

tamat tempoh sesi:id: 1000 :pengguna: 10 10


Seperti yang dinyatakan, nilai tamat masa ditetapkan kepada 10 saat.


Seperti yang dijangkakan, nilai pulangan ialah 1 yang bermaksud bahawa TTL berjaya ditetapkan untuk cincang. Mari semak masa yang tinggal sebelum kunci cincang dialih keluar daripada kedai Redis. Perintah TTL boleh digunakan seperti berikut:

sesi ttl:id: 1000 :pengguna: 10



Seperti yang ditunjukkan dalam output, tinggal tiga saat sebelum mengalih keluar cincang secara automatik. Selepas 10 saat, output arahan TTL adalah seperti berikut:


Apabila balasan integer -2 ditunjukkan, cincangan tidak wujud.

Tetapkan Tamat Masa Berdasarkan Kewujudan Masa Tamat

Perintah EXPIRE menerima argumen NX dan XX untuk menetapkan tamat masa baharu berdasarkan kewujudan tamat tempoh untuk cincang yang ditentukan. Mari buat cincangan baharu dengan noTimeOut kunci .

hmset nama noTimeOut 'ujian'


Mari cuba tetapkan tamat tempoh baharu pada cincang sebelumnya. Selain itu, kami menyampaikan hujah XX kepada perintah EXPIRE juga.

tamat tempoh tiadaTimeOut lima belas XX


Oleh kerana kami menentukan XX pilihan dalam arahan, masa tamat tempoh tidak akan ditetapkan. Pilihan XX tidak membenarkan anda menetapkan masa tamat tempoh baharu jika tiada tamat masa sedia ada dikaitkan dengan kunci cincang yang ditentukan.


Jika kita menggunakan NX pilihan, nilai tamat masa ditetapkan kepada 15.

tamat tempoh tiadaTimeOut lima belas NX



Perintah EXPIRE mengembalikan balasan integer 1 yang bermaksud tamat masa ditetapkan dengan betul.

Tetapkan Tamat Masa Berdasarkan Nilai Tamat Masa Sedia Ada

Pilihan GT dan LT boleh digunakan untuk menetapkan masa tamat cincang berdasarkan tempoh tamat masa sedia ada.

Mari buat cincangan baharu yang dipanggil hashWithTimeout.

hmset hashWithTimeout field1 nilai1


Seterusnya, kami menetapkan masa tamat 200 saat untuk cincang.

tamat tempoh hashWithTimeout 200


Mari cuba tetapkan tamat masa baharu 100 saat untuk cincang bersama-sama dengan pilihan GT seperti berikut:

tamat tempoh hashWithTimeout 100 GT


Memandangkan pilihan GT telah ditentukan, arahan EXPIRE akan menyemak sama ada nilai tamat masa baharu lebih besar daripada yang sedia ada dan menetapkan masa tamat tempoh baharu. Dalam contoh ini, tamat masa baharu tidak lebih besar daripada tamat masa sedia ada. Oleh itu, arahan tidak akan menetapkan masa tamat tempoh baharu dan 0 akan dikembalikan.


Mari gunakan pilihan LT dan bukannya GT. Memandangkan masa tamat tempoh baharu adalah lebih rendah daripada masa semasa, arahan berikut harus berjaya menetapkan tamat masa baharu.

tamat tempoh hashWithTimeout 100 LT


Kesimpulan

Ringkasnya, arahan Redis EXPIRE digunakan untuk menetapkan nilai TTL untuk kunci yang diberikan. Secara lalai, kunci cincang Redis tidak dikaitkan dengan sebarang tamat masa yang dipanggil tidak meruap. Seperti yang dibincangkan, arahan EXPIRE digunakan untuk menetapkan nilai tamat masa pada cincang Redis. Biasanya, cincang dipadamkan daripada stor data Redis selepas jumlah masa yang ditentukan sebagai nilai tamat masa. Seperti yang ditunjukkan dalam contoh, perintah EXPIRE menerima beberapa argumen pilihan seperti XX, NX, GT dan LT untuk menetapkan tamat tempoh cincang berdasarkan syarat.