hand
_1_31_17
4
返回栏目
0k
0.5k
0.7k
0.3k
0.7k
0.4k
0k
0k
2k
1k
1k
1k
0.9k
0.4k
0.6k
0.2k
2k
0.7k
0.8k
2k
0.8k
0.6k
0.3k
0.7k
0.5k
1k
0.3k
0.1k
0.1k
0.2k
0.2k
0.3k
0k
0k
0.1k
0k
0k
0.7k
0.2k
0.1k
0.2k
0k
0.7k
0.7k
0.7k
1k
返回Redis数据库栏目
作者:
贺及楼
成为作者
更新日期:2024-03-26 16:53:19
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>
用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储
key | <field> | <value> |
---|---|---|
john | sex | boy |
age | 20 | |
color | white | |
Lisa | sex | girl |
age | 20 | |
color | pink |
"xxx" key有空格加双引号
命令 | 解释 | 成功 | 失败 | 空值 |
---|---|---|---|---|
hset <key><field><value> |
增 - 单 - 赋值<value> | 返回int(1),覆盖返回int(0) | ||
hsetnx <key><field><value> |
增 - 单 - 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 . | (integer) 1 | (integer) 0 | |
hmset <key1><field1><value1><field2><value2>... |
增 - 多 - 批量设置hash的值 | 返回ok | ||
hget <key1><field> |
查 - 单 - 指定 value | 返回值 | (nil) | |
hmget key filed1....fieldN |
查 - 多 - 获取全部指定的 hash filed的值 | 返回值 | (nil) | |
hkeys <key> |
查 - 多 - 所有field | 返回值 | (empty list or set) | (empty list or set) |
hvals <key> |
查 - 多 - 所有value | 返回值 | (empty list or set) | (empty list or set) |
hgetall <key> |
查 - 多 - 所有 filed 和 value | 返回值 | (empty list or set) | (empty list or set) |
hlen <key> |
查 - 多 - 返回指定 hash的field数量。 | 存在(integer) 1,不存在(integer) 0 | ||
HSTRLEN <key> <field> |
查 - 多 - 返回指定 hash的field的value的str数量 | 存在(integer) 1,不存在(integer) 0 | ||
hexists <key> <field> |
查 - 单 - 检测指定 field 是否存在 | 存在(integer) 1,不存在(integer) 0 | ||
hincrby <key><field><increment> |
改 - 单 - 为哈希表 key 中的域 field 的值加上增量 1 -1。注意:如果value是str会返回(integer) 1 | (integer) 150 | (error) ERR hash value is not an integer | |
hincrbyfloat <key><field><increment> |
改 - 单 - 为哈希表 key 中的域 field 的值加上增量 1.0 -1.0 | “4.5” | ||
hdel <key> <field> |
删 - 单 - 删除指定的 hash field。 | 成功删除的个数(integer) 1 | 不存在(integer) 0 | |
hash-max-zipmap-entries 64 |
设置 - 配置字段最多 64 个 | |||
hash-max-zipmap-value 512 |
设置 - 配置 value 最大为 512 字节 |
新建一个 hash 对象时开始是用zipmap(又称为 small hash)来存储的。这个zipmap 其实并不是 hash table,但是zipmap 相比正常的 hash 实现可以节省不少 hash本身需要的一些元数据存储开销。尽管 zipmap 的添加,删除,查找都是 O(n),但是由于一般对象的 field数量都不太多。所以使用 zipmap 也是很快的,也就是说添加删除平均还是 O(1)。如果 field或者value的大小超出一定限制后,redis会在内部自动将zipmap替换成正常的hash实现.这个限制可以在配置文件中指定。
Redis数据库
整章节共46节
快分享给你的小伙伴吧 ~