**Redis數據類型:hash**
Redis的散列可以讓用戶將多個鍵值對存儲到一個Redis的鍵里面,散列非常適用于將一些相關的數據存儲在一起。類似map的一種結構,將結構化的數據,比如一個對象(前提是這個對象沒嵌套其他的對象)給緩存到redis中,以后每次讀寫內存時,就可以操作hash里的某個字段。
**1.1、hash內部編碼**
哈希類型的內部編碼有兩種:
- ziplist(壓縮列表):當哈希類型元素個數小于hash-max-ziplist-entries配置(默認512個)同時所有值都小于hash-max-ziplist-value配置(默認64字節)時使用。ziplist使用更加緊湊的結構實現多個元素的連續存儲,所以比hashtable更加節省內存。
- hashtable(哈希表):當ziplist不能滿足要求時,會使用hashtable。
**1.2、使用場景**
**1.2-1、存儲用戶信息**
由于hash類型存儲的是多個鍵值對,比如數據庫有以下一個用戶表結構
| id | name | age |
| ------------ | ------------ | ------------ |
| 1 | 小明 | 18 |
將以上信息存入redis,用表名:id作為key,用戶屬性作為值:
```bash
hset user:1 name 小明 age 18
```
使用哈希存儲會比字符串更加方便直觀.
我們可以通過hash這種數據類型實現關系型數據庫中數據表的存儲形式,同時,redis的字段列是不固定的,更加靈活,不會像關系數據庫一樣,產生冗余字段。
**1.2-2、存儲對象**
可以將一個對象的所有屬性以鍵值對的形式存儲在 Redis 的 Hash 類型中,然后可以通過 HGET 和 HMGET 命令來獲取對象的屬性值,通過 HSET 和 HMSET 命令來修改對象的屬性值。
**1.2-3、存儲配置信息**
可以將應用的各種配置以鍵值對的形式存儲在 Redis 的 Hash 類型中,然后可以通過 HSET 和 HMSET 命令來保存配置信息,通過 HGET 和 HMGET 命令來獲取配置信息。
- Redis介紹
- String類型的應用場景
- Hash類型的應用場景
- List類型應用場景
- Set類型應用場景
- Zset類型應用場景
- Redis官網
- 安裝Redis
- Redis配置文件詳解
- 配置Redis開機啟動
- Redis的命令行工具
- Redis的可視化管理軟件
- 各開發語言對應的Redis庫
- Server管理命令
- 通用命令
- String類型命令
- HASH類型命令
- LIST類型命令
- Set類型命令
- Sorted_Set類型命令
- ThinkPHP集成Redis
- SpringBoot集成Redis
- 實戰篇:優惠券功能概述
- 實戰篇:表單頁面實現
- 實戰篇:后端處理邏輯
- 實戰篇:優惠券類邏輯
- 實戰篇:優惠券列表
- 原理篇:Redis緩存雪崩
- 原理篇:Redis緩存擊穿
- 原理篇:Redis緩存穿透
- 進階篇:Redis的事務與持久化
- 進階篇:Redis集群
- 進階篇:Redis的發布訂閱模式
- 進階篇:Redis分布式鎖
- 進階篇:Redis分布式緩存
- 進階篇:一致性哈希
- 進階篇:Redis安全管理
- 進階篇:Redis性能優化