網站首頁 編程語言 正文
redis刪除hash方式
在工作中遇到刪除hash類型的緩存時遇到了,怎樣也刪不掉redis里面的緩存,后來發現,hash類型和string類型的換成刪除方式不一樣,所以在這里做一下整理,后面再有遇到其他類型的,還會陸續的完善。
詳細如下:
針對hash類型的緩存刪除,函數:
因為需要刪除很多緩存內容,所以在common.php寫的公共函數進行調用,
function processredis($type,$id=false,$code=false){ ????????#這里的$type就是標識需要刪除哪一塊的緩存類型,根據這個類型刪除相應的緩存內容。 ????????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的特點是存儲鍵值對,也是無序不可重復的。
常用命令
(1)將鍵值對存入hash中:hset key field value
- 如果key是不存在的,會新建一個hash集。
- 如果field是hash中不存在,就加入該鍵值對。
- 如果field在hash中已經存在,就覆蓋原來的值。
- 返回值:返回1表示field在hash中不存在,返回0表所示已經存在。
(2)獲取指定hash集中該field的關聯值:hget key field
(3)存入多個值:hmset key field value [field value …]
- 取出多個值:hmget key field [field…]
(4)獲取hash集中所有的字段和值:hgetall key
- 顯然:返回的長度是原hash集長度的2倍。
(5)刪除hash中的值:hdel key field [field…]
- 如果field有不存在的,就忽略該field,繼續執行。
- 返回值:實際刪除元素的個數,不包括那些忽略的。
(6)獲取hash集中元素的個數:hlen key
(7)判斷hash中是否存在指定字段:hexists key field
- 返回值:1表示存在該字段,0表示該字段不存在,或者key不存在。
(8)獲取hash集中所有的字段名:hkeys key
- 獲取hash集中所有的值:hvals key
(9)hash集中指定字段值增加步長:hincrby key field i
- 返回值:執行成功后字段的值。
- 如果key哈希集不存在,則新建一個hash集,并把field的值置為0,再執行。
- 如果key存在,但field不存在,field也默認置為0。
(10)hash集中指定字段值增加float型步長:hIncrByFloat key field f
- 如果field的值類型不是String,或者增加的值f不能轉為浮點型,都會報錯。
(11)當不存在指定字段時才賦值:hsetnx key field value
- 如果key不存在,會創建一個新的hash集。
- 返回值:1表示字段是個新的字段,成功賦值。0表示字段已存在,不執行操作。
hash命令小結
增:
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
總結
原文鏈接:https://blog.csdn.net/Chaixiaotao/article/details/125225374
相關推薦
- 2022-07-07 Python如何使用type()函數查看數據的類型_python
- 2022-04-04 前端小技巧:關閉瀏覽器時觸發事件
- 2022-05-21 k8s入門集群組件介紹及概念理解_服務器其它
- 2022-10-20 Android?Flutter實現自定義下拉刷新組件_Android
- 2022-06-29 tomcat下部署jenkins的實現方法_Tomcat
- 2022-06-19 selenium?IDE自動化測試腳本的實現_其它綜合
- 2023-03-21 SQL數據庫的所有命令(函數、運算符)匯總大全_數據庫其它
- 2022-07-14 設置Redis最大占用內存的實現_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支