Redis資料結構-string
阿新 • • 發佈:2018-11-14
Redis的5種資料結構:string、list、hash、set和zset
基本操作
1、string表示的是一個可變的位元組陣列;
2、Redis的字串時動態字串,是可以修改的;
3、內部結構實現上類似與Java的ArrayList,用預分配冗餘空間的方式來減少記憶體的頻繁分配;
4、字串長度小於1M時,擴容都是加倍現有的空間;
5、長度大於1M時,擴容時指揮多擴1M的空間;
6、字串最大長度為512M;
7、字串沒有提供子串插入和子串刪除方法;
# 初始化字串(set 鍵 值) localhost:0>set muscleape com.muscleape.www "OK" # 獲取字串內容(get 鍵) localhost:0>get muscleape "com.muscleape.www" # 獲取字串的長度(strlen 鍵) localhost:0>strlen muscleape "17" # 獲取子串(getrange 鍵 開始下標 結束下標) localhost:0>getrange muscleape 4 12 "muscleape" # 覆蓋子串(setrange 鍵 開始位置 替換串) localhost:0>setrange muscleape 4 wzqwzqwzq "17" localhost:0>get muscleape "com.wzqwzqwzq.www" # 追加子串(append 鍵 子串) localhost:0>append muscleape .wzq "21" localhost:0>get muscleape "com.wzqwzqwzq.www.wzq"
計數器
1、如果字串的內容是一個整數,可以將字串當做計數器來使用;
# 初始化 localhost:0>set muscleape 59 "OK" # 獲取值 localhost:0>get muscleape "59" # 增加(incrby 鍵 增加數值) localhost:0>incrby muscleape 200 "259" # 獲取值 localhost:0>get muscleape "259" # 減少(decrby 鍵 減少數值) localhost:0>decrby muscleape 200 "59" # 獲取值 localhost:0>get muscleape "59" # 增加1(incr 鍵)=> 等價於 => incrby 鍵 1 localhost:0>incr muscleape "60" # 減小1(decr 鍵)=> 等價於 => decrby 鍵 1 localhost:0>decr muscleape "59"
2、計數器是有範圍的,不能超過Long.Max,不能低於Long.MIN
localhost:0>set muscleape 9223372036854775807 "OK" localhost:0>incr muscleape "ERR increment or decrement would overflow" # ##################################### localhost:0>set muscleape -9223372036854775808 "OK" localhost:0>decr muscleape "ERR increment or decrement would overflow"
刪除和過期
字串可以使用del指令進行主動刪除,可以使用expire指令設定過期時間,到點會自動刪除,這屬於被動刪除。可以使用ttl指令獲取字串的壽命;
# 設定過期時間(expire 鍵 有效秒數);1表示設定成功,0表示變數ireader不存在
localhost:0>expire muscleape 60
"1"
# 查詢壽命(ttl 鍵); 還有55秒的壽命,返回-2表示變數不存在,-1表示沒有設定過期時間
localhost:0>ttl muscleape
"55"
# 刪除(del 鍵)刪除成功返回1
localhost:0>del muscleape
"1"
localhost:0>get muscleape
null