python - 在redis中存储和获取django模型对象

标签 python django redis

我设置了 Django 和 Redis 项目并尝试将 Django 模型对象存储在 Redis 中。如果我使用 django.core.cache 如下,card2 被正确设置为 django 对象。但是,如果我使用 django_redis 提供的原始 redis 连接,它会获得 django 模型对象的字符串表示形式。

我按如下方式设置了两个键。如何使用原始 redis 连接获取卡对象本身而不是其字符串 repr?我需要它,因为我想使用 mgetzrange 之类的 redis.py 方法。

from django.core.cache import cache
from django_redis import get_redis_connection

con = get_redis_connection("default")
card = Card.objects.all()[0]

key = "card_" + str(card.id)

con.delete(key)
cache.delete(key)

con.set(key, card)
cache.set(key, card)

card1 = con.get(key)
card2 = cache.get(key)

最佳答案

您必须手动将您的响应从 redis 转换为您的 python 对象。

提示:使用pickle, 以下是示例:1 , 2

关于python - 在redis中存储和获取django模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27302553/

相关文章:

javascript - 在 iPhone、Python Flask-SocketIO 和 Javascript 上测试 websocket 应用程序

python - 我想向 Pandas 数据框添加一个新索引

amazon-web-services - 通过 Cloudformation 添加新分片时,在错误的可用区中创建只读副本

python - 在没有 celery 的情况下在 Django 中安排任务的最佳方式

lua - 如何使用 redis-scripto 和 redis DB 在 LUA 中执行 null\nil 检查?

python - 解析 Redis MONITOR 消息

python - 在 Python 中进行分层采样,无需使用任何机器学习

python - Pandas:当组中的值落在某个范围内时,将组保留在数据中

mysql - Django 错误 "Intersection is not supported on this database backend"

Django-rest-auth (dj-rest-auth) 自定义用户注册