- HGETALL命令返回的数据结构:
- 在Redis中,
HGETALL
命令返回一个由字段和值组成的序列。例如,如果哈希表user:1
的name
字段值为"John"
,age
字段值为"30"
,HGETALL user:1
会返回["name", "John", "age", "30"]
这样的一维数组,其中偶数索引位置(从0开始)是字段名,奇数索引位置是对应字段的值。
- 在Python中解析这种返回结构:
import redis
r = redis.Redis(host='localhost', port=6379, db = 0)
data = r.hgetall('user:1')
parsed_data = {}
for key, value in data.items():
# 由于hgetall返回的键值对中,键和值都是字节类型,需要转换为字符串
key_str = key.decode('utf - 8')
value_str = value.decode('utf - 8')
parsed_data[key_str] = value_str
print(parsed_data)
- 在Java中解析这种返回结构:
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.Map;
public class RedisHashParsing {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost", 6379);
Map<String, String> data = jedis.hgetAll("user:1");
Map<String, String> parsedData = new HashMap<>();
for (Map.Entry<String, String> entry : data.entrySet()) {
parsedData.put(entry.getKey(), entry.getValue());
}
System.out.println(parsedData);
jedis.close();
}
}