项目之前使用memcache做缓存,现在转到redis,改写几个语句的事情,然后就这种我把django-redis和py-redis搞混了,记录一下。
django默认使用memcache做缓存,这里的操作一般是cache.get() cache.set()这种,要想操作使用from django.core.cache import cache就可以了。
具体安装及操作见:http://blog.beginman.cn/blog/83/ (好像跑题了啊喂)
django现在可以使用redis做缓存,但是使用cache默认不能操作redis,这个时候就出现了django-redis了,一个开源的。
这个是要安装的,然后配置就可以使用了,但是据说性能不够高,官方文档见https://niwinz.github.io/django-redis/latest/
而py-redis是一个python的库,用来操作redis,效率已经不错了,操作也比较简单。
类似与import redis r.set() r.get() r.lpush() r.lpop() 这种操作。
文档见:https://github.com/andymccurdy/redis-py
示例:
In [2]: import redis In [3]: r = redis.StrictRedis(host=‘localhost‘, port=6379, db=0) In [4]: r.set(‘a‘, ‘abc‘) Out[4]: True In [5]: r.get(‘a‘) Out[5]: ‘abc‘ In [6]: r.get(‘b‘) In [7]: r.setex(‘b‘, 30, ‘bcd‘) # 设置过期时间,第一次读在30s内,有结果,第二次过了30s就没有内容了 Out[7]: True In [8]: r.get(‘b‘) Out[8]: ‘bcd‘ In [9]: r.get(‘b‘) In [10]: r.lpush(‘l‘, 1) Out[10]: 1L In [11]: r.lpop(‘l‘) Out[11]: ‘1‘ In [12]: r.llen() --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-12-e38b57a801ea> in <module>() ----> 1 r.llen() TypeError: llen() takes exactly 2 arguments (1 given) In [13]: r.llen(‘l‘) Out[13]: 0 In [14]:
时间: 2024-12-10 16:01:06