Redis五大数据类型之Hash
Posted 王六六的IT日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis五大数据类型之Hash相关的知识,希望对你有一定的参考价值。
Redis 概述
五大数据类型
1.String(字符串)
2.List(列表)
3.Set(集合)
4.Hash(哈希)
Map集合,key-map!
这时候这个值是一个map集合!
hash本质和String类型没有太大区别,还是一个简单的key-vlaue! set myhash field wanzi
命令为h
开头
hset 、hget、hmset(set多个)、hmget(获取多个)、hgetall(查看全部)、hdel(删除)
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> hset myhash field1 wanzi # set一个具体 key-vlaue
(integer) 1
127.0.0.1:6379> hget myhash field1 # 获取一个字段值
"wanzi"
127.0.0.1:6379> hmset myhash field1 hello field2 world # set多个 key-vlaue
OK
127.0.0.1:6379> hmget myhash field1 field2 # 获取多个字段值
1) "hello"
2) "world"
127.0.0.1:6379> hgetall myhash # 获取全部的数据
1) "field1"
2) "hello"
3) "field2"
4) "world"
127.0.0.1:6379> hdel myhash field1 # 删除hash指定key字段!对应的value值也就消失了
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
获取长度 hlen
127.0.0.1:6379> hmset myhash field1 hello field2 world
OK
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379> hlen myhash # 获取hash表的字段数量
(integer) 2
hexists
判断hash中指定字段是否存在
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379> hexists myhash field1
(integer) 1
127.0.0.1:6379> hexists myhash field3
(integer) 0
hkeys
只获得所有field
hvals
只获得所有value
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379> hkeys myhash # 只获得所有field
1) "field2"
2) "field1"
127.0.0.1:6379> hvals myhash # 只获得所有value
1) "world"
2) "hello"
指定增量(incr decr)👉 hincrby
127.0.0.1:6379> hset myhash field3 5 #指定增量
(integer) 1
127.0.0.1:6379> hincrby myhash field3 -1 #-1相当于hdecrby
(integer) 4
是否存在 hsetnx
127.0.0.1:6379> hsetnx myhash field4 "hello" # 如果不存在则可以设置
(integer) 1
127.0.0.1:6379> hsetnx myhash field4 "world" # 如果存在则不能设置
(integer) 0
hash变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息。
存储: hash 更适合于对象的存储,String更加适合字符串存储。
以上是关于Redis五大数据类型之Hash的主要内容,如果未能解决你的问题,请参考以下文章