2016-11-25 72 views
0

我正在通過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" 

回答

0

你有拼寫錯誤:你設置了一個名爲loggedIn關鍵,而試圖讓logggedIn

的TTL