redis 連接需要host port passwod
Hash:key-fields-value(做緩存)相當於一個key對於一個map,map中還有key-value
List:有順序可重復(處理不完時,排隊相關處理)
Set:元素無順序,不能重復(去重)
SortedSet(zset):有順序,不能重復 (服務器消耗最高,要排序還要去重,盡量少用,)
查看所有鍵 keys *
獲取鍵總數:dbsize
檢查鍵是否存在 exists
如果存在返回1,不存在返回0
刪除鍵 del key [key ……]
正常情況下返回結果為刪除鍵的個數,假如刪除了一個不存在的鍵,就返回0
type key 返回鍵的數據結構類型,如果鍵不存在,就返回none
Redis對存儲值的過期處理實際上是針對該值的鍵(key)處理的,時間的設置也是設置key的有效時間。
注:
1、除了字符串自己獨有設置過期時間的方法外,其他方法都需要依靠expire方法來設置時間
2、如果沒有設置時間,那緩存就是永不過期
3、如果設置了過期時間,之后又想讓緩存永不過期,使用persist key
設置過期時間
1 EXPIRE key seconds //將key的生存時間設置為ttl秒
2 PEXPIRE key milliseconds //將key的生成時間設置為ttl毫秒
3 EXPIREAT key timestamp //將key的過期時間設置為timestamp所代表的的秒數的時間戳
4 PEXPIREAT key milliseconds-timestamp //將key的過期時間設置為timestamp所代表的的毫秒數的時間戳
persist key:清除key的過期時間。Key持久化
備注:timestamp為unix時間戳(例如:timestamp=1499788800 表示將在2017.07.12過期)
1和2兩種方式是設置一個過期的時間段,比如處理驗證碼最常用的策略,設置三分鍾或五分鍾后失效,秒存儲到Redis中。
3和4兩種方式是指定一個過期的時間 ,比如優惠券的過期時間是某年某月某日,只是單位不一樣。
如果成功地為該鍵設置了超時時間,返回 1
如果鍵不存在或無法設置超時時間,返回 0
查詢過期時間
pttl key_name 返回值單位s
ttl key_name 返回值單位ms
redis版本>= 2.6.0
當key不存在時返回-2;
當key 存在但沒有設置剩余生存時間時,返回-1;
否則,以毫秒為單位,返回 key 的剩余生存時間
字符串獨有的方式操作過期時間
setex(String key, int seconds, String value)--字符串獨有的方式
對字符串特殊處理的方式為SETEX命令,SETEX命令為指定的 key 設置值及其過期時間。
如果 key 已經存在, SETEX 命令將會替換舊的值。
返回值 設置成功時返回 OK