cari

Rumah  >  Soal Jawab  >  teks badan

Redis如何回收过期数据?

服务器经常会用到redis作为缓存,有很多数据都是临时set以下,可能用过之后很久都不会再用到了(比如暂存session)那么就有几个问题了

  1. redis会自己回收清理不用的数据吗?
  2. 如果能,如何配置?
  3. 如果不能,如何防止数据累加后大量占用存储空间的问题?
大家讲道理大家讲道理2798 hari yang lalu716

membalas semua(2)saya akan balas

  • 高洛峰

    高洛峰2017-04-21 11:17:38

    Redis menyimpan semua data secara kekal dalam ingatan secara lalai Apabila anda perlu meneruskan data (simpan ke cakera) atau memadam kekunci tamat tempoh secara automatik, anda perlu menggunakan arahan atau konfigurasi tambahan untuk melengkapkan; Jika anda perlu menggunakan redis untuk melengkapkan keperluan perniagaan anda (seperti cache), maka anda mesti mengikut peraturan reka bentuk redis;

    Mengenai soalan yang anda nyatakan kemudian:

    Walaupun saya menambah tamat tempoh pada setiap item mysophobic saya, bolehkah anda memastikan bahawa orang lain dalam pembangunan berbilang pemain juga menambah tamat tempoh? Jika seseorang tidak memilikinya, maka data ini akan sentiasa disimpan

    Ini yang saya fikirkan: Biasanya logik perniagaan dirangkumkan ke dalam antara muka API Contohnya, antara muka sesi untuk senario log masuk mungkin: void addLoginSession(data rentetan, int tamat masa), dan kemudian orang lain tidak peduli tentang apa. digunakan di sini sama sekali apabila mereka memanggilnya sama ada redis atau memcache, semua butiran mesti dicerna hanya oleh pereka API

    Dengan cara ini, bagaimana redis membersihkan kunci yang telah tamat tempoh dalam pangkalan data? Ia terbahagi kepada dua jenis:

    1. Pemadaman malas: Apabila anda mengendalikan kunci (seperti dapatkan nama), redis akan menyemak sama ada kunci itu dikaitkan dengan tamat masa. Jika ya, semak sama ada ia telah tamat masa akan kembali kosong, jika tidak ia akan mengembalikan nilai yang sepadan;
    2. Pemadaman berjadual
    3. : Terdapat peristiwa masa dalam redis, yang akan membersihkan kunci tamat tempoh dalam pangkalan data (redis akan mengehadkan masa yang diduduki oleh operasi ini untuk mengelakkan menyekat permintaan pelanggan)

      balas
      0
  • 天蓬老师

    天蓬老师2017-04-21 11:17:38

    Anda boleh menggunakan perintah tamat tempoh untuk menetapkan masa tamat tempoh. Terdapat beberapa arahan lain yang juga boleh digunakan untuk menetapkan masa tamat tempoh Sila rujuk dokumentasi untuk butiran.

    balas
    0
  • Batalbalas