如何在Django应用程序中使用Redis命令来处理列表和集合

4
我正在开发一个Django应用程序,我想要使用redis进行缓存。
我发现有一些包,如django-redis和django-redis-cache,可以与Django集成,并可用于访问redis。
但是,这些包只提供了'get'和'set'命令供使用。
如何使用其他redis命令来操作列表、集合、有序集等,例如rpush、lrange、zadd?
我们是否可以在上述提到的包(django-redis,django-redis-cache)中使用它们,或者我们需要使用redis-py客户端?
感谢您的帮助!
2个回答

7

6

使用原始客户端访问:

在某些情况下,您的应用程序需要访问原始Redis客户端以使用一些高级功能,这些功能无法通过Django缓存接口公开。

>>> from django_redis import get_redis_connection
>>> con = get_redis_connection("default")

现在我们可以执行 Redis 数据类型的原始命令,包括:
  1. 列表
  2. 集合
  3. 有序集合
  4. 哈希等
示例: 将数据存储到 Redis 哈希中。

Redis 哈希是字符串字段和字符串值之间的映射,因此它们是表示对象的完美数据类型。

# Create framework dictionary in python
>>> frameworks = {'python':'Django','php':'Laravel','java':'Spring'} 
#Store them into redis hash.  
>>> con.hmset('frameworks',frameworks)
True #successfully stored 

# retrieved number of items 
>>> con.hlen('frameworks') 
3

#Get all values
>>> con.hvals('frameworks')
[b'Django', b'Laravel', b'Spring']

上述示例中使用的哈希命令:

  1. hmset : 设置多个项目

  2. hlen : 获取项目数量

  3. hvals : 返回所有值


这个连接应该放在哪里?像是在settings.py还是apps.py中? - MrObjectOriented

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