欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis通用命令介紹以及key的層級(jí)結(jié)構(gòu)講解

 更新時(shí)間:2022年12月07日 08:45:24   作者:芝麻干  
這篇文章主要介紹了Redis通用命令以及key的層級(jí)結(jié)構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

1 Redis數(shù)據(jù)結(jié)構(gòu)介紹

Redis是一個(gè)key-value的數(shù)據(jù)庫(kù),key一般是String類型,不過(guò)value的類型多種多樣:

value的數(shù)據(jù)類型共有8種,前面5中為基本數(shù)據(jù)類型,后面3種是針對(duì)不同的情況指定的特殊數(shù)據(jù)類型。

命令不要死記,學(xué)會(huì)查詢就好啦

Redis為了方便我們學(xué)習(xí),將操作不同數(shù)據(jù)類型的命令也做了分組,在官網(wǎng)( Commands | Redis)可以查看到不同的命令:(點(diǎn)擊COMMANDS)

當(dāng)然我們也可以通過(guò)Help命令來(lái)幫助我們?nèi)ゲ榭疵?/p>

2 Redis通用命令

通用指令是部分?jǐn)?shù)據(jù)類型的,都可以使用的指令,常見的有:

  • KEYS:查看符合模板的所有key
  • DEL:刪除一個(gè)指定的key
  • EXISTS:判斷key是否存在
  • EXPIRE:給一個(gè)key設(shè)置有效期,有效期到期時(shí)該key會(huì)被自動(dòng)刪除
  • TTL:查看一個(gè)KEY的剩余有效期

通過(guò)help [command] 可以查看一個(gè)命令的具體用法,例如:

接下來(lái)演示上述常用命令的使用:

溫馨提示:以下的內(nèi)容所有的代碼塊都是從命令行窗口復(fù)制過(guò)來(lái)的,包括命令和結(jié)果哦~

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>

貼心小提示:在生產(chǎn)環(huán)境下,不推薦使用keys 命令,因?yàn)檫@個(gè)命令在key過(guò)多的情況下,效率不高

2.DEL:刪除一個(gè)指定的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 #刪除單個(gè)
(integer) 1  #成功刪除1個(gè)
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 #批量添加數(shù)據(jù)
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個(gè),最終返回
127.0.0.1:6379>
127.0.0.1:6379> keys * #再查詢?nèi)康膋ey
1) "age"    #只剩下一個(gè)了
127.0.0.1:6379>

貼心小提示:在拷貝代碼的時(shí)候,只需要拷貝對(duì)應(yīng)的命令哦~

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:給一個(gè)key設(shè)置有效期,有效期到期時(shí)該key會(huì)被自動(dòng)刪除

5.TTL:查看一個(gè)KEY的剩余的存活時(shí)間

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  #當(dāng)這個(gè)key過(guò)期了,那么此時(shí)查詢出來(lái)就是-2 
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set age 10 #如果沒有設(shè)置過(guò)期時(shí)間
OK
127.0.0.1:6379> ttl age
(integer) -1  # ttl的返回值就是-1

貼心小提示:

(1)內(nèi)存非常寶貴,對(duì)于一些數(shù)據(jù),我們應(yīng)當(dāng)給他一些過(guò)期時(shí)間,當(dāng)過(guò)期時(shí)間到了之后,他就會(huì)自動(dòng)被刪除~

(2)當(dāng)使用TTL命令時(shí),如果返回 -1 值,不是代表已經(jīng)被銷毀,而是代表永久哦~

3 Redis命令-Key的層級(jí)結(jié)構(gòu)

Redis沒有類似MySQL中的Table的概念,我們?cè)撊绾螀^(qū)分不同類型的key呢?

例如,需要存儲(chǔ)用戶.商品信息到redis,有一個(gè)用戶id是1,有一個(gè)商品id恰好也是1,此時(shí)如果使用id作為key,那就會(huì)沖突了,該怎么辦?

我們可以通過(guò)給key添加前綴加以區(qū)分,不過(guò)這個(gè)前綴不是隨便加的,有一定的規(guī)范:

Redis的key允許有多個(gè)單詞形成層級(jí)結(jié)構(gòu),多個(gè)單詞之間用':'隔開,格式如下:

這個(gè)格式并非固定,也可以根據(jù)自己的需求來(lái)刪除或添加詞條。

這個(gè)格式并非固定,也可以根據(jù)自己的需求來(lái)刪除或添加詞條。

例如我們的項(xiàng)目名稱叫 heima,有user和product兩種不同類型的數(shù)據(jù),我們可以這樣定義key:

  • user相關(guān)的key:heima:user:1
  • product相關(guān)的key:heima:product:1

如果Value是一個(gè)Java對(duì)象,例如一個(gè)User對(duì)象,則可以將對(duì)象序列化為JSON字符串后存儲(chǔ):

KEYVALUE
heima:user:1{"id":1, "name": "Jack", "age": 21}
heima:product:1{"id":1, "name": "小米11", "price": 4999}

一旦我們向redis采用這樣的方式存儲(chǔ),那么在可視化界面中,redis會(huì)以層級(jí)結(jié)構(gòu)來(lái)進(jìn)行存儲(chǔ),形成類似于這樣的結(jié)構(gòu),更加方便Redis獲取數(shù)據(jù)

到此這篇關(guān)于Redis通用命令介紹以及key的層級(jí)結(jié)構(gòu)講解的文章就介紹到這了,更多相關(guān)Redis通用命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • redis?zset實(shí)現(xiàn)滑動(dòng)窗口限流的代碼

    redis?zset實(shí)現(xiàn)滑動(dòng)窗口限流的代碼

    這篇文章主要介紹了redis?zset實(shí)現(xiàn)滑動(dòng)窗口限流,滑動(dòng)窗口算法思想就是記錄一個(gè)滑動(dòng)的時(shí)間窗口內(nèi)的操作次數(shù),操作次數(shù)超過(guò)閾值則進(jìn)行限流,本文通過(guò)實(shí)例代碼給大家詳細(xì)介紹,需要的朋友參考下吧
    2022-03-03
  • redis?zrange?與?zrangebyscore的區(qū)別解析

    redis?zrange?與?zrangebyscore的區(qū)別解析

    這篇文章主要介紹了redis?zrange與zrangebyscore的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 在Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式速率限制的方法

    在Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式速率限制的方法

    這篇文章主要介紹了在Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式速率限制的方法,文中展示了一個(gè)用Python編寫的應(yīng)用示例,需要的朋友可以參考下
    2015-06-06
  • Redis大key和多key拆分的解決方案

    Redis大key和多key拆分的解決方案

    大key會(huì)導(dǎo)致內(nèi)存使用過(guò)高,多key可能導(dǎo)致查詢效率低下,本文主要介紹了Redis大key和多key拆分的解決方案,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 淺談Redis緩存更新策略

    淺談Redis緩存更新策略

    這篇文章主要介紹了Redis緩存更新策略的相關(guān)資料,講解的十分細(xì)致,有需要的小伙伴可以參考下
    2022-08-08
  • 詳解redis-cli?命令

    詳解redis-cli?命令

    這篇文章主要介紹了redis-cli?命令詳解,主要包括命令使用及使用info命令獲取服務(wù)器的信息,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • Redis fork進(jìn)程分配不到內(nèi)存解決方案

    Redis fork進(jìn)程分配不到內(nèi)存解決方案

    這篇文章主要介紹了Redis fork進(jìn)程分配不到內(nèi)存解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 詳解基于redis實(shí)現(xiàn)的四種常見的限流策略

    詳解基于redis實(shí)現(xiàn)的四種常見的限流策略

    限流算法在分布式領(lǐng)域是一個(gè)經(jīng)常被提起的話題,當(dāng)系統(tǒng)的處理能力有限時(shí), 如何阻止計(jì)劃外的請(qǐng)求繼續(xù)對(duì)系統(tǒng)施壓,這是一個(gè)需要重視的問(wèn)題。除了控制流量,限流還有一個(gè)應(yīng)用目的是控制用戶行為,避免垃圾請(qǐng)求
    2021-06-06
  • 一篇吃透Redis緩存穿透、雪崩、擊穿問(wèn)題

    一篇吃透Redis緩存穿透、雪崩、擊穿問(wèn)題

    這篇文主要介紹了Redis緩存穿透,緩存雪崩,緩存擊穿的問(wèn)題解決方法,文中有詳細(xì)的圖文介紹,對(duì)大家了解Redis有一定的幫助,需要的朋友可以參考下
    2023-05-05
  • redis搭建哨兵模式實(shí)現(xiàn)一主兩從三哨兵

    redis搭建哨兵模式實(shí)現(xiàn)一主兩從三哨兵

    本文主要介紹了redis搭建哨兵模式實(shí)現(xiàn)一主兩從三哨兵,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08

最新評(píng)論