redis hash命令

redis中的hash类型可以看成是使一个map容器,所以该类型适合于存储值对象的信息。hash的特点是占用的磁盘空间很少。

赋值:

hset key field value:为指定的key设定field/value对

hmset key field1 value1 filed2 value2 ... 设置key中的多个field/value 对


取值:

hget key field:返回指定的key中field的值

hmget key fields:获取key中多个fields的值

hgetall key:取得key中所有的field/value对


删除:

hdel key field:删除key中field对应的值

del key:删除指定的key


其他命令:

hincrby key field increment:设置key中field所对应的值增加increment(只能为数值)

hexists key field:判断key中field是否存在

hlen key:获得key所包含的field的数量

hkeys key:获得key中所有的field

hvals key:获得key中所有的value













### Redis Hash 数据结构及相关命令 Redis 的 `Hash` 是一种用于存储键值对集合的数据结构,特别适用于对象建模。它允许开发者高效地操作哈希表中的字段及其对应的值。以下是关于 Redis Hash 命令的详细介绍以及一些常见用法。 #### 1. 查询 Hash 大小 要获取某个 Hash 键中包含的字段数量,可以使用 `HLEN key` 命令。此命令返回指定 Hash 中字段的数量[^1]。 ```bash HLEN myhash ``` #### 2. 插入和更新字段 向 Hash 添加或修改字段可以通过 `HSET key field value` 实现。如果字段已存在,则会覆盖其旧值;如果不存在,则新增该字段[^2]。 ```bash HSET user:1000 username "Alice" ``` #### 3. 获取单个字段值 通过 `HGET key field` 可以检索特定字段的值。如果没有找到对应字段,则返回空字符串或 nil。 ```bash HGET user:1000 username ``` #### 4. 批量插入多个字段 为了简化多次调用的操作,可利用 `HMSET key field1 value1 [field2 value2 ...]` 同时设置多个字段。 ```bash HMSET user:1000 username "Bob" age 28 gender "male" ``` > **注意**: 自 Redis 4.0 起推荐改用更灵活的语法形式替代 HMSET 即 HSET 支持多参数输入. #### 5. 删除字段 删除一个或多个字段可通过执行 `HDEL key field1 [field2 ...]` 完成。 ```bash HDEL user:1000 age ``` #### 6. 判断字段是否存在 验证某字段是否存在于指定的 Hash 中可用 `HEXISTS key field` ,成功匹配则返回整数 `1` 表示存在,反之为 `0`。 ```bash HEXISTS user:1000 username ``` #### 7. 返回所有字段名 列举出整个 Hash 下的所有字段名称采用 `HKEYS key` 来完成。 ```bash HKEYS user:1000 ``` #### 8. 返回所有字段值 提取全部字段关联的具体数值运用 `HVALS key` 达到目的。 ```bash HVALS user:1000 ``` #### 9. 遍历所有的字段-值组合 对于需要一次性取得完整的映射关系的情况,可以选择 `HGETALL key` 。这将给出由字段与相应值得交替组成的数组。 ```bash HGETALL user:1000 ``` #### 10. 设置过期时间 虽然原生 Hash 并不支持逐条记录独立设定 TTL(Time To Live),但是我们能够针对整体 Key 施加时效控制。例如下面例子展示了如何让名为 `session:id` 的 session 在五分钟后自动清除[^5]: ```bash EXPIRE session:id 300 ``` --- ### 示例代码片段 以下是一个综合性的 Python 脚本演示上述部分功能: ```python import redis # 初始化客户端实例 r = redis.StrictRedis(host='localhost', port=6379, decode_responses=True) # 清理测试环境残留数据 r.delete('user:1') # 新增/编辑用户资料 r.hset('user:1', mapping={ 'name': 'John Doe', 'age': '30', 'email': 'john.doe@example.com' }) print(r.hgetall('user:1')) # 展示全貌 {'name': 'John Doe', 'age': '30', 'email': 'john.doe@example.com'} print(r.hlen('user:1')) # 统计项数 3 print(r.exists('user:1')) # 检查key的存在状态 True (1) print(r.ttl('user:1')) # 查看剩余存活秒数 -1(永久有效) # 设定生命周期 r.expire('user:1', time=60*60) # 将生存周期设为一小时 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qingwage222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值