首页 > 代码库 > 三、Redis基础命令--hash
三、Redis基础命令--hash
1、散列(hash)类型的字段值只能是字符串类型,不支持其他数据类型。即:散列类型内部不能嵌套其他类型。
每个键最多能容纳的字段数量与列表相同都是 2^32 - 1 个元素。内部用来存储字段数量的变量类型应该是Integer,因为一个整形是4个字节,每个字节8位,刚好32位,最大数字就是 2^32-1 个(包括0)。
127.0.0.1:6379> HGET car name
"BMW"
127.0.0.1:6379> HGETALL car
1) "name"
2) "BMW"
127.0.0.1:6379> HGETALL car
1) "name"
2) "BMW"
3) "price"
4) "55"
127.0.0.1:6379> HINCRBY per age3 20
(integer) 20
8、HDEL 删除一个或者多个字段,返回删除字段的个数。KEY 不存在或者字段不存在返回0
2、Reids的其他数据类型同样不支持数据类型嵌套。如 集合类型的每个元素都只能是字符串。
3、HSET 设置单个字段 ,HGET 获取单个字段,HGETALL 获取指定key的所有字段 ,KEY区分大小写
127.0.0.1:6379> HSET car name BMW
(integer) 0127.0.0.1:6379> HGET car name
"BMW"
127.0.0.1:6379> HGETALL car
1) "name"
2) "BMW"
127.0.0.1:6379> HGETALL car
1) "name"
2) "BMW"
3) "price"
4) "55"
4、HMSET 设置多个字段,HMGET获取多个字段
127.0.0.1:6379> HMSET person name klov age 23 sex men
OK
OK
127.0.0.1:6379> HMGET person name age
1) "klov"
2) "23"
1) "klov"
2) "23"
5、HEXISTS 判断指定字段是否存在。字段存在返回1,不存在返回0;key不存在也返回0
127.0.0.1:6379> HEXISTS person name
(integer) 1
127.0.0.1:6379> HEXISTS person addr
(integer) 0
127.0.0.1:6379> HEXISTS per name
(integer) 0
(integer) 1
127.0.0.1:6379> HEXISTS person addr
(integer) 0
127.0.0.1:6379> HEXISTS per name
(integer) 0
6、HSETNX 指定字段不存在时赋值;该操作是原子操作,不用担心竟态条件;返回赋值个数(成功赋值返回1,否则返回0)。key不存在时也表示字段不存在,创建KEY并赋值。
127.0.0.1:6379> HSETNX person age 23
(integer) 0
127.0.0.1:6379> HSETNX person age 24
(integer) 0
127.0.0.1:6379> HSETNX person addr 24
(integer) 1
127.0.0.1:6379> HSETNX per age 24
(integer) 1
(integer) 0
127.0.0.1:6379> HSETNX person age 24
(integer) 0
127.0.0.1:6379> HSETNX person addr 24
(integer) 1
127.0.0.1:6379> HSETNX per age 24
(integer) 1
内部实现就是判断HEXIST返回值。伪代码:
isExist = HEXISTS person age
if isExist is 0 ---- 字段age不存在OR key person不存在
HSET person age 25
return 1
else
return 0
7、HINCRBY 增加指定的数字,和INCRBY命令类似。返回增加后的数字
127.0.0.1:6379> HINCRBY person age 20
(integer) 43
127.0.0.1:6379> HGET person age
"43"
(integer) 43
127.0.0.1:6379> HGET person age
"43"
KEY或者字段不存在时都默认是0
127.0.0.1:6379> HINCRBY person age2 20
(integer) 20127.0.0.1:6379> HINCRBY per age3 20
(integer) 20
8、HDEL 删除一个或者多个字段,返回删除字段的个数。KEY 不存在或者字段不存在返回0
127.0.0.1:6379> HDEL per age3
(integer) 1
127.0.0.1:6379> HDEL person age name
(integer) 2
(integer) 1
127.0.0.1:6379> HDEL person age name
(integer) 2
9、HKEYS\HVALS key获取指定KEY的所有字段\值
127.0.0.1:6379> HKEYS person
1) "sex"
2) "addr"
3) "age2"
127.0.0.1:6379> HVALS person
1) "men"
2) "24"
3) "20"
1) "sex"
2) "addr"
3) "age2"
127.0.0.1:6379> HVALS person
1) "men"
2) "24"
3) "20"
10、HLEN key 获取指定key的所有字段的数量
127.0.0.1:6379> HLEN person
(integer) 3
(integer) 3
三、Redis基础命令--hash
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。