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

Menyimpan kunci dengan awalan yang kedaluwarsa dalam redis

Ini tidak bisa dilakukan secara langsung. Anda dapat menambahkan kedaluwarsa pada hset secara keseluruhan, tetapi tidak pada masing-masing bidang. Jika Anda ingin melakukan ini, Anda dapat memanggil r.expire('name', time) , di mana time adalah jumlah detik hingga kedaluwarsa.

Sebagai alternatif, Anda dapat menggunakan set bukannya hset :

for i in range(10):
    r.set('name:' + str(i), i, ex=time_to_expire_s)

Ini akan menghilangkan beberapa fungsi, karena (misalnya) Anda tidak akan memiliki cara yang baik untuk membuat daftar semua kunci yang dimulai dengan 'nama:', tetapi ini akan memungkinkan Anda mengatur kedaluwarsa untuk kunci secara independen.

Sebagai opsi kedua, Anda dapat mengatur kedaluwarsa dalam nilai hset . Ini membutuhkan logika sisi klien, dan Redis tidak akan melakukan penghapusan apa pun untuk Anda; tetapi Anda dapat melakukan sesuatu seperti:

for i in range(10):
    r.hset(
        'name',
        i,
        json.dumps({ 'value': i, 'expiration': time.time() + time_to_expire_s })
    )

Dan kemudian jika Anda pernah membaca nilai yang kedaluwarsanya sudah lewat, Anda menganggapnya sebagai cache miss. Ini tidak akan membantu Anda jika Anda mencoba untuk kedaluwarsa kunci untuk mengosongkan memori, tetapi jika tujuan Anda adalah agar kunci kedaluwarsa karena beberapa alasan kebenaran, ini mungkin berhasil untuk Anda.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mengimplementasikan Redis Cache dengan Django Rest Framework?

  2. Laravel 5.1 Session and Socket.IO + Redis - Mengirim Pemberitahuan ke Pengguna yang Masuk (Dikenal) dan Grup Pengguna

  3. Bagaimana saya bisa mendapatkan Principal pengguna yang saat ini diautentikasi dengan keamanan pegas dan Redis di aplikasi boot musim semi?

  4. Temukan kunci berdasarkan nilai

  5. Eksekusi/penjadwalan tertunda dengan Redis?