redis是鍵值對的資料庫,有5中主要資料類型:
字串類型(string),雜湊類型(hash),列表類型( list),集合類型(set),有序集合類型(zset)
推薦:redis教學
##幾個基本的指令:說明 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
取得目前資料庫的所有鍵 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
判斷鍵是否存在,傳回個數,如果key有一樣的也是疊加數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
刪除鍵,傳回刪除的個數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
##取得減損的資料類型(string,hash,list,set,zset) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
清空所有資料庫 | ##config [get 、set] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# |
函數 | 語法 |
---|---|
#最基本的指令:GET、SET | GET key,SET key value value如果有空格需要雙引號以示區分 |
整數遞增:INCR | INCR key 預設值為0,所以先執行指令得到1 ,不是整數提示錯誤 |
增加指定的整數:INCRBY | INCRBY key increment |
整數遞減:DECR | DECR key 預設值為0,所以先執行指令得到-1,不是整數提示錯誤 |
減少指定的整數:DECRBY | DECRBY key increment |
增加指定浮點數:INCRBYFLOAT | INCRBYFLOAT key increment 與INCR指令類似,只不過可以遞增一個雙精確度浮點數 |
向尾部追加值:APPEND | APPEND key value redis客戶端並不是輸出追加後的字串,而是輸出字串總長度 |
#取得字串長度:STRLEN | STRLEN key 如果鍵不存在回傳0,注意如果有中文時,一個中文長度是3,redis是使用UTF-8編碼中文的 |
取得多個鍵值:MGET | MGET key [key ...] 例如:MGET key1 key2 |
設定多個鍵值:MSET | MSET key value [key value ...] 例如:MSET key1 1 key2 "hello redis" |
#二進位指定位置值:GETBIT | GETBIT key offset 例如:GETBIT key1 2 ,key1為hello 回傳1,回傳的值只有0或1,當key不存在或超出實際長度時為0 |
#設定二進位位置值:SETBIT | SETBIT key offset value ,傳回該位置的舊值 |
BITCOUNT key [start end] ,start 、end為開始和結束位元組 | |
#BITOP operation destkey key [ key ...] ,operation支援AND、OR、XOR、NOT | |
BITPOS key bit [start] [end] |
函數 | |
---|---|
HSET key field value,不存在時回傳1,存在時回傳0,沒有更新插入之分 | |
HMSET key field value [field value ...] | ## 讀單一:HGET |
讀取多個:HMGET | |
##讀取全部:HGETALL | HGETALL key,返回時字段和字段值的列表 |
# 判斷字段是否存在:HEXISTS | HEXISTS key field,存在返回1 ,不存在回傳0 |
欄位不存在時賦值:HSETNX | #HSETNX key field value,與hset指令不同,hsetnx是鍵不存在時設定值 |
增加數字:HINCRBY | HINCRBY key field increment ,傳回增加後的數,不是整數時會提示錯誤 |
刪除欄位: HDEL | HDEL key field [field ...] ,傳回已刪除欄位的數量 |
只取得欄位名稱:HKEYS | HKEYS key ,傳回鍵的所有欄位名稱 |
只取得欄位值:HVALS | #HVALS key ,所有回傳鍵的所有欄位值 |
三:列表類型(list)
內部使用雙向鍊錶實現,所以獲取越接近兩端的元素速度越快,但透過索引存取時會比較慢
函數 | 語法 |
---|---|
# 新增左邊元素:LPUSH | LPUSH key value [value .. .] ,傳回新增後的清單元素的總個數 |
新增右邊元素:RPUSH | RPUSH key value [value ...] ,回傳新增後的列表元素的總個數 |
移除左邊第一個元素:LPOP | LPOP key ,傳回移除的元素值 |
移除右邊第一個元素:RPOP | RPOP key ,傳回被移除的元素值 |
列表元素個數:LLEN | LLEN key, 不存在時回傳0,redis是直接讀取現成的值,並不是統計數 |
取得清單片段:LRANGE | LRANGE key start stop,如果start比stop靠後時返回空列表,0 -1 返回整個列表正數時:start 開始索引值,stop結束索引值(索引從0開始)負數時:例如lrange num -2 -1,-2表示最右邊第二個,-1表示最右邊第一個, |
#刪除指定值:LREM |
LREM key count value,傳回被刪除的個數 count>0,從左邊開始刪除前count個值為value的元素 count<0,從右邊開始刪除前|count|個值為value的元素 count=0,刪除所有值為value的元素 |
索引元素值:LINDEX | LINDEX key index ,傳回索引的元素值,-1表示從最右邊的第一位 |
設定元素值:LSET | LSET key index value |
保留清單片段:LTRIM | LTRIM key start stop,start、top 參考lrange指令 |
RPOPLPUSH source desctination ,從source清單轉移到desctination列表,該指令分兩步驟看,首先source列表RPOP右邊移除,再desctination列表LPUSH |
函數 | 語法 |
---|---|
#新增元素:SADD | #SADD key member [member ...] ,在一個集合中加入一個或多個元素,因為集合的唯一性,所以當添加相同值時會被忽略。傳回成功添加元素的數量。 |
刪除元素:SREM | SREM key member [member ...] 刪除集合中一個或多個元素,傳回成功刪除的數量。 |
取得全部元素:SMEMBERS | SMEMBERS key ,傳回集合全部元素 |
| SISMEMBER key member ,若存在回傳1,不存在回傳0|
SDIFF key [key ...] ,例如:集合A和集合B,差集表示A-B,在A裡有的元素B裡沒有,回傳差集合;多個集合(A-B)-C | |
SINTER key [key ...],傳回交集集合,每個集合都有的元素 | |
SUNION key [key ...],返回並集集合,所有集合的元素 | |
SCARD key ,傳回集合元素個數 | |
SDIFFSTROE destination key [key ...] ,差運算並儲存到destination新集合中SINTERSTROE destination key [key .. .],交運算並儲存到destination新集合中SUNIONSTROE destination key [key ...],並運算並儲存到destination新集合中 | |
SRANDMEMBER key [count],根據count不同有不同結果,count大於元素總數時傳回全部元素count>0 ,傳回集合中count不重複的元素count<0,傳回集合中count的絕對值個元素,但元素可能會重複 | |
SPOP key [count] ,因為集合是無序的,所以spop會隨機彈出一個元素 |
函數 | 語法 |
---|---|
#新增集合元素:ZADD | #ZADD key [NX|XX] [CH] [INCR] score member [score member ...],不存在添加,存在更新。 |
取得元素分數:ZSCORE | ZSCORE key member ,傳回元素成員的score 分數 |
元素小到大: ZRANGE | ZRANGE key start top [WITHSCORES] ,參考LRANGE ,加上withscores 返回帶元素,即元素,分數當分數一樣時,按元素排序 |
#元素大到小:ZREVRANGE | ZREVRANGE key start [WITHSCORES] ,與zrange區別在於zrevrange是從大到小排序 |
指定分數範圍元素:ZRANGEBYSCORE | ZRANGEBYSCORE key min max [WITHSCORE] [LIMIT offest count]傳回從小到大的在min和max之間的元素,( 符號表示不包含,例如:80-100, (80 100,withscore傳回帶分數limit offest count 向左偏移offest個元素,並取得前count個元素 |
#指定分數範圍元素:ZREVRANGESCORE | ZREVRANGEBYSCORE key max min [WITHSCORE] [LIMIT offest count]與zrangebyscore類似,只不過此指令是從大到小排序的。 |
ZINCRBY key increment member ,注意是增加分數,傳回增加後的分數;如果成員不存在,則新增一個為0的成員。 |
########################### #####相關推薦:######mysql影片教學:###https://www.php.cn/course/list/51.html##########
以上是redis中5種資料型別基本指令介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!