Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
使用场景 : 用户信息
hset : 新建一个哈希表,设置成功返回1,如果已存在覆盖旧值,返回0(值可以为''")
127.0.0.1:6379> hset yhq name yhq (integer) 1 127.0.0.1:6379> hset yhq name qhh (integer) 0
hmset: 新建一个哈希表,设置多个k-v,如果已存在会覆盖,成功返回ok(值可以为''")
127.0.0.1:6379> hmsetqhh name yhq age 24 sex 0
OK
hsetnx : 当哈希表不存在时创建并设置且成功返回1,如果已存在无效,返回0
127.0.0.1:6379> hsetnx yhqqhh name qhh (integer) 1 127.0.0.1:6379> hsetnx yhqqhh name yhq (integer) 0
hstrlen : 获取指定字段值的长度
127.0.0.1:6379> hmset myhash f1 HelloWorld f2 99 f3 -256 OK 127.0.0.1:6379> hstrlen myhash f1 (integer) 10 127.0.0.1:6379> hstrlen myhash f2 (integer) 2 127.0.0.1:6379> hstrlen myhash f3 (integer) 4
hget : 获取哈希表字段的值,不存在返回nil
127.0.0.1:6379> hget yhq name "qhh" 127.0.0.1:6379> hget qhh name "yhq" 127.0.0.1:6379> hget qhh age "24" 127.0.0.1:6379> hget qhh sex "0" 127.0.0.1:6379> hget yhq id (nil)
hgetall : 获取哈希表所有k-v,不存在返回空列表
127.0.0.1:6379> hgetall qhh 1) "name" 2) "yhq" 3) "age" 4) "24" 5) "sex" 6) "0" 127.0.0.1:6379> hgetall q (empty list or set)
hmget : 获取一个或多个给定的值,不存在返回nil
127.0.0.1:6379> hmget qhh name age a
1) "yhq"
2) "24"
3) (nil)
hdel : 删除一个或者多个哈希表字段,不存在忽略,返回删除字段的个数
127.0.0.1:6379> hgetall qhh 1) "name" 2) "1" 3) "age" 4) "2" 127.0.0.1:6379> hdel qhh age a (integer) 1 127.0.0.1:6379> hgetall qhh 1) "name" 2) "1"
hexists : 查询哈希表字段是否存在,存在返回1,不存在返回0
127.0.0.1:6379> hgetall must 1) "name" 2) "" 3) "age" 4) "1" 127.0.0.1:6379> hexists must name (integer) 1 127.0.0.1:6379> hexists must na (integer) 0
hkeys : 返回哈希表所有的k,key不存在返回空列表
127.0.0.1:6379> hkeys must 1) "name" 2) "age" 127.0.0.1:6379> hkeys must1 (empty list or set)
hvals : 返回哈希表所有k值,key不存在返回空列表
127.0.0.1:6379> hvals must 1) "" 2) "1" 127.0.0.1:6379> hvals must1 (empty list or set)
hlen : 返回哈希表字段数量,key不存在返回0
127.0.0.1:6379> hlen must (integer) 2
hincrby : 对哈希表字段进行数值增删修改,字段串返回错误,如果不存在则执行创建操作
127.0.0.1:6379> hincrby yhq name 100 (integer) 100 127.0.0.1:6379> hgetall yhq 1) "name" 2) "100" 127.0.0.1:6379> hset yhq sex n (integer) 1 127.0.0.1:6379> hincrby yhq sex 100 (error) ERR hash value is not an integer 127.0.0.1:6379> hincrby yhq name -100 (integer) 0 127.0.0.1:6379> hgetall yhq 1) "name" 2) "0" 3) "sex" 4) "n"
hincrbyfloat : 对哈希表字段进行数值增删浮点值修改,字段串返回错误,如果不存在则执行创建操作
127.0.0.1:6379> hincrbyfloat yhq size 1.1 "1.1" 127.0.0.1:6379> hincrbyfloat yhq name yhq (error) ERR value is not a valid float 127.0.0.1:6379> hincrbyfloat yhq size -11.11 "-10.01" 127.0.0.1:6379> hgetall yhq 1) "size" 2) "-10.01"
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Redis之哈希(hashes)类型命令 - Python技术站