標籤:
項目之前使用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 redisIn [3]: r = redis.StrictRedis(host=‘localhost‘, port=6379, db=0)In [4]: r.set(‘a‘, ‘abc‘)Out[4]: TrueIn [5]: r.get(‘a‘)Out[5]: ‘abc‘In [6]: r.get(‘b‘)In [7]: r.setex(‘b‘, 30, ‘bcd‘) # 設定到期時間,第一次讀在30s內,有結果,第二次過了30s就沒有內容了Out[7]: TrueIn [8]: r.get(‘b‘)Out[8]: ‘bcd‘In [9]: r.get(‘b‘)In [10]: r.lpush(‘l‘, 1)Out[10]: 1LIn [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]: 0In [14]:
django-redis和py-redis