数据结构
其实 redis的 hash类型就是一个嵌套map的结构, 其实就像一个小号的redis
可以看作是一张表 user:n 为key, 但是表的列可以不同
hash的常用命令
-
hset
hset key field value
将哈希表key中的域field的值设为value
如果key不存在,一个新的哈希表被创建并进行HSET操作
如果field是哈希表中的一个新建域,并且值设置成功,返回1
如果域field已经存在于哈希表中,旧值将被覆盖,返回0 -
hsetnx
hsetnx key field value
将哈希表key中的域field的值设置为value,当且仅当域field不存在。
如果field已经存在,该操作无效,返回0。
如果key不存在,一个新哈希表被创建并执行HSETNX命令。
-
hget
hget key field
返回哈希表key中给定域field的值
如果域field存在,给定域的值,当给定域不存在或是给定key不存在时,返回nil
-
hmset
hmset key field value [field value …]
同时将多个field - value(域-值)对设置到哈希表key中
如果命令执行成功,返回OK。当key不是哈希表(hash)类型时,返回一个错误
-
hmget
hmget key field [field …]
返回哈希表key中,一个或多个给定域的值,顺序和给定域参数的请求顺序一样
-
hgetall
hgetall key
返回哈希表key中,所有的域和值。
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍
若key不存在,返回空列表
-
hkeys
hkeys key
返回哈希表key中的所有域
当key不存在时,返回一个空表
-
hvals
hvals key
返回哈希表key中的所有值
当key不存在时,返回一个空表
-
hdel
hdel key [key……]
删除哈希表key中的一个或多个指定域,不存在的域将被忽略
-
hlen
hlen key
返回哈希表key中域的数量
当key不存在时,返回0