首頁 >資料庫 >Redis >redis中5種資料型別基本指令介紹

redis中5種資料型別基本指令介紹

尚
轉載
2020-03-11 09:12:572456瀏覽

redis中5種資料型別基本指令介紹

redis是鍵值對的資料庫,有5中主要資料類型:

字串類型(string),雜湊類型(hash),列表類型( list),集合類型(set),有序集合類型(zset)

推薦:redis教學

##幾個基本的指令:

函數說明#keys *取得目前資料庫的所有鍵exists key [key ...]判斷鍵是否存在,傳回個數,如果key有一樣的也是疊加數del key [key ...]刪除鍵,傳回刪除的個數#type keyflushall##config [get 、set]redis配置#

-inf 負無窮

inf正無窮

一:字串類型(string)

字串類型是Redis的最基本類型,它可以儲存任何形式的字串。其它的四種類型都是字串類型的不同形式。

##取得減損的資料類型(string,hash,list,set,zset)
清空所有資料庫
##二進位是1的個數: BITCOUNTBITCOUNT key [start end] ,start 、end為開始和結束位元組位元運算:BITOP#BITOP operation destkey key [ key ...]  ,operation支援AND、OR、XOR、NOT# 偏移:BITPOSBITPOS key bit [start] [end]

二:雜湊類型(hash)

函數 語法
#最基本的指令: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 ,傳回該位置的舊值
##設定單一:HSET設定多個: HMSET    ## 讀單一:HGET##HGET key field,不存在是回傳nil HMGET key field [field ...]##讀取全部:HGETALL HGETALL key,返回時字段和字段值的列表# 判斷字段是否存在:HEXISTSHEXISTS key field,存在返回1 ,不存在回傳0欄位不存在時賦值:HSETNX#HSETNX key field value,與hset指令不同,hsetnx是鍵不存在時設定值增加數字:HINCRBYHINCRBY key field increment ,傳回增加後的數,不是整數時會提示錯誤刪除欄位: HDELHDEL key field [field ...] ,傳回已刪除欄位的數量只取得欄位名稱:HKEYSHKEYS key ,傳回鍵的所有欄位名稱只取得欄位值:HVALS#HVALS key  ,所有回傳鍵的所有欄位值
函數
HSET key field value,不存在時回傳1,存在時回傳0,沒有更新插入之分
HMSET key field value [field value ...]
讀取多個:HMGET
# ##欄位數:HLEN######HLEN key ,傳回欄位總數#############

三:列表類型(list)

內部使用雙向鍊錶實現,所以獲取越接近兩端的元素速度越快,但透過索引存取時會比較慢

##一個清單轉移另一個列表:RPOPLPUSH

四:集合類型(set)

集合類型值具有唯一性,常用運算是新增、刪除、判斷某個值是否存在,集合內部是使用值為空的散列表實現的。

函數 語法
# 新增左邊元素: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的元素

索引元素值:LINDEXLINDEX key index ,傳回索引的元素值,-1表示從最右邊的第一位
設定元素值:LSETLSET key index value
保留清單片段:LTRIMLTRIM key start stop,start、top 參考lrange指令
RPOPLPUSH source desctination ,從source清單轉移到desctination列表,該指令分兩步驟看,首先source列表RPOP右邊移除,再desctination列表LPUSH

##值是否存在:SISMEMBERSISMEMBER key member ,若存在回傳1,不存在回傳0差運算:SDIFF  SDIFF key [key ...] ,例如:集合A和集合B,差集表示A-B,在A裡有的元素B裡沒有,回傳差集合;多個集合(A-B)-C交運算:SINTER SINTER key [key ...],傳回交集集合,每個集合都有的元素並運算:SUNION SUNION key [key ...],返回並集集合,所有集合的元素集合元素個數:SCARDSCARD key ,傳回集合元素個數集合運算後儲存結果# 隨機取得元素: SRANDMEMGER彈出元素:SPOPSPOP key [count] ,因為集合是無序的,所以spop會隨機彈出一個元素

五:有序集合類型 zset(sorted set:有序集合)

Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。

不同的是每個元素都會關聯一個double類型的分數。

redis正是透過分數來為集合中的成員進行從小到大的排序。 zset的成員是唯一的,但分數(score)卻可以重複。

函數語法
#新增元素:SADD

#SADD key member [member ...] ,在一個集合中加入一個或多個元素,因為集合的唯一性,所以當添加相同值時會被忽略。傳回成功添加元素的數量。

刪除元素:SREMSREM key member [member ...] 刪除集合中一個或多個元素,傳回成功刪除的數量。
取得全部元素:SMEMBERSSMEMBERS 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的絕對值個元素,但元素可能會重複

##增加分數分數:ZINCRBYZINCRBY key increment member ,注意是增加分數,傳回增加後的分數;如果成員不存在,則新增一個為0的成員。
函數 語法
#新增集合元素: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類似,只不過此指令是從大到小排序的。

########################### #####相關推薦:######mysql影片教學:###https://www.php.cn/course/list/51.html##########

以上是redis中5種資料型別基本指令介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除