前面我们介绍 了 Redis的三种类型 string list set ,今天我们来介绍第四种 hash【这里我默认大家是见过这些常见的数据结构的哦】
白嫖者vsup主
Map
集合,
key-map!
时候
这个值是一个map集合
! 本质和
String
类型没有太大区别,还是一个简单的 key-vlaue!
------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> HSET myhash field hello // 插入 field(键) 值为 hello
- (integer) 1
- 127.0.0.1:6379> HSET myhash field world // 修改 field(键) 值为 world
- (integer) 0
- 127.0.0.1:6379> HGET myhash field // 根据 key 获取 value
- "world"
- 127.0.0.1:6379> HMSET myhash field1 zhangsan field2 lisi // 插入多个值
- OK
- 127.0.0.1:6379> HMGET myhash field field1 field2 // 获取多个值
- 1) "world"
- 2) "zhangsan"
- 3) "lisi"
- 127.0.0.1:6379> HGETALL myhash // 显示所有的 key-value
- 1) "field"
- 2) "world"
- 3) "field1"
- 4) "zhangsan"
- 5) "field2"
- 6) "lisi"
- 127.0.0.1:6379> HDEL myhash field // 删除 在 myhash 里的 key 为 field的 元素
- (integer) 1
- 127.0.0.1:6379> HGETALL myhash
- 1) "field1"
- 2) "zhangsan"
- 3) "field2"
- 4) "lisi"
------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> HGETALL myhash
- 1) "field1"
- 2) "zhangsan"
- 3) "field2"
- 4) "lisi"
- 127.0.0.1:6379> HLEN myhash // 长度 【更确切的说是 元素的个数】
- (integer) 2
------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> HGETALL myhash
- 1) "field1"
- 2) "zhangsan"
- 3) "field2"
- 4) "lisi"
- 127.0.0.1:6379> HEXISTS myhash field // 判断某个键 是否存在
- (integer) 0
- 127.0.0.1:6379> HEXISTS myhash field1
- (integer) 1
- 127.0.0.1:6379> HKEYS myhash // 只获取所有的key
- 1) "field1"
- 2) "field2"
- 127.0.0.1:6379> HVALS myhash // 只获取所有的value
- 1) "zhangsan"
- 2) "lisi
------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> HSET myhash field1 1
- (integer) 1
- 127.0.0.1:6379> hget myhash field1
- "1"
- 127.0.0.1:6379> HINCRBY myhash field1 1 // 按步长为1 增加
- (integer) 2
- 127.0.0.1:6379> HINCRBY myhash field1 5
- (integer) 7
- 127.0.0.1:6379> DECR myhash field1 2 // 没有减的命令
- (error) ERR wrong number of arguments for 'decr' command
- 127.0.0.1:6379> HDECR myhash field1 2
- (error) ERR unknown command 'HDECR'
- 127.0.0.1:6379> HINCRBY myhash field1 -3 // 要实现减少 直接 增加负数就行了
- (integer) 4
- 127.0.0.1:6379> HSETNX myhash field1 5 // 存在这个 key的话就设置失败
- (integer) 0
- 127.0.0.1:6379> hget myhash field1
- "4"
- 127.0.0.1:6379> HSETNX myhash field2 hello // 不存在就设置成功
- (integer) 1
- 127.0.0.1:6379> hget myhash field2
- "hello"
- ------------------------------------------------------------------------------------------------------------