redis命令-hash(哈希表)

1、hset

hset key field value

  1. key的field值设为value
  2. 如果key不存在,会新建一个hash表并操作
  3. 返回值:如果field是新建字段,返回1; 如果field字段已经存在旧值被新值覆盖返回0
127.0.0.1:6379> hset score tom 70   // tom不存在返回1
(integer) 1
127.0.0.1:6379> hset score tom 80   // tom的分数被覆盖为80,返回0
(integer) 0

2、hsetnx

hsetnx key field value

  1. field字段不存在时,将field字段值设为value,返回1
  2. 如果field已存在,返回0
127.0.0.1:6379> hsetnx score tom 90
(integer) 1
127.0.0.1:6379> hsetnx score tom 90  //已存在返回0 
(integer) 0

3、hmset

hmset key field1 value1 field2 value2 ...

  1. 一次设置多个字段的值
  2. 成功返回OK,失败返回error(key类型不是hash)
127.0.0.1:6379> hmset score tom 90 bob 100
OK
127.0.0.1:6379> set test 1
OK
127.0.0.1:6379> hmset test tom 80  //非hash类型报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value

4、hget

hget key field

  1. 返回值为hash表中field字段的值
  2. 如果key不存在或者field字段不存在,返回nil
127.0.0.1:6379> hget score tom
"80"
127.0.0.1:6379> hget score bob
(nil)

5、hmget

hmget key field1 field2 ...

  1. 返回值为hash表key中,field1,field2 ...字段的值
  2. 字段不存在值为nil
127.0.0.1:6379> hmget score tom bob alice
1) "90"
2) "100"
3) (nil)

6、hgetall

hgetall key

  1. 返回哈希表key中,所有的字段和值
  2. key不存在则返回空列表
127.0.0.1:6379> hgetall score
1) "tom"
2) "90"
3) "bob"
4) "100"
127.0.0.1:6379> hgetall test
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> hgetall no_exists
(empty list or set)

7、hdel

hdel key field1 field2 ...

  1. 删除哈希表key的一个或多个字段,不存在的field将忽略
  2. 返回值为成功删除的数量
127.0.0.1:6379> hset score tom 70
(integer) 0
127.0.0.1:6379> hdel score tom alice
(integer) 1

8、hlen

hlen key

  1. 哈希表中key的字段数
127.0.0.1:6379> hset score tom 70
(integer) 0
127.0.0.1:6379> hset score bob 80
(integer) 0
127.0.0.1:6379> hlen score
(integer) 2

9、hexists

hexists key field

  1. 哈希表key的field字段是否存在
127.0.0.1:6379> hset score tom 70
(integer) 1
127.0.0.1:6379> hexists score tom
(integer) 1
127.0.0.1:6379> hexists score bob
(integer) 0

10、hincrby

hincrby key field num

  1. filed字段值增加num
127.0.0.1:6379> hset score tom 70
(integer) 0
127.0.0.1:6379> hincrby score tom 5
(integer) 75
127.0.0.1:6379> hget score tom
"75"

11、hkeys

hkeys key

  1. 哈希表key的所有字段
  2. key不存在返回空列表
127.0.0.1:6379> hset score tom 70
(integer) 0
127.0.0.1:6379> hset score bob 80
(integer) 1
127.0.0.1:6379> hkeys score
1) "tom"
2) "bob"

12、hvals

hvals key

  1. 返回值为哈希表key所有值的列表
  2. key不存在返回空列表
127.0.0.1:6379> hset score tom 70
(integer) 0
127.0.0.1:6379> hset score bob 80
(integer) 1
127.0.0.1:6379> hvals score
1) "70"
2) "80"
127.0.0.1:6379> hvals no_exists
(empty list or set)

13、hincrbyfloat

hincrbyfloat key field increment

  1. 哈希表key的filed字段值增加increment
  2. 返回值为增加后的值
127.0.0.1:6379> hset score tom 70
(integer) 0
127.0.0.1:6379> hincrbyfloat score tom 70.1
"140.10000000000000001"

14、hscan

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。