溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis的常用命令整理

發(fā)布時(shí)間:2021-08-25 17:07:16 來(lái)源:億速云 閱讀:152 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“Redis的常用命令整理”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Redis常用命令整理

事務(wù)

        事務(wù)的原理是先將屬于一個(gè)事務(wù)的命令發(fā)送給redis ,然后再讓 redis 依次執(zhí)行這些命令

                   

        錯(cuò)誤處理

        (1)語(yǔ)法錯(cuò)誤。語(yǔ)法錯(cuò)誤指命令不存在或者命令參數(shù)個(gè)數(shù)不對(duì)。這種情況下,事務(wù)中只要有一個(gè)命令有語(yǔ)法錯(cuò)誤,執(zhí)行exec命令后redis就會(huì)直接返回錯(cuò)誤,連語(yǔ)法正確的命令也不會(huì)執(zhí)行

        (2)運(yùn)行錯(cuò)誤。運(yùn)行錯(cuò)誤指在命令執(zhí)行時(shí)出現(xiàn)的錯(cuò)誤,比如使用散列類型的命令操作集合類型的鍵,這種錯(cuò)誤在實(shí)際執(zhí)行之前redis是無(wú)法發(fā)現(xiàn)的,所以在事務(wù)里這樣的命令是會(huì)被redis接受并執(zhí)行的,如果事務(wù)里的一條命令出現(xiàn)運(yùn)行錯(cuò)誤,事務(wù)里其他的命令依然會(huì)繼續(xù)執(zhí)行(包含出錯(cuò)命令之后的命令)

        reids的事務(wù)沒(méi)有關(guān)系數(shù)據(jù)庫(kù)事務(wù)提供的回滾功能,為此開(kāi)發(fā)者必須在事務(wù)執(zhí)行出錯(cuò)之后自己收拾剩下的攤子

    MULTI

     標(biāo)記一個(gè)事務(wù)塊的開(kāi)始。

     事務(wù)塊內(nèi)的多條命令會(huì)按照先后順序被放進(jìn)一個(gè)隊(duì)列當(dāng)中,最后由 EXEC 命令原子性(atomic)地執(zhí)行。

       


    EXEC

     執(zhí)行所有事務(wù)塊內(nèi)的命令。

     假如某個(gè)(或某些) key 正處于 WATCH 命令的監(jiān)視之下,且事務(wù)塊中有和這個(gè)(或這些) key 相關(guān)的命令,那么 EXEC 命令只在這個(gè)(或這些) key 沒(méi)有被其他命令所改動(dòng)的情況下執(zhí)行并生效,否則該事務(wù)被打斷(abort)。


    watch 命令

        watch key [ key ... ]

         監(jiān)視一個(gè)或多個(gè) key ,如果在事務(wù)執(zhí)行之前這個(gè)或這些 key 被其他命令所改動(dòng),那么事務(wù)將被打斷,監(jiān)控一直持續(xù)到exec命令

       


    unwatch

        取消 watch 命令對(duì)所有 key 的監(jiān)視


    

    生存時(shí)間

        expire

         expire 命令的使用方法為 expire key seconds ,其中 seconds 參數(shù)表示鍵的生存時(shí)間,單位是秒,該參數(shù)必須是整數(shù)     

        命令返回 1表示設(shè)置成功,返回 0 則表示鍵不存在或設(shè)置失敗

        如果想知道一個(gè)鍵還有多久會(huì)被刪除,可以使用 ttl 命令。返回值是鍵的剩余時(shí)間(單位是秒),

        如果想取消鍵的生存時(shí)間設(shè)置(即將鍵恢復(fù)成為永久的),可以使用 persist 命令。如果生存時(shí)間被成功清除則返回 1 。否則返回 0

              

        除了 persist 命令之外,使用 set 、getset 命令為鍵賦值也同時(shí)會(huì)清楚鍵的生存時(shí)間

        注: incr 、lpush、hset、zrem 命令均不會(huì)影像鍵的生存時(shí)間

        精確控制鍵的生存時(shí)間應(yīng)該使用 pexpire 命令。該命令的單位是毫秒

        可以使用 pttl 命令以毫秒為單位返回鍵的剩余時(shí)間

        另外不太常用命令:expireat 和 pexpireat,該命令第二個(gè)參數(shù)表示鍵的生存時(shí)間的截至?xí)r間,expireat 單位秒 pexpireat 單位毫秒


    sort 

        該命令可以對(duì)列表類型,集合類型,和有序集合類型鍵進(jìn)行排序

        列表類型:       

      有序集合類型排序時(shí),會(huì)忽略元素的分?jǐn)?shù),只針對(duì)元素的自身的值進(jìn)行排序       

        除了可以排列數(shù)字外,sort 命令還可以通過(guò) alpha 參數(shù)實(shí)現(xiàn)按照字典順序排列非數(shù)字元素

        sort 命令的 desc 參數(shù)可以實(shí)現(xiàn)將元素按照從大到小的順序排列

        sort 命令還支持 limit 參數(shù)來(lái)返回指定范圍的結(jié)果,用法和sql 語(yǔ)句一樣 limit offset count ,表示跳過(guò)前 offset 個(gè)元素并獲取之后的 count 個(gè)元素

      

        sort 命令 by 參數(shù),默認(rèn)情況下, sort uid 直接按照 uid 中的值排序,通過(guò) by 參數(shù),可以讓 uid 按照其他鍵的元素來(lái)排序 

        user_level_* 是一個(gè)占位符,他先取出 uid 中的值,然后在用這個(gè)值來(lái)查找相應(yīng)的鍵,比如在對(duì) uid 列表進(jìn)行排序時(shí), 程序就會(huì)先取出 uid 的值 1 、 2 、 3 、 4 , 然后使用 user_level_1 、 user_level_2 、 user_level_3 

            和   user_level_4 的值作為排序 uid 的權(quán)重。

        使用 get 選項(xiàng),可以根據(jù)排序的結(jié)果來(lái)取出相應(yīng)的鍵值

        一個(gè)sort 命令中可以有多個(gè) get 參數(shù)(而 by 參數(shù)只能有一個(gè))

       

        默認(rèn)情況下 sort 命令會(huì)直接返回排序結(jié)果,如果希望保存排序結(jié)果,可以使用 store 參數(shù),保存后鍵的類型為列表類型

        

“Redis的常用命令整理”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI