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

Apa yang dilakukan Redis saat kehabisan memori?

Jika Anda mengaktifkan fungsi memori virtual (EDIT:sekarang tidak digunakan lagi ), lalu Redis mulai menyimpan data yang "tidak terlalu sering digunakan" ke disk saat memori habis.

Jika memori virtual di Redis dinonaktifkan (default) dan maxmemory parameter diatur (default), Redis tidak akan menggunakan memori lebih dari maxmemory memungkinkan. Jika Anda mengubah maxmemory dimatikan, Redis akan mulai menggunakan memori virtual (yaitu swap), dan kinerjanya akan sangat menurun.

Versi Redis yang lebih baru memiliki berbagai kebijakan saat maxmemory tercapai:

  • volatile-lru - hapus kunci di antara yang memiliki set kedaluwarsa, coba hapus kunci yang tidak digunakan baru-baru ini.
  • volatile-ttl - hapus kunci di antara yang memiliki set kedaluwarsa, coba hapus kunci dengan sisa waktu yang singkat untuk hidup.
  • volatile-random - hapus kunci arandom di antara kunci yang memiliki set kedaluwarsa.
  • allkeys-lru - sepertivolatile-lru , tetapi akan menghapus semua jenis kunci, baik kunci normal maupun kunci dengan set kedaluwarsa.
  • allkeys-random -seperti volatile-random , tetapi akan menghapus semua jenis kunci, baik kunci normal maupun kunci dengan set kedaluwarsa.

Jika Anda memilih kebijakan yang hanya menghapus kunci dengan set EXPIRE, maka ketika Redis kehabisan memori, sepertinya program hanya membatalkan operasi malloc(). Artinya, jika Anda mencoba menyimpan lebih banyak data, operasi tulis akan gagal.

Beberapa tautan untuk info lebih lanjut:

  • http://antirez.com/post/redis-as-LRU-cache.html
  • http://eli.thegreenplace.net/2009/10/30/handling-out-of-memory-conditions-in-c/


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. php-redis - Apakah ada cara untuk menyimpan objek PHP di Redis tanpa membuat serial?

  2. Spring RedisConnectionFactory dengan transaksi tidak mengembalikan koneksi ke Pool dan kemudian memblokir saat habis

  3. Implementasi pub/sub di nodeJS

  4. Skrip Lua dan redis - cara menguji nilai None

  5. Redis database pada mesin dev dengan banyak proyek