redis中,哈希類型的也是鍵值對,而值本身又是一個鍵值對結構,形如value={{field1,value1}...{fieldN,valueN}}的Hashes基本看成java中的map,通過key value的形式保存數據。
1. 常用命令
- hset hget hdel hgetall 用於操作的設置,獲取,刪除,獲取全部key-value的操作。
- hexists hlen 判斷field是否存在以及獲取field的數量。
- hsetnx不存在的時候才進行設置
- hincrby hincrbyfloat原子加操作
- hkeys hvalues 獲取所有filed和所有value
- hmget hmset 批量獲取,設置
2. 內部編碼
a. ziplist: filed count < hash-max-ziplist-entries(512 by default)
b. hashtable: 無法滿足ziplist的條件時。
3. 應用場景
微信聊天消息記錄:每個聊天室(羣)可以是一個hash key,hash value的filed是用戶ID,value是聊天內容。