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

Bagaimana cara mendefinisikan TTL untuk aliran redis?

Tidak ada cara langsung untuk menghapus entri lama berdasarkan TTL/usia. Anda dapat menggunakan kombinasi XTRIM/XDEL dengan perintah lain untuk memangkas aliran.

Mari kita lihat bagaimana kita dapat menggunakan XTRIM

Aliran XTRIM MAXLEN ~ SIZE

XTRIM memangkas aliran ke sejumlah item tertentu, mengeluarkan item lama (item dengan ID lebih rendah) jika diperlukan.

Anda membuat ukuran streaming setiap hari atau secara berkala berdasarkan kebijakan penghapusan Anda dan menyimpannya di suatu tempat menggunakan XLEN perintah

Jalankan tugas berkala yang akan memanggil XTRIM sebagai

XTRIM x-stream MAXLEN ~ (NEW_SIZE - PREVIOUS_SIZE)

Misalnya, kemarin ukuran streaming adalah 500 sekarang menjadi 600 maka kita perlu menghapus 500 entri agar kita bisa menjalankannya

XTRIM x-stream MAXLEN ~ 100

Anda dapat menggunakan kebijakan yang berbeda untuk penghapusan misalnya harian, mingguan, dua kali seminggu, dll.

ID aliran XDEL [ID...]

Menghapus entri yang ditentukan dari aliran, dan mengembalikan jumlah entri yang dihapus, yang mungkin berbeda dari jumlah ID yang diteruskan ke perintah jika ID tertentu tidak ada.

Jadi yang dapat Anda lakukan adalah setiap kali Layanan B menggunakan acara tersebut daripada layanan itu sendiri yang dapat menghapus entri streaming karena layanan B mengetahui ID streaming, tetapi ini tidak akan berfungsi segera setelah Anda mulai menggunakan grup konsumen. Jadi saya akan mengatakan gunakan Redis set atau Redis map untuk melacak id aliran yang diakui dan menjalankan pekerjaan pembersihan berkala untuk membersihkan aliran.

Misalnya

Layanan A mengirimkan item aliran dengan ID1 ke layanan B Layanan B mengakui item aliran setelah mengkonsumsi item di mapack_stream ={ ID1:true }, Anda dapat melacak data lain mis. menghitung dalam kasus kelompok konsumen.

Pekerjaan menyapu akan berjalan secara berkala seperti jam 1 pagi setiap hari yang membaca semua elemen ack_stream dan menyaring semua item yang perlu dihapus. Sekarang Anda dapat menghubungi XDEL perintah dalam batch dengan set id streaming.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis:Cara mengakses file log Redis

  2. Apa keuntungan menggunakan backend kustom sesi Gorilla?

  3. Hashing yang konsisten sebagai cara untuk menskalakan penulisan

  4. Kembalikan data redis dari budak ke master

  5. Apakah master selalu redis instance dengan prioritas terkecil?