try redis 快速入門 一

2021-06-26 05:59:24 字數 4397 閱讀 1808

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...