<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Redis是一個key-value的資料庫,key一般是String型別,不過value的型別多種多樣:
value的資料型別共有8種,前面5中為基本資料型別,後面3種是針對不同的情況指定的特殊資料型別。
命令不要死記,學會查詢就好啦
Redis為了方便我們學習,將操作不同資料型別的命令也做了分組,在官網( Commands | Redis)可以檢視到不同的命令:(點選COMMANDS)
當然我們也可以通過Help命令來幫助我們去檢視命令
通用指令是部分資料型別的,都可以使用的指令,常見的有:
通過help [command] 可以檢視一個命令的具體用法,例如:
接下來演示上述常用命令的使用:
溫馨提示:以下的內容所有的程式碼塊都是從命令列視窗複製過來的,包括命令和結果哦~
1.KEYS:檢視符合模板的所有key
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379>
# 查詢以a開頭的key
127.0.0.1:6379> keys a*
1) "age"
127.0.0.1:6379>
貼心小提示:在生產環境下,不推薦使用keys 命令,因為這個命令在key過多的情況下,效率不高
2.DEL:刪除一個指定的key
127.0.0.1:6379> help del
DEL key [key ...]
summary: Delete a key
since: 1.0.0
group: generic
127.0.0.1:6379> del name #刪除單個
(integer) 1 #成功刪除1個
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 #批次新增資料
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
4) "age"
127.0.0.1:6379> del k1 k2 k3 k4
(integer) 3 #此處返回的是成功刪除的key,由於redis中只有k1,k2,k3 所以只成功刪除3個,最終返回
127.0.0.1:6379>
127.0.0.1:6379> keys * #再查詢全部的key
1) "age" #只剩下一個了
127.0.0.1:6379>
貼心小提示:在拷貝程式碼的時候,只需要拷貝對應的命令哦~
3.EXISTS:判斷key是否存在
127.0.0.1:6379> help EXISTS
EXISTS key [key ...]
summary: Determine if a key exists
since: 1.0.0
group: generic
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> exists name
(integer) 0
4.EXPIRE:給一個key設定有效期,有效期到期時該key會被自動刪除
5.TTL:檢視一個KEY的剩餘的存活時間
127.0.0.1:6379> expire age 10
(integer) 1
127.0.0.1:6379> ttl age
(integer) 8
127.0.0.1:6379> ttl age
(integer) 6
127.0.0.1:6379> ttl age
(integer) -2
127.0.0.1:6379> ttl age
(integer) -2 #當這個key過期了,那麼此時查詢出來就是-2
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set age 10 #如果沒有設定過期時間
OK
127.0.0.1:6379> ttl age
(integer) -1 # ttl的返回值就是-1
貼心小提示:
(1)記憶體非常寶貴,對於一些資料,我們應當給他一些過期時間,當過期時間到了之後,他就會自動被刪除~
(2)當使用TTL命令時,如果返回 -1 值,不是代表已經被銷燬,而是代表永久哦~
Redis沒有類似MySQL中的Table的概念,我們該如何區分不同型別的key呢?
例如,需要儲存使用者.商品資訊到redis,有一個使用者id是1,有一個商品id恰好也是1,此時如果使用id作為key,那就會衝突了,該怎麼辦?
我們可以通過給key新增字首加以區分,不過這個字首不是隨便加的,有一定的規範:
Redis的key允許有多個單詞形成層級結構,多個單詞之間用':'隔開,格式如下:
這個格式並非固定,也可以根據自己的需求來刪除或新增詞條。
這個格式並非固定,也可以根據自己的需求來刪除或新增詞條。
例如我們的專案名稱叫 heima,有user和product兩種不同型別的資料,我們可以這樣定義key:
如果Value是一個Java物件,例如一個User物件,則可以將物件序列化為JSON字串後儲存:
KEY | VALUE |
---|---|
heima:user:1 | {"id":1, "name": "Jack", "age": 21} |
heima:product:1 | {"id":1, "name": "小米11", "price": 4999} |
一旦我們向redis採用這樣的方式儲存,那麼在視覺化介面中,redis會以層級結構來進行儲存,形成類似於這樣的結構,更加方便Redis獲取資料
到此這篇關於Redis通用命令介紹以及key的層級結構講解的文章就介紹到這了,更多相關Redis通用命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45