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

kunci redis saya tidak kedaluwarsa

Karena Anda melakukan '...' sulit untuk mengatakan dengan pasti, tetapi menurut saya Anda menyetel mykey selama bagian itu, yang secara efektif akan menghapus kedaluwarsa.

Dari manual EXPIRE

Batas waktu dihapus hanya ketika kunci dihapus menggunakan perintah DEL atau ditimpa menggunakan perintah SET atau GETSET

Juga, mengenai -1 balasan dari TTL

Nilai kembali

Balasan bilangan bulat:TTL dalam detik atau -1 saat kunci tidak ada atau tidak memiliki batas waktu.

EDIT:Perhatikan bahwa perilaku ini berubah di Redis 2.8

Dimulai dengan Redis 2.8, nilai kembalian jika terjadi kesalahan berubah:
Perintah mengembalikan -2 jika kunci tidak ada.
Perintah mengembalikan -1 jika kunci ada tetapi tidak memiliki kedaluwarsa terkait.

Dengan kata lain, jika kunci Anda ada, itu akan tampak persisten, yaitu tidak memiliki set kedaluwarsa.

EDIT:Sepertinya saya dapat mereproduksi ini jika saya membuat kunci pada server budak REDIS, budak tidak akan menghapus kunci tanpa input master, karena biasanya Anda tidak akan membuat kunci secara lokal pada budak. Apakah ini yang terjadi di sini?

Namun sementara budak yang terhubung ke master tidak akan kedaluwarsa kunci secara independen (tetapi akan menunggu DEL datang dari master), mereka masih akan mengambil status penuh dari kedaluwarsa yang ada dalam kumpulan data, jadi ketika seorang budak dipilih untuk master itu akan dapat kedaluwarsa kunci secara mandiri, sepenuhnya bertindak sebagai master.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Haruskah saya membuat klien Redis baru untuk setiap koneksi?

  2. Pemberitahuan kedaluwarsa kunci di redis python

  3. Contoh C# StackExchange.Redis sederhana

  4. Bagaimana cara melakukan Persistence Store di Redis?

  5. Boot musim semi + redis