使用Redis-OM保存JsonModel后,如何在redis-cli中查看?
如何用redis-cli查看Redis OM的JsonModel数据?
给定代码
from redis_om import HashModel, JsonModel import redis r = redis.Redis(host='localhost', port=6379, db=2) kwargs = {'key1': 'value1', 'keyn': 'value2'} jsonModel = JsonModel(**kwargs) jsonModel.save() print(jsonModel.key()) # 示例输出: :redis_om.model.model.JsonModel:01GB7B0V33424C9SDK6FM8496Q
我已在Redis服务器上正确加载RedisJSON模块,想通过redis-cli查看上述代码保存的JsonModel数据。作为Redis新手,我尝试了以下命令但均返回nil:
127.0.0.1:6379[2]> get :redis_om.model.model.JsonModel:01GB7B0V33424C9SDK6FM8496Q (nil) 127.0.0.1:6379[2]> json.get :redis_om.model.model.JsonModel:01GB7B0V33424C9SDK6FM8496Q (nil)
解决方法
确认数据库上下文
代码中指定了db=2,你的redis-cli已经显示[2],说明数据库切换正确,这一步没问题。理解Redis OM的JsonModel存储结构
Redis OM的JsonModel默认将数据存储为Redis 哈希(Hash)类型,而非RedisJSON的原生JSON类型。这就是get(字符串类型命令)和json.get(RedisJSON命令)都返回nil的原因——你用错了数据类型对应的命令。使用哈希类型命令查看数据
针对Hash类型,使用以下命令即可查看数据:- 获取所有键值对:
HGETALL :redis_om.model.model.JsonModel:01GB7B0V33424C9SDK6FM8496Q - 获取单个字段值:
HGET :redis_om.model.model.JsonModel:01GB7B0V33424C9SDK6FM8496Q key1 - 获取所有字段名:
HKEYS :redis_om.model.model.JsonModel:01GB7B0V33424C9SDK6FM8496Q - 获取所有字段值:
HVALS :redis_om.model.model.JsonModel:01GB7B0V33424C9SDK6FM8496Q
- 获取所有键值对:
(可选)改用RedisJSON存储
如果希望用RedisJSON原生类型存储,需要在定义模型时配置Meta类指定支持RedisJSON的数据库客户端:from redis_om import JsonModel class MyModel(JsonModel): class Meta: database = r # r是你初始化的Redis客户端,需确保已加载RedisJSON模块 # 保存后即可用json.get命令查看
内容的提问来源于stack exchange,提问作者LeanMan
相关产品推荐
相关产品推荐

