redis(哈希)

Redis 哈希(Hash)
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象

hdel key field1 …fieldN

描述:用于删除哈希表key中的一个或多个指定字段,不存在的字段被忽略

返回值:被成功删除字段的数量,不包括被忽略的字段

127.0.0.1:6379> hset myhash field1 "one" field2 "two"
(integer) 2
127.0.0.1:6379> hget myhash field2
"two"
127.0.0.1:6379> hdel myhash field3
(integer) 0
127.0.0.1:6379> hdel myhash field1
(integer) 1

hexists key field

描述:用于查看哈希表的指定字段是否存在

返回值:如果哈希表含有给定的字段,返回1,如果哈希表不含有给定字段,或key不存在,返回0.

127.0.0.1:6379> hset myhash field1 "foo"
(integer) 1
127.0.0.1:6379> hexists myhash field1
(integer) 1
127.0.0.1:6379> hexists myhash field4
(integer) 0

hget key_name field_value

描述:用于返回哈希表中指定字段的值

返回值:返回给定字段的值,如果给定的字段或key不存在时,返回nil

127.0.0.1:6379> hset site redis redis.com
(integer) 1
127.0.0.1:6379> hget site redis
"redis.com"
127.0.0.1:6379> hget site mysql
(nil)

hgetall

描述:用于返回哈希表中,所有的字段和值

返回值:以列表形式返回哈希表的字段及字段值,若key不存在,返回空列表

127.0.0.1:6379> hset myhash field1 "hello"
(integer) 0
127.0.0.1:6379> hset myhash field2 "world"
(integer) 0
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"

hincrby key field increment

描述:为哈希表key中的指定字段的整数值加上增量increment

返回值:执行hincrby命令之后,哈希表中字段的值

127.0.0.1:6379> hset myhash field 5
(integer) 1
127.0.0.1:6379> hincrby myhash field 1
(integer) 6
127.0.0.1:6379> hincrby myhash field -1
(integer) 5
127.0.0.1:6379> hincrby myhash field -10
(integer) -5
127.0.0.1:6379> hget myhash field
"-5"

hincrbyfloat key field increment

描述:为哈希表key中指定字段的浮点数值加上增量increment

返回值:执行hincrbyfloat之后,返回哈希表中字段的值

127.0.0.1:6379> hset mykey field 10.50
(integer) 1
127.0.0.1:6379> hincrbyfloat mykey field 0.1
"10.6"
127.0.0.1:6379> hincrbyfloat mykey field -5
"5.6"

hkeys key

描述:获取哈希表中的字段

返回值:包含哈希表中所有key,当key不存在时,返回一个空列表

127.0.0.1:6379> hset myhash field1 "foo"
(integer) 1
127.0.0.1:6379> hset myhash field2 "bar"
(integer) 1
127.0.0.1:6379> hkeys myhash
1) "field1"
2) "field2"
127.0.0.1:6379> hkeys myhash1
(empty list or set)

hlen key

描述: 获取哈希表中字段的数量

返回值:哈希表中的字段的数量,当key不存在时,返回0

127.0.0.1:6379> hset myhash field1 "foo"
(integer) 1
127.0.0.1:6379> hset myhash field2 "bar"
(integer) 1
127.0.0.1:6379> hlen myhash
(integer) 2

hmget key field1 [field2]

描述:获取所哟给定字段的值

返回值:一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样

127.0.0.1:6379> hset myhash field1 "foo"
(integer) 1
127.0.0.1:6379> hset myhash field2 "bar"
(integer) 1
127.0.0.1:6379> hmget myhash field1 field2
1) "foo"
2) "bar"

hmset key field1 value1 [field2 value2]

描述:同时将多个field-value(域-值)设置到哈希表中

127.0.0.1:6379> hmset myhash field1 "hello" field2 "world"
OK
127.0.0.1:6379> hget myhash field1
"hello"
127.0.0.1:6379> hget myhash field2
"world"

hset key field value

描述:将哈希表key中的字段field设置为value

返回:如果字段是哈希表中一个新建字段,并且值设置成功,返回1, 如果哈希表中域字段已经存在且旧值被新值覆盖,返回0

127.0.0.1:6379> hset myhash field1 "foo"
(integer) 1
127.0.0.1:6379> hset website google "www.g.n"
(integer) 1
127.0.0.1:6379> hset website google "www.google.com"
(integer) 0

hsetnx key field value

描述:只有在字段field不存在时,设置哈希表字段的值

返回值:设置成功,返回1, 如果给定字段已经存在且没有操作被执行,返回0

127.0.0.1:6379> hsetnx myhash field1 foo
(integer) 1
127.0.0.1:6379> hsetnx myhash field1 bar
(integer) 0
127.0.0.1:6379> hget myhash field1
"foo"

hvals key

描述:获取哈希表中所有的值

返回值:一个包含哈希表中所有域(field)值的列表,当key不存在时,返回一个空列表

127.0.0.1:6379> hset myhash field1 foo
(integer) 1
127.0.0.1:6379> hset myhash field2 bar
(integer) 1
127.0.0.1:6379> hvals myhash
1) "foo"
2) "bar"
发布了99 篇原创文章 · 获赞 72 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/wj123446/article/details/90583961