基本使用:127.0.0.1:6379> expire user 1000
(integer)
1127.0.0.1:6379>ttl user # 檢視剩餘超時時間
(integer)
996
超時重置
有些redis命令會清除key的超時時間,如set,del,getset和所有的*store命令。即修改redis的值而不是替換的化將不會修改key的超時時間。像incr、hset、lpush不會改變key的超時設定,也可以通過命令pexpire手動清除超時,將key變成持久的key。
重新命名key不會清除key的超時時間。
127.0.0.1:6379> set name hhok127.0.0.1:6379> expire name 30
(integer) 1
127.0.0.1:6379> ttl name
(integer) 27
127.0.0.1:6379> set name h1 ## set後會清除key的超時時間
ok127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379> expire name 20
(integer) 1
127.0.0.1:6379> getset name h2
"h1"
127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379>
修改命令不會重置超時時間
127.0.0.1:6379> lpush namelist hh(integer) 1
127.0.0.1:6379> expire namelist 20
(integer) 1
127.0.0.1:6379> ttl namelist
(integer) 18
127.0.0.1:6379> lpush namelist h2
(integer) 2
127.0.0.1:6379> ttl namelist
(integer) 3
redis的key如何過期
redis中key過期有兩種,主動過期和被動過期。
被動過期:當訪問乙個key時被發現過期。
主動過期:redis會定期的從自己維護的有expire屬性的key集中隨機測試一些鍵的過期時間,過期的鍵會被刪除。
具體機制為:
從具有過期屬性的key集中隨機抽取20個key。
刪除所有過期的key。
如果過期的key佔比超過25%,重複第一步。
在副本和aof檔案中如何處理過期
redis主節點在key過期時,會生成乙個del命令儲存到aof檔案或傳送到從節點,即從節點自己不會主動過期key,而是接受主伺服器的del,但是從節點仍然儲存著key的過期資訊,以便在主節點掛掉時,從節點在被選為主節點時有能力刪除過期的鍵。
Redis expire 相關資訊
1.expire的時間複雜度時o 1 2.當乙個key設定乙個超期時間後,超期時間只能通過刪除命令或者重寫命令清除 包括 del,set,getset 和所有的 store 命令 修改命令不能清除超期時間。修改命令包括使用incr修改值,通過lpush在list中插入乙個新值,通過hset修改對映表...
Socket超時操作
1.socket超時,伺服器端程式 coding cp936 設定超時時間 測試端程式時間設定分別大於和小於5,大於5時,使用異常來捕獲socket.timeout import socket host port 50000 s socket.socket socket.af inet,socket...
c 報「操作超時」 !!!
net 客戶端 呼叫iis 服務端 出現503後,就報操作超時錯誤 問題描述 服務端環境 iis客戶端環境 windows10 iis net 呼叫時出現如下錯誤 system.net.webexception 遠端伺服器返回錯誤 503 伺服器不可用。在 system.net.httpwebreq...