天天看點

Redis學習筆記(2)-Redis資料類型HDIS-Framework

Redis學習筆記(2)-Redis資料類型HDIS-Framework

HDIS-Framework

Redis學習筆記(2)-Redis資料類型HDIS-Framework
Redis學習筆記(2)-Redis資料類型HDIS-Framework

HDIS-Framework是一個基于SpringBoot、Kubernetes、阿裡雲服務,編寫的一個用于支撐微服務的極速開發架構。

其文檔詳盡,Demo全面,設計合理,開箱即用,節省開發時間,提升開發效率。

配套的docker、Kubernetes教程已踩過各種坑,讓你的微服務無障礙的順暢運作起來。

HDIS與Kubernetes或SpringCloud配合使用,能達到最佳效果。

注意

不同的平台有不同的用戶端,如java的Jredis,PHP的Predis和官方的用戶端redis-cli。

本例子使用的指令都是運作在redis-cli用戶端下的指令。

Redis不支援類型嵌套,比如散列類型的值不能是集合類型,等。

所有類型的值隻能是字元串。

基礎指令

KEYS key

獲得鍵清單

key支援通配符:

? 比對一個字元

  • 比對任意字元

    [] 比對括号間的字元

    ? 轉義字元

EXISTS key

判斷鍵是否存在,存在傳回1,不存在傳回0。

DEL key

删除鍵,成功傳回1,不成功傳回0,可以多個鍵,用空格間隔。

TYPE key

獲得鍵值的資料類型

Redis的資料類型是明确的,不同資料類型之間不能混用。

比如,散列類型的值不能是清單類型。

字元串類型

字元串類型是最基礎的類型,其他的類型其實都是不同格式的字元串類型。

SET key value

向緩存中注入一個鍵值對,成功傳回OK。

GET key

從緩存中通過鍵得到一個字元串,不存在時傳回空(nil)。

INCR key

某個鍵自增長,當初始化值不是整數時,會傳回錯誤。

散列類型

散列類型适合儲存類似于對象的這種資料

散列的組成為

鍵-字段-字段值

可以對應為對象的

對象-屬性-屬性值

HSET key filed value

設定某個散列(key)與散列中某個屬性(filed)字段與其字段的值(value)。

散列的新增和更新是自動判斷的

HGET key filed

擷取某個散列下某個屬性的值。

HMSET key filed value filed value filed value…

設定某個散列下多個屬性字段與字段值。

HMGET key filed filed filed…

擷取某個散列下多個屬性的值。

HGETALL key

擷取某個散列所有的屬性與屬性值。

HEXISTS key filed

判斷某個散列下某個屬性是否存在,是1,否0。

HSETNX key filed value

如果某個散列的屬性與屬性值,不存在就指派,存在就無操作。

HINCRBY key filed value

某個散列的某個屬性的屬性值自增長,當初始化值不是整數時,會傳回錯誤。

HDEL key filed

删除某個散清單中的某個屬性。

清單類型

清單類型内部使用的是雙向連結清單實作的,可以儲存一個有序的字元串清單。

借助清單,Redis還可以當做隊列使用,一定程度上能解決消息隊列的問題。

LPUSH key value value…

某清單(key)左端增加一個或多個元素,傳回值表示增加元素後清單的長度。

RPUSH key value value…

某清單右端增加一個或多個元素,傳回值表示增加元素後清單的長度。

LPOP key

某清單左邊彈出一個元素,傳回元素值

RPOP key

某清單右邊彈出一個元素,傳回元素值

LLEN key

擷取清單長度

LRANGE key start stop

擷取key中清單的片段

從start開始,stop結束

最左邊以0為開始值,傳回值包含stop元素

此指令不會删除該片段

負數索引表示從右向左,正數索引表示從左往右

LREM key count value

删除key清單中count個值為value的元素,傳回删除的個數。

count大于0表示從左往右

count小于0表示從右往左

count等于0表示删除所有值為value的數

集合類型

可以将集合類型當做一個set

SADD key value value…

向集合(key)中新增一個或多個元素,如果重複,則忽略,傳回成功加入元素的個數。

SREM key value value…

删除集合中一個或多個元素,傳回成功删除的個數

SMEMBERS key

傳回集合中所有元素

SISMEMBER key value

判斷value是否在集合中,存在傳回1,不存在傳回0。

SDIFF key1 key2 key3…

執行差集運算,key1-key2-key3,即屬于key1但不屬于key2和key3的值。

傳回結果為具體的值,而不是集合。

SINTER key1 key2 key3…

執行交集運算,所有屬于key1并屬于key2并屬于key3的值。

傳回結果為具體的值,而不是集合。

SUNION key1 key2 key3…

執行并集運算,key1+key2+key3,然後取得的值去重複。

傳回結果為具體的值,而不是集合。

有序集合類型

有序集合能比較容易的調整元素的位置,不像清單。

ZADD key score value score value score value…

向某個有序集合(key)中增加元素(value)與元素對對應的分數(score),傳回值是成功新增的個數。

score 分數,可以是整數也可以是雙精度浮點數。

value 值,值若重複,會用現在的分數替換原來的分數。

ZSCORE key value

獲得元素的分數,傳回值為分數。

ZRANGE key start stop [WITHSCORE]

ZREVRANGE key start stop [WITHSCORE]

按照score的排序獲得第start個到stop個的value。

start可以從0開始,獲得的資料包含stop。

WITHSCORE表示是否也傳回分數

ZRANGE為score的從小到大排序

ZREVRANGE為score的從大到小排序

ZRANGEBYSCORE key min max [WITHSCORE]

獲得指定分數範圍的元素,傳回值為value,排序方式為分數從小到大。

min可以用-inf表示負無窮,max可以用+inf表示正無窮。

WITHSCORE表示是否也傳回分數。

ZINCRBY key score value

給value元素增加score分,傳回值為增加後的分數。

負分可以表示減分。

如果指定的元素不存在,先指派0,再做增加。

繼續閱讀