如何在Django应用中使用Redis命令操作列表和集合
我正在开发一个Django应用,想用redis来做缓存。
我发现有一些包,比如django-redis和django-redis-cache,这些包可以和Django集成,方便我们使用redis。
不过,使用这些包的时候,你只能用到'get'和'set'这两个命令。
那么,像rpush、lrange、zadd这些其他的redis命令,怎么用呢?
我们能不能在上面提到的包(django-redis,django-redis-cache)中使用这些命令,还是说需要用redis-py这个客户端?
谢谢你的帮助!
2 个回答
6
使用原始客户端访问:
在某些情况下,你的应用需要直接访问原始的Redis客户端,以使用一些Django缓存接口没有提供的高级功能。
>>> from django_redis import get_redis_connection
>>> con = get_redis_connection("default")
现在我们可以执行Redis数据类型的原始命令:
- 列表
- 集合
- 有序集合
- 哈希等
示例:
将数据存储到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']
在上述示例中使用的哈希命令:
hmset:设置多个项目
hlen:获取项目数量
hvals:返回所有值
7
在django-redis中,你可以访问到原始的redis连接。我认为这让你可以通过redis-py来执行命令,而django-redis在后台就是用这个库的。