redis刪除hash的實現(xiàn)方式
redis刪除hash方式
在工作中遇到刪除hash類型的緩存時遇到了,怎樣也刪不掉redis里面的緩存,后來發(fā)現(xiàn),hash類型和string類型的換成刪除方式不一樣,所以在這里做一下整理,后面再有遇到其他類型的,還會陸續(xù)的完善。
詳細如下:
針對hash類型的緩存刪除,函數(shù):
因為需要刪除很多緩存內(nèi)容,所以在common.php寫的公共函數(shù)進行調(diào)用,
function processredis($type,$id=false,$code=false){ ????????#這里的$type就是標識需要刪除哪一塊的緩存類型,根據(jù)這個類型刪除相應(yīng)的緩存內(nèi)容。 ????????if($type==1){ ? ? ? ? ? ? ? ? #hash類型 ????????????????$XXXXXheart = $id; ? ? ? ? ????????if($XXXXXheart ){ ? ? ? ? ? ? ????????$key ? ? ? ?= "{$XXXXXheart }"; ? ? ? ? ? ? ????????$redisXXXid = $redisModel->hashDel("XXXXXX:XXXXXXX:XXXXX",$key); ? ? ? ? ????????} ????????}elseif($type == 2) { ? ? ? ? ????????#string類型緩存 ? ? ? ? ????????$chNum = $id; ? ? ? ? ????????if($chNum != null){ ? ? ? ? ? ? ????????$key ? ? ? ?= "XXXXX:XXXXX:XXXX:".$chNum ; ? ? ? ? ? ? ????????$redisXXXXid = $redisModel->delete($key); ? ? ? ? ????????} ? ? ???} }
redis之hash類型解讀
redis中存取hash類型
Hash類型保存的值是一個map集合,又因為redis是key-value類型,故hash類型在redis中是key - map,即key - <field,value>。
Map的特點是存儲鍵值對,也是無序不可重復(fù)的。
常用命令
(1)將鍵值對存入hash中:hset key field value
- 如果key是不存在的,會新建一個hash集。
- 如果field是hash中不存在,就加入該鍵值對。
- 如果field在hash中已經(jīng)存在,就覆蓋原來的值。
- 返回值:返回1表示field在hash中不存在,返回0表所示已經(jīng)存在。
(2)獲取指定hash集中該field的關(guān)聯(lián)值:hget key field
(3)存入多個值:hmset key field value [field value …]
- 取出多個值:hmget key field [field…]
(4)獲取hash集中所有的字段和值:hgetall key
- 顯然:返回的長度是原h(huán)ash集長度的2倍。
(5)刪除hash中的值:hdel key field [field…]
- 如果field有不存在的,就忽略該field,繼續(xù)執(zhí)行。
- 返回值:實際刪除元素的個數(shù),不包括那些忽略的。
(6)獲取hash集中元素的個數(shù):hlen key
(7)判斷hash中是否存在指定字段:hexists key field
- 返回值:1表示存在該字段,0表示該字段不存在,或者key不存在。
(8)獲取hash集中所有的字段名:hkeys key
- 獲取hash集中所有的值:hvals key
(9)hash集中指定字段值增加步長:hincrby key field i
- 返回值:執(zhí)行成功后字段的值。
- 如果key哈希集不存在,則新建一個hash集,并把field的值置為0,再執(zhí)行。
- 如果key存在,但field不存在,field也默認置為0。
(10)hash集中指定字段值增加float型步長:hIncrByFloat key field f
- 如果field的值類型不是String,或者增加的值f不能轉(zhuǎn)為浮點型,都會報錯。
(11)當不存在指定字段時才賦值:hsetnx key field value
- 如果key不存在,會創(chuàng)建一個新的hash集。
- 返回值:1表示字段是個新的字段,成功賦值。0表示字段已存在,不執(zhí)行操作。
hash命令小結(jié)
增:
Hset key field value
Hmset key field value [field value …]
Hsetnx key field value
刪:
Hdel key field [field…]
查:
Hget key field
Hmget key field [field…]
Hgetall key
Hexists key field
Hkeys key
Hvals key
改:無
其他:
Hincrby key field i
HincrbyFloat key field f
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Redis?異常?read?error?on?connection?的解決方案
這篇文章主要介紹了Redis異常read?error?on?connection的解決方案,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-08-08Redis中統(tǒng)計各種數(shù)據(jù)大小的方法
這篇文章主要介紹了Redis中統(tǒng)計各種數(shù)據(jù)大小的方法,本文使用PHP實現(xiàn)統(tǒng)計Redis內(nèi)存占用比較大的鍵,需要的朋友可以參考下2015-03-03Redis 的查詢很快的原因解析及Redis 如何保證查詢的高效
由于redis是內(nèi)存數(shù)據(jù)庫,歸功于它的數(shù)據(jù)結(jié)構(gòu)所以查詢效率非常高,今天通過本文給大家介紹下Redis 的查詢很快的原因解析及Redis 如何保證查詢的高效,感興趣的朋友一起看看吧2022-03-03redis字符串類型_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了redis字符串類型的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08