Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)
生活随笔
收集整理的這篇文章主要介紹了
Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Redis 的字典是無序字典。Redis 的字典的值只能是字符串,當 hash 移除了最后一個元素之后,該數據結構自動被刪除,內存被回收。
hash 結構也可以用來存儲用戶信息,不同于字符串一次性需要全部序列化整個對象,hash 可以對用戶結構中的每個字段單獨存儲。這樣當我們需要獲取用戶信息時可以進行部分獲取。而以整個字符串的形式去保存用戶信息的話就只能一次性全部讀取,這樣就會比較浪費網絡流量。
hash 也有缺點,hash 結構的存儲消耗要高于單個字符串,到底該使用 hash 還是字符串,需要根據實際情況再三權衡。
1. hash 類型相關命令
| 命令 | 說明 |
|---|---|
| hset key field value | 設置hash里面一個字段的值 |
| hget key field | 獲取hash中field的值 |
| hexists key field | 判斷field是否存在hash中 |
| hgetall key | 從hash中讀取全部的域和值 |
| hkeys key | 獲取hash 中所有field |
| hvals key | 獲取hash的所有值 |
| hlen key | 獲取hash中所有字段的數量 |
| hdel key field[field…] | 刪除一個或多個hash的field |
| hmget key field[field…] | 獲取hash里面指定字段的值 |
| hmset key field[field…] | 設置hash字段值 |
| hsetnx key field value | 設置hash的一個字段,只有這個字段不存在是有效 |
| hstrlen key field | 獲取hash里面指定field的長度(Redis 版本>= 3.2.0) |
| hscan key cursor | 迭代hash里面的元素 |
| hincrby key field increment | 將hash中指定域的值增加給定的值 |
| hincrbyfloat key field increment | 將hash中指定域的值增加給定的浮點數 |
2. 使用示例
127.0.0.1:6379> hset student name "jack"
(integer) 1
127.0.0.1:6379> hget student name
"jack"
127.0.0.1:6379> hexists student name
(integer) 1
127.0.0.1:6379> hexists student gender
(integer) 0
127.0.0.1:6379> hset student gender "male"
(integer) 1
127.0.0.1:6379> hgetall student
1) "name"
2) "jack"
3) "gender"
4) "male"
127.0.0.1:6379> hkeys student
1) "name"
2) "gender"
127.0.0.1:6379> hvalues student
(error) ERR unknown command 'hvalues'
127.0.0.1:6379> hvals student
1) "jack"
2) "male"
127.0.0.1:6379> hlen student
(integer) 2
127.0.0.1:6379> hmget student name gender
1) "jack"
2) "male"
127.0.0.1:6379> hmset student grade 90 country "USA"
OK
127.0.0.1:6379> hmget student name grade gender country
1) "jack"
2) "90"
3) "male"
4) "USA"
127.0.0.1:6379> hdel student country
(integer) 1
127.0.0.1:6379> hgetall student
1) "name"
2) "jack"
3) "gender"
4) "male"
5) "grade"
6) "90"
127.0.0.1:6379>
127.0.0.1:6379> hmset student grade 90 country "USA"
OK
127.0.0.1:6379> hgetall
(error) ERR wrong number of arguments for 'hgetall' command
127.0.0.1:6379> hgetall student
1) "grade"
2) "90"
3) "country"
4) "USA"
127.0.0.1:6379> hstrlen student grade
(integer) 2
127.0.0.1:6379> hstrlen student country
(integer) 3
127.0.0.1:6379>
127.0.0.1:6379> hgetall student
1) "grade"
2) "90"
3) "country"
4) "USA"
127.0.0.1:6379> hincrby student grade 5
(integer) 95
127.0.0.1:6379> hgetall student
1) "grade"
2) "95"
3) "country"
4) "USA"
127.0.0.1:6379>
總結
以上是生活随笔為你收集整理的Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 笔记(04)— list类型
- 下一篇: Redis 笔记(06)— set 类型