我正在通過redis上的tutorial,遇到一個沒有意義的命令。從我的下面的代碼中,我得到一個確實仍然存在的密鑰的-2
生存時間返回值。我的代碼不應該返回-1
永不過期?初學者Redis命令
的教程說:
Redis can be told that a key should only exist for a certain length of time. This is accomplished with the EXPIRE and TTL commands.
SET resource:lock "Redis Demo" EXPIRE resource:lock 120
This causes the key resource:lock to be deleted in 120 seconds. You can test how long a key will exist with the TTL command. It returns the number of seconds until it will be deleted.
TTL resource:lock => 113 // after 113s TTL resource:lock => -2
The -2 for the TTL of the key means that the key does not exist (anymore). A -1 for the TTL of the key means that it will never expire. Note that if you SET a key, its TTL will be reset.
SET resource:lock "Redis Demo 1"
EXPIRE resource:lock 120
TTL resource:lock => 119
SET resource:lock "Redis Demo 2"
TTL resource:lock => -1
這是我鍵入到交互終端的代碼。我的假設是,第三行應該讓我回到-1,永不過期。我從來沒有設定過期時間,所以我不知道爲什麼我會回到-2。
> SET loggedIn "True"
OK
> TTL logggedIn
(integer) -2
> GET loggedIn
"True"