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.