redis存入hash,key=>value和key=>(key=>value)使用Python举例

在 Redis 中,`HASH` 数据结构(也称为 `HMAP` 或 `Hash Map`)允许你存储键值对集合,其中每个键值对都是字段(field)和值(value)的映射。在 Python 中,你可以使用 `redis-py` 库来与 Redis 交互,并存储和检索 HASH 数据。

 

以下是使用 Python 和 `redis-py` 库来存储和检索 Redis HASH 的示例:

 

1. **安装 redis-py**(如果你还没有安装的话):

 

 

```bash

pip install redis

```

2. **Python 示例**:

 

 

```python

import redis

 

# 连接到 Redis 服务器(这里假设 Redis 服务器在本地运行,端口为 6379)

r = redis.Redis(host='localhost', port=6379, db=0)

 

# 存入单个键值对到 HASH 中(使用 hset 方法)

# 这里假设我们有一个名为 "user:1" 的 HASH,我们要存入 "name" => "Alice" 和 "age" => 30

r.hset("user:1", "name", "Alice")

r.hset("user:1", "age", 30)

 

# 也可以一次性存入多个键值对

r.hmset("user:2", {"name": "Bob", "age": 25, "city": "New York"})

 

# 检索 HASH 中的值(使用 hget 方法)

name = r.hget("user:1", "name")

print(f"Name: {name.decode('utf-8')}") # 输出:Name: Alice

 

# 检索 HASH 中的所有字段和值(使用 hgetall 方法)

user_data = r.hgetall("user:1")

for field, value in user_data.items():

    print(f"{field.decode('utf-8')}: {value.decode('utf-8')}")

# 输出:

# name: Alice

# age: 30

 

# 对于 "key=>(key=>value)" 的情况,你可以将内部的键值对序列化为字符串,然后作为值存储

# 例如,使用 json 来序列化字典

import json

 

inner_dict = {"inner_key": "inner_value"}

inner_dict_json = json.dumps(inner_dict)

r.hset("user:3", "inner_hash", inner_dict_json)

 

# 检索并反序列化内部的 HASH

inner_hash_json = r.hget("user:3", "inner_hash")

inner_hash = json.loads(inner_hash_json)

print(inner_hash) # 输出:{'inner_key': 'inner_value'}

```

注意:在上面的示例中,我们从 Redis 获取的字符串是字节串(`bytes` 类型),因此我们需要使用 `.decode('utf-8')` 将其转换为字符串。同样,当我们将 Python 字典存储为 Redis HASH 的值时,我们使用了 `json.dumps()` 将其序列化为字符串,并使用 `json.loads()` 在检索时反序列化它。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 23:16:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 23:16:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 23:16:01       58 阅读
  4. Python语言-面向对象

    2024-07-16 23:16:01       69 阅读

热门阅读

  1. Redis的中BitMap的应用

    2024-07-16 23:16:01       24 阅读
  2. C# 匿名方法、Lambda、Linq概念及联系

    2024-07-16 23:16:01       23 阅读
  3. Mysql迁移达梦数据库-简介篇

    2024-07-16 23:16:01       18 阅读
  4. ASF平台

    ASF平台

    2024-07-16 23:16:01      20 阅读
  5. 构造器/构造方法

    2024-07-16 23:16:01       19 阅读