redis數據讀寫命令

redis的特性:
    1)內存存儲與持久化
    2)5種數據類型
        字符串:
        hash:
        鏈表:
        集合:
        有序集合:    
    3)Redis的多數據庫
        1)Redis默認有16個數據庫,數據庫名分別爲:db0、db1 ... db15,redis不支持自定義數據庫名稱
        2)能夠經過修改配置文件中的databases參數來修改默認數據庫的個數
        3)客戶端鏈接到Redis服務後會自動選擇0號數據庫。注:能夠根據提示符看出目前客戶端是在操做哪一個數據庫。eg:127.0.0.1:6379>表示0數據庫,127.0.0.1:6379[1]>表示1數據庫。
        4)經過SELECT命令能夠更換數據庫:eg:SELECT 1
    
    注意:
        1)Redis不支持自定義數據庫名稱,不支持爲每一個數據庫設置訪問密碼
        2)Redis的多個數據庫之間不是徹底隔離的。
            eg:FLUSHALL命令會清空全部數據庫的數據。
        
    redis


通用命令:
    type key         # 獲取key的類型數據庫

        
String類型經常使用命令:app

    set:
        set key value                     # 插入key-value對
        setnx key value                 # 若key不存在則插入鍵值對;若key已經存在,則不插入鍵值對,返回0。nx:not exist
        setex key 有效期 value             # 插入鍵值對並設置有效期(單位爲秒)
        mset key1 value1 key2 value2     # 批量插入鍵值對,結果只有兩種:所有成功並返回ok或所有失敗並返回0
        msetnx key1 value1 key2 value2     # 批量插入鍵值對,結果只有兩種:所有成功並返回ok或所有失敗並返回0,若是key1或key2已經存在,則插入所有失敗。
        expire key n                     # 設置key對應的鍵值對的過時時間爲n秒
        rename key1 key2                 # 將key1重命名爲key2
        del key                         # 刪除key對應的鍵值對
        persist key                     # 刪除key的過時時間,使key對應的鍵值對永久存儲。
        
    get:
        get key                         # 獲取key對應的value
        getset key value                 # 設置key對應的新值,並返回key對應的舊值
        mget key1 key2                     # 批量獲取多個key對應的值
        key pattern                     # 獲取匹配pattern的全部key對應的值
        strlen key                         # 獲取key對應的value的長度
        exists key                         # 驗證key對應的鍵值對是否存在:1表示存在,0表示不存在    
        ttl key                          # 獲取key對應的鍵值對剩餘的生存時間(單位爲秒),ttl返回值:正數表示剩餘生存時間,-1表示沒有過時時間,永久存儲,-2表示數據已經被刪除。對象

    其它:
        incr key             # 對key對應的value進行+1操做,若key不存在,則會將key對應的value設爲1,並存儲該鍵值對。若key對應的value的類型不是int類型,則會返回錯誤。
        incrby key n         # 對key對應的value進行+n操做,若是key不存在,則會將key對應的value設爲n,並儲存該鍵值對。
        decr key             # 對key對應的value進行-1操做,若是key不存在,則會講key對應的value設爲-1,並存儲該鍵值對。
        decrby key n         # 等價於incrby key -n
            
        append key appendStr         # 把appendStr追加到key對應的value的後面
            
        setrange key 下標 替換的字符串     
            # 替換指定key對應的value從指定下標至最後的值
        getrange key startIndex endIndex
            # 獲取指定key對應的value的子串(包含startIndex和endIndex)
            # 字符串左面下標是從0開始的,    eg:獲取前3個字符     getrange key 0 2
            # 字符串右邊下標是從-1開始的,    eg:獲取最後3個字符    getrange key -3 -1
        
        
        
list(鏈表)類型經常使用命令:隊列

    概念:list(鏈表)類型:每一個子元素都是String類型的雙向鏈表
     
    push:    
        lpush key value     # 在名稱爲key的鏈表 頭部(l表示left)添加字符串元素value    
        rpush key value     # 在名稱爲key的鏈表 尾部(r表示right)添加字符串元素value
        
    pop:
        lpop key             # 在名稱爲key的鏈表 頭部(l表示left)刪除一個元素,並返回刪除元素。若是鏈表key不存在或者爲空,則當即返回null。
        rpop key             # 在名稱爲key的鏈表 尾部(r表示right)刪除一個元素,並返回刪除元素,若是鏈表key不存在或者爲空,則當即返回null。
            
        blpop key
        brpop key
            # 阻塞式(b表示block)的獲取鏈表中的元素
            # 優勢:避免使用輪詢的方式來判斷隊列(鏈表)中是否有任務存在。
            
        rpoplpush key1 key2
            # 從名稱爲key1的鏈表的尾部移除一個元素,而且將這個元素添加到名稱爲key2的鏈表的頭部,並返回這個元素,整個操做是一個原子操做。
            # 若是鏈表key1不存在,或者鏈表key1是一個空鏈表,則返回空。
        
    其它:    
        llen key                                 # 返回名稱爲key的鏈表的長度內存

        lset key index value                     # 在名稱爲key的鏈表中,將(從左邊開始)第index元素的值設爲value,下標從0開始element

        lindex key index                         # 返回名稱爲key的鏈表的第index個元素rem

        lrange key index1 index2                 # 獲取名稱爲key的鏈表中指定範圍的元素
            
        linsert key before elementValue value     # 在名稱爲key的鏈表的elementValue元素以前添加字符串元素value字符串

        lrem key count value         # 在名稱爲key的鏈表中,刪除count個和value相同的元素,count>0時,按從頭至尾的順序刪除,count=0時,刪除所有。
            
        ltrim key index1 index2     # 在名稱爲key的鏈表中,保留index1到index2範圍內的數據
        get

    
hash類型及操做
    概念:redis中的hash是一個string類型的field和value的映射表。它的添加、刪除操做都是O(1),hash特別適合於存儲對象。

    hset mapName key value     # 往名稱爲mapName的map中添加key-value對,map若是不存在,則自動建立map。若是key-value對已存在,則更新。     hget mapName key         # 獲取map中指定key的value     hdel mapName key         # 刪除map中指定的key-value     hlen mapName             # 獲取map的大小     hgetall key             # 獲取map中全部的key-value對           set(集合)類型及操做:     概念:     sadd key value         # 向名稱爲key的集合中添加字符串元素value     srem key value         # 將名稱爲key的集合中的value元素刪除     smembers key         # 獲取set中全部的元素

相關文章
相關標籤/搜索