redis(哈希)

    xiaoxiao2025-09-29  46

    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"
    最新回复(0)