nosql - redis expire 疑问
给我你的怀抱
给我你的怀抱 2017-04-27 09:02:48
0
2
715

使用 redis-cli 设置 mykey, 并且设置其过期时间为 40s, 然后, 我再重新设置 mykey, 这时 mykey 的值会被重置, 我不明白的是为啥 过期时间也同时重置了?如果我仅仅想重置值, 不更改过期时间有没办法?

源码:

SET mykey "Hello"

EXPIRE mykey 40

EXISTS mykey

SET mykey "Hello"

EXISTS mykey

EXISTS mykey
给我你的怀抱
给我你的怀抱

membalas semua(2)
大家讲道理

Pergi ke laman web rasmi dan baca penerangan tamat tempoh:
Ini penjelasannya:

The timeout will only be cleared by commands that delete or overwrite the contents of the key, including DEL, SET, GETSET and all the *STORE commands. This means that all the operations that conceptually alter the value stored at the key without replacing it with a new one will leave the timeout untouched. For instance, incrementing the value of a key with INCR, pushing a new value into a list with LPUSH, or altering the field value of a hash with HSET are all operations that will leave the timeout untouched.

Jika anda menggunakan DEL, SET, GETSET, nilai yang disimpan dalam kunci akan digantikan dengan yang baru, dan arahan itu juga akan mengosongkan tamat masa jika anda menambah data pada struktur senarai atau menukar medan hset data, tamat masa tidak akan dikosongkan ; jika anda ingin menulis ganti nilai melalui set, anda mesti menetapkan semula tamat tempoh.

Klik pautan

刘奇

EXPIREAT dan EXPIRE akan menetapkan semula masa tamat tempoh semasa mengemas kini nilai.

Dapatkan masa tamat tempoh kunci melalui ttl sebelum ditetapkan
Selepas ditetapkan, tetapkan nilai ttl kepada masa tamat tempoh

192.168.1.9:6379> set key value
OK
192.168.1.9:6379> expire key 100
(integer) 1
192.168.1.9:6379> ttl key
(integer) 98
192.168.1.9:6379> set key value1
OK
192.168.1.9:6379> expire key 98
(integer) 1
192.168.1.9:6379> ttl key
(integer) 96
192.168.1.9:6379>

Tetapi akan ada ralat dengan cara ini saya tidak tahu sama ada orang lain mempunyai kaedah yang lebih baik.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan