redis 作為 key-value 儲存,常常被當做nosql使用。key-value 儲存的本質就是,通過key能夠保持value的值。如果能夠唯一確認key,能夠稍後取出value的值。set就是用來儲存值的。
set server:name "weiyw"
redis會永久儲存我們的資料。所以我們可以稍後向redis詢問「我們在key為server:name存的值是什麼?」而,redis將會給我返回 「weiyw」
get server:name
127.0.0.1:6379 > set server:name "weiyw"
ok127.0.0.1:6379 > get server:name
"weiyw"
del 是通過乙個已知key 來刪除 value.
incr 是用來自自增長value.
127.0.0.1:6379 > set connections 10
ok127.0.0.1:6379 > incr connections
(integer) 11
127.0.0.1:6379 > incr connections
(integer) 12
127.0.0.1:6379 > del connections
(integer) 1
127.0.0.1:6379> get connections
(nil)
127.0.0.1:6379 > incr connections
(integer) 1
通過上面**執行結果可以發現,當del後,嘗試獲取connections的值的時候,會發現為nil,也就是不存在的意思,但是當呼叫incr的時候,可以自增長到1。
這說明incr發現key對應的值不存在的時候,會給其value初始化成0。然後再自增長。
redis 可以設定乙個key的生命週期,這個時間的設定可以通過 expire完成。
set resource:lock "redis demo"
expire resource:lock 120
其中,key為resource:lock的物件將會在 120 秒 後被刪除。當然我們可以用ttl命令來檢視key還可以生存多久
ttl resource:lock
該命令會返回 resource:lock 的生命週期。如果返回 -2 則說明當前key不存在。返回 -1 則說明當前key永遠不會過期。
127.0.0.1:6379> set resource:lock "wei_ya_wen"
ok127.0.0.1:6379> expire resource:lock 60
(integer) 1
127.0.0.1:6379> get resource:lock
"wei_ya_wen"
127.0.0.1:6379> ttl resource:lock
(integer) 41
127.0.0.1:6379> ttl resource:lock
(integer) 37
127.0.0.1:6379> ttl resource:lock
(integer) 37
127.0.0.1:6379> ttl resource:lock
(integer) 35
127.0.0.1:6379> ttl resource:lock
(integer) 14
127.0.0.1:6379> ttl resource:lock
(integer) 1
127.0.0.1:6379> ttl resource:lock
(integer) -2
127.0.0.1:6379> get resource:lock
(nil)
上面的操作設定了乙個 key 為 resource:lock,設定了生命週期為 60 秒。ttl命令可以看出在不同時間段,key的存活時間。當超過60s後,ttl返回-2,說明當前值不存在。為驗證準確性,再呼叫get,發現確實不存在。返回nil
redis 也支援集中比較複雜的資料型別。首當其衝的就是list.list可以理解為是一系列順序排列的值。在redis中,我們可以講key當做乙個list來處理。
rpush:將new value 直接放到list末端(r我個人覺得可以理解為right ,也就是右端的意思)
127.0.0.1:6379> rpush friends "wei"
(integer) 1
127.0.0.1:6379> rpush friends "ya"
(integer) 2
127.0.0.1:6379> rpush friends "wen"
(integer) 3
其中的數字表示list的長度。
lpush: 將 new value 放置到list的最前端
127.0.0.1:6379> lpush friends "first"
(integer) 4
lrange:可以理解為擷取 list的子集合,需要兩個引數。引數1:起始位置下標(從0開始計算),引數2 結束位置下標(當設定為-1時,表示結束位置為當前list的最末端)。
127.0.0.1:6379> lrange friends 0 -1
1) "first"
2) "wei"
3) "ya"
4) "wen"
127.0.0.1:6379> lange friends 0 1
(error) err unknown command 'lange'
127.0.0.1:6379> lrange friends 0 1
1) "first"
2) "wei"
127.0.0.1:6379> lrange friends 1 2
1) "wei"
2) "ya"
上面例項分別查詢了
lrange friends 0 -1 ====》獲取從 第1個位置到最後乙個位置的集合
lrange friends 0 1 ====》獲取從第1個位置到第二個位置的集合
lrange friends 1 2 ====》 獲取從第2個位置到第三個位置的集合
llen : 返回list的當前長度
llen friends
(integer) 4
lpop : 類似出佇列。刪除list的第乙個元素,並且返回。
127.0.0.1:6379> lpop friends
"first"
rpop: 刪除list的最後乙個元素,並且返回。
127.0.0.1:6379> rpop friends
"wen"
redis 還支援set型別。set 和 list的處理類似,但是除了每個元素只能出現一次
sadd 新增 value 到當前的 set 中
127.0.0.1:6379>
127.0.0.1:6379> sadd superpowers "wei"
(integer) 1
127.0.0.1:6379> sadd superpowers "ya"
(integer) 1
127.0.0.1:6379> sadd superpowers "wen"
(integer) 1
127.0.0.1:6379> sadd superpowers "wen"
例子中,當我兩次新增 "wen"的時候,第二次新增沒有成功,返回了 0
srem 通過給定的value,從set中刪除該值
127.0.0.1:6379> srem superpowers "wen"
(integer) 1
127.0.0.1:6379> srem superpowers "wen"
(integer) 0
返回的是受影響的數量
sismember 通過給定value,判斷該value是否存在該set中(有點類似jdk 中的contain() 方法)
127.0.0.1:6379> sismember superpowers "ya"
(integer) 1
127.0.0.1:6379> sismember superpowers "wen"
(integer) 0
由於 「wen」 在剛剛做刪除測試的時候,已經刪除了。所以返回0.
smembers 返回當前set的值的集合
Pytorch 快速入門(一)
pytorch是facebook 的 ai 研究團隊發布了乙個基於 python的科學計算包,旨在服務兩類場合 乙個提供了高度靈活性和效率的深度學習實驗性平台 匯入pytorch的包import torchjupyter notebook 現在,pytorch看起來真的像乙個框架了,而純tensor...
HttpClient快速入門(一)
基本例子 public class quickstarttest finally 測試通過 響應物件保留底層http連線,允許響應內容直接從網路套接 socket 字流式傳輸。為了確保正確釋放系統資源,使用者必須從finally子句呼叫closeablehttpresponse.close 方法。請...
vue快速入門一
官網 版本1 版本2 1.建立專案 初始化 npm init package.json author license isc devdependencies 2.配置 webpack.config.js webpack配置 const path require path const vueloade...