Redis Hash命令

hset key field value 设置hash field为指定值,如果key不存在,则先创建

hsetnx key field value 设置,仅当field不存在时,如果field已存在则操作失效。

hget key field  获取指定的hash field
hmget key filed1....fieldN 获取全部指定的hash filed
hmset key filed1 value1 ... filedN valueN 同时设置hash的多个field

hincrby key field integer 将指定的hash filed 加上给定值, 不存在会自动创建

hincrbyfloat key field integer 将指定的hash filed 加上给浮点数

hexists key field 测试指定field是否存在
hdel key field 删除指定的hash field
hlen key 返回指定hash的field数量
hkeys key 返回hash的所有field
hvals key 返回hash的所有value

hgetall 返回hash的所有filed和value



参考:http://redis.readthedocs.org/en/latest/index.html

### 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值