如何在Redis缓存中使用Django-Redis HSET操作

4

我正在使用 Django 3.0.4 和 Python 3.6.9。我需要使用 hset 操作在 Redis 缓存中设置一些值。

  • 我的尝试:
from django.core.cache import caches

cache.set(), cache.get() // these operation are working

但是我不能使用这个库来执行hset和hget操作。在Django官方文档中没有关于此的适当文档。

注意:我已经参考了这个(不是复制)


1
我已经找到了解决方案,正在撰写自己的答案来帮助社区。 - skysoft999
使用 get_redis_connection https://github.com/jazzband/django-redis#raw-client-access - hamidreza samsami
3个回答

4

这是我解决问题的方法:

  • pip install django-redis-cache(第三方 redis 客户端)

Settings.py:

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "127.0.0.1:6379/1",
        "OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient",},
    }
}

在 views.py 文件中:

from django.core.cache import caches
redis_cache=caches['default']
redis_client=redis_cache.client.get_client()
redis_client.hset('myhash','key1', 'value1')

希望这有所帮助。 文档: Django-redis-cache

0
简单:
from django.core.cache import caches
cache = caches[settings.CACHE_FROM_SETTINGS]

存储到缓存中:

cache.hset('hash', 'key1', 'value1')
cache.hset('hash', 'key2', 'value2')

从特定哈希中获取特定键:
cache.hget('hash', 'key1')

要获取该哈希表的所有键,请使用:

cache.hgetall('hash')

hgetall返回dict

{'key1': 'value1', 'key2': 'value2', ... }

并删除哈希集合:

cache.hdel(hash, 'key')

-1

嘿@Sanu,你的导入行有误,请导入cache而不是caches。我很惊讶你怎么能用“caches”运行。

from django.core.cache import cache
cache.set("Your key", "Your dict data") 
cache.get("Your key")

你好 @Vaibhav,根据 Django 3.0 文档,推荐使用以下导入:django.core.cache import caches。我的问题是关于使用 hset 和 hget,通常的 get 和 set 在这里运行良好。 - skysoft999

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接