Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Bagaimana cara redis kedaluwarsa kunci?

Singkatnya - untuk setiap objek redis, ada waktu kedaluwarsa. Kecuali Anda mengatur objek untuk kedaluwarsa, waktu itu "tidak pernah".

Sekarang, mekanisme kedaluwarsanya sendiri semi-malas. Kedaluwarsa yang lambat berarti Anda tidak benar-benar kedaluwarsa objek sampai dibaca. Saat membaca suatu objek, kami memeriksa stempel waktu kedaluwarsanya, dan jika sudah lewat, kami tidak mengembalikan apa pun, dan menghapus objek saat kami melakukannya. Tapi masalahnya adalah jika kunci tidak pernah disentuh, itu hanya menghabiskan memori tanpa alasan.

Jadi Redis menambahkan lapisan kedua kedaluwarsa aktif acak. Itu hanya membaca kunci acak sepanjang waktu, dan ketika kunci kedaluwarsa disentuh, itu dihapus berdasarkan mekanisme malas. Ini tidak memengaruhi perilaku kedaluwarsa, itu hanya menambahkan "pengumpulan sampah" dari kunci kedaluwarsa.

Tentu saja implementasi yang sebenarnya lebih rumit dari ini, tetapi ini adalah ide utamanya.

Anda dapat membaca lebih lanjut di sini:http://redis.io/commands/expire

Dan kode sumber untuk siklus kedaluwarsa aktif dapat ditemukan di sini:https://github.com/antirez/redis/blob/a92921da135e38eedd89138e15fe9fd1ffdd9b48/src/expire.c#L98



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis, bagaimana cara meningkatkan semua skor zset dengan ZINCRBY?

  2. Saga MassTransit dengan ketekunan Redis memberi Metode Accpet tidak memiliki pengecualian implementasi

  3. Apakah Redis hanya mengizinkan representasi string tetapi bukan nilai numerik?

  4. Menggunakan redis sebagai cache untuk database mysql

  5. Menghentikan interaksi Redis dalam javascript menggunakan Sinon