溫馨提示×

溫馨提示×

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

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

Redis中鍵和字符串常用命令有哪些

發(fā)布時(shí)間:2022-02-08 14:56:50 來源:億速云 閱讀:121 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Redis中鍵和字符串常用命令有哪些,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

    Redis 相關(guān)知識

    Redis的默認(rèn)端口號為6379

    默認(rèn)16個(gè)數(shù)據(jù)庫,類似數(shù)組下標(biāo)從0開始,初始默認(rèn)使用0號庫。
    使用命令select <dbid>來切換數(shù)據(jù)庫。 如: select 8。
    統(tǒng)一密碼管理,所有庫同樣密碼。

    dbsize查看當(dāng)前數(shù)據(jù)庫的key的數(shù)量。
    flushdb清空當(dāng)前庫。
    flushall通殺全部庫。

    Redis是單線程+多路IO復(fù)用技術(shù)。
    多路復(fù)用是指使用一個(gè)線程來檢查多個(gè)文件描述符( Socket )的就緒狀態(tài),比如調(diào)用select和poll函數(shù),傳入多個(gè)文件描述符,如果有一個(gè)文件描述符就緒,則返回,否則阻塞直到超時(shí)。得到就緒狀態(tài)后進(jìn)行真正的操作可以在同一個(gè)線程里執(zhí)行,也可以啟動(dòng)線程執(zhí)行(比如使用線程池)。

    串行 VS 多線程+鎖 ( memcached) VS 單線程+ 多路IO復(fù)用(Redis)
    Redis與Memcache三點(diǎn)不同:

    • 支持多數(shù)據(jù)類型

    • 支持持久化

    • 單線程+多路IO復(fù)用

    Redis中的數(shù)據(jù)類型

    Redis中鍵和字符串常用命令有哪些

    redis 鍵(key)

    keys *:查看當(dāng)前庫所有key (匹配 : keys *1)

    Redis中鍵和字符串常用命令有哪些

    exists key:判斷某個(gè)key是否存在。
    type key:查看你的key是什么類型。
    del key:刪除指定的key數(shù)據(jù),

    unlink key:根據(jù)value選擇非阻塞刪除。僅將keys從keyspace元數(shù)據(jù)中刪除,真正的刪除會在后續(xù)異步操作。。
    expire key 10:10 秒鐘,為給定的key設(shè)置過期時(shí)間,
    ttl key:查看還有多少秒過期, -1表示永不過期, -2表示已過期。

    select命令切換數(shù)據(jù)庫,
    dbsize查看當(dāng)前數(shù)據(jù)庫的key的數(shù)量。
    flushdb清空當(dāng)前庫。
    flushall通殺全部庫

    Redis字符串(String)

    String是Redis 最基本的類型,一個(gè)key對應(yīng)一個(gè)value。
    String類型是二進(jìn)制安全的。 意味著Redis的string可以包含任何數(shù)據(jù)。比如jpg圖片
    或者序列化的對象。
    String類型是Redis最基本的數(shù)據(jù)類型, 一個(gè)Redis中字符串value最多可以是512M。

    常用命令

    set、get等

    set <key> <value>:添加鍵值對。
    當(dāng)設(shè)置過值的key再被設(shè)置一個(gè)新的值時(shí),新的值會覆蓋舊的。

    Redis中鍵和字符串常用命令有哪些

    *NX:當(dāng)數(shù)據(jù)庫中key不存在時(shí),可以將key-value添加數(shù)據(jù)庫。
    *XX:當(dāng)數(shù)據(jù)庫中key存在時(shí),可以將key-value添加數(shù)據(jù)庫,與NX參數(shù)互斥。
    *EX: key的超時(shí)秒數(shù)。
    *PX: key 的超時(shí)毫秒數(shù),與EX互斥。

    get <key> 查詢對應(yīng)鍵值.
    append <key> <value>將給定的< value >追加到原值的末尾,
    strlen <key> 獲得值的長度。
    setnx <key> <value>只有在key不存在時(shí)設(shè)置 key的值.

    增減建的值

    incr <key>

    將key中儲存的數(shù)字值增1。
    只能對數(shù)字值操作,如果為空,新增值為10

    decr <key>

    將key中儲存的數(shù)字值減1。
    只能對數(shù)字值操作。如果為空,新增值為-1。

    inrjy/ decrby <key><步長> 將key中儲存的數(shù)字值增減。自定義步長。

    注意:
    incr和decr是原子操作
    而java中的i++則不是原子操作

    mset、mget和msetnx

    mset <key1> <value1> <key2> <value2> ....

    同時(shí)設(shè)置一個(gè)或多個(gè)key-value對。

    Redis中鍵和字符串常用命令有哪些

    mget <key1> <key2> <key3>

    同時(shí)獲取一個(gè)或多個(gè)value。

    Redis中鍵和字符串常用命令有哪些

    msetnx <key1> <value1> <key2> <value2>

    它是原子性的
    同時(shí)設(shè)置一個(gè)或多個(gè) key-value對,當(dāng)且僅當(dāng)所有給定key都不存在時(shí),才成功。

    Redis中鍵和字符串常用命令有哪些

    有一個(gè)是之前存在的則不成功

    Redis中鍵和字符串常用命令有哪些

    getrange、setrange

    getrange <key> <起始位置><結(jié)束位置>

    獲得值的范圍,類似java中的substring ,前包,后包

    setrange <key> <起始位置> <value>

    用覆寫所儲存的字符串值,從<起始位置:開始(索引從0開始)。

    Redis中鍵和字符串常用命令有哪些

    設(shè)置過期時(shí)間

    setex <key> <過期時(shí)間><value>

    設(shè)置鍵值的同時(shí),設(shè)置過期時(shí)間,單位秒。

    Redis中鍵和字符串常用命令有哪些

    替換舊值

    getset <key> <value>

    以新?lián)Q舊,設(shè)置了新值同時(shí)獲得舊值。

    Redis中鍵和字符串常用命令有哪些

    String的數(shù)據(jù)結(jié)構(gòu)

    String的數(shù)據(jù)結(jié)構(gòu)為簡單動(dòng)態(tài)字符串(Simple Dynamic String,縮寫SDS)。是可以修改的字符串,內(nèi)部結(jié)構(gòu)實(shí)現(xiàn)上類似于Java的ArrayList ,采用預(yù)分配冗余空間的方式來減少內(nèi)存的頻繁分配。

    Redis中鍵和字符串常用命令有哪些

    如圖中所示,內(nèi)部為當(dāng)前字符串實(shí)際分配的空間capacity一般要高于實(shí)際字符串長度len。當(dāng)字符串長度小于1M時(shí),擴(kuò)容都是加倍現(xiàn)有的空間,如果超過1M,擴(kuò)容時(shí)一次只會多擴(kuò)1M的空間。需要注意的是字符串最大長度為512M。

    關(guān)于“Redis中鍵和字符串常用命令有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

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

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

    AI