Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menetapkan tempoh sah kunci dalam redis

Bagaimana untuk menetapkan tempoh sah kunci dalam redis

WBOY
WBOYke hadapan
2023-05-28 19:29:483937semak imbas

Redis menetapkan tempoh sah kunci

Arahan kunci

Tetapkan masa tamat tempoh kunci.

Soal semua kunci semasa

Bagaimana untuk menetapkan tempoh sah kunci dalam redis

  • expire key second: Tetapkan masa tamat tempoh kunci

Bagaimana untuk menetapkan tempoh sah kunci dalam redis

Jika kekunci ttl dilaksanakan dan ia memaparkan -2, ini bermakna nilai yang diubah tidak wujud dalam cache

Bagaimana untuk menetapkan tempoh sah kunci dalam redis

Jika ia memaparkan -1, ia bermakna ia berterusan (tidak akan tamat tempoh)

Bagaimana untuk menetapkan tempoh sah kunci dalam redis

Jika masa tamat tempoh ditetapkan, masa tamat tempoh yang tinggal akan dipaparkan

Bagaimana untuk menetapkan tempoh sah kunci dalam redis

Fahami sepenuhnya isu tempoh sah redis

TAMAT TEMPOH detik penting

Versi permulaan: 1.0.0

Kerumitan masa: O(1)

Nilai Pulangan: 1 jika masa tamat tempoh berjaya ditetapkan 0 jika kunci tidak wujud atau masa tamat tempoh tidak boleh ditetapkan.

Tetapkan masa hidup untuk kunci yang diberikan Apabila kunci tamat tempoh (masa hidup ialah 0), ia akan dipadamkan secara automatik.

1. Masa tamat tempoh mengikut kunci dan tiada kaitan dengan nilai

Dalam Redis, kunci dengan masa tamat dipanggil "kunci meruap". Masa tamat tempoh boleh dialih keluar dengan memadamkan keseluruhan kunci menggunakan arahan DEL, atau ditimpa oleh arahan SET dan GETSET Ini bermakna jika arahan hanya mengubah nilai kunci dengan masa tamat tempoh dan bukannya menggunakan Jika anda menggantikannya dengan. nilai kunci baharu, masa tamat tempoh tidak akan diubah. Sebagai contoh, melaksanakan perintah INCR pada kunci, melaksanakan perintah LPUSH pada senarai, atau melaksanakan perintah HSET pada jadual cincang tidak akan mengubah suai masa tamat tempoh kunci itu sendiri.

2. Tetapkan tempoh sah kekal

Gunakan perintah PERSIST untuk mengosongkan tamat masa dan menjadikannya kunci kekal.

3. Kesan arahan nama semula pada tempoh sah

Jika kunci diubah suai oleh arahan RENAME, tamat masa yang berkaitan akan dipindahkan ke kunci baharu.

Jika kunci diubah suai oleh perintah RENAME, sebagai contoh, Key_A pada asalnya wujud, kemudian perintah RENAME Key_B Key_A dipanggil Pada masa ini, tidak kira sama ada Key_A asal adalah kekal atau ditetapkan kepada tamat masa. ia akan ditimpa oleh status kesahihan Key_B.

4. Muat semula masa tamat tempoh

Melaksanakan operasi EXPIRE pada kunci yang sudah mempunyai masa tamat tempoh akan mengemas kini masa tamat tempohnya.

5. Ketepatan tamat tempoh

Dalam Redis 2.4 dan versi sebelumnya, masa tamat tempoh mungkin tidak begitu tepat, dengan ralat 0-1 saat.

Bermula dari Redis 2.6, ralat masa tamat tempoh dikurangkan kepada 0-1 milisaat.

6. Kesan faktor luaran pada masa tamat tempoh

Sejak Redis versi 2.6, masa tamat tempoh Keys disimpan dalam milisaat menggunakan cap waktu Unix. Ini bermakna masa terus berlalu walaupun contoh Redis tidak tersedia.

Untuk mengendalikan kerja tertunggak dengan baik, komputer mesti menggunakan masa yang stabil. Fenomena menarik berlaku apabila anda menyegerakkan fail RDB antara dua komputer yang masanya tidak disegerakkan: semua kekunci tamat tempoh semasa dimuatkan.

Malah contoh yang sedang berjalan akan menyemak jam komputer Contohnya, jika anda menetapkan tempoh sah kunci kepada 1000 saat, dan kemudian menetapkan masa komputer anda kepada 2000 saat pada masa hadapan, kunci itu akan tamat tempoh serta-merta. , dan Tidak selepas menunggu 1000 saat.

7. Cara Redis menghapuskan kunci tamat tempoh

Terdapat dua cara untuk kunci Redis tamat tempoh: pasif dan aktif.

Apabila sesetengah pelanggan cuba mengaksesnya, kunci akan ditemui dan tamat tempoh secara aktif.

Sudah tentu, ini tidak mencukupi, kerana beberapa kunci yang telah tamat tempoh tidak akan dapat diakses. Untuk memastikan bahawa kunci tamat tempoh dalam masa yang telah ditetapkan, ujian rawak harus dilakukan dengan kerap dan masa tamat tempoh harus ditetapkan. Semua kunci tamat tempoh ini akan dipadamkan.

Khususnya, apa yang Redis lakukan 10 kali sesaat:

1).

2). Padamkan semua kunci tamat tempoh.

3). Jika lebih daripada 25% kunci tamat tempoh, ulangi langkah 1.

Ini adalah algoritma kebarangkalian yang remeh. Andaian asasnya ialah sampel kami ialah kawalan kunci ini, dan kami teruskan mengulangi pengesanan tamat tempoh sehingga peratusan kunci tamat tempoh jatuh di bawah 25%, yang bermaksud bahawa pada bila-bila masa tertentu, paling banyak 1/4 daripada kunci tamat tempoh akan dikosongkan.

8 Cara mengendalikan tamat tempoh semasa menyalin fail AOF

Untuk mendapatkan tingkah laku yang betul tanpa mengorbankan konsistensi, apabila kunci tamat tempoh, DEL akan disintesis bersama-sama dengan teks AOF kepada semua yang dilampirkan daripada hamba. Pendekatan ini dipusatkan dalam contoh induk dan menghapuskan kemungkinan ralat konsistensi.

Walau bagaimanapun, apabila hamba disambungkan kepada tuan, kunci tidak akan luput secara bebas (akan menunggu sehingga tuan melaksanakan arahan DEL), ia akan tetap wujud dalam set data, jadi apabila hamba dipilih sebagai tuan, kunci akan dihapuskan secara bebas Laksanakan dan kemudian menjadi tuan.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan tempoh sah kunci dalam redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam