django、python redis
本篇着重在最基本的连线使用,关于redis型态存取无详细说明
必须先安装redis,并开启服务
使用完以下三个方法,个人还是认为python原生的redis比较好用,纯属个人意见
python 原生
安装python redis套件: pip install redis
import redis # 导入redis模块r = redis.Redis(host='localhost', port=6379, decode_responses=True)# redis取出值设置是byte,可用decode_responses=True改成字符串# 也可以取出后再decode('utf8')# 测试r.set('keyName', 'value')text = r.get('keyName')print(text) # 显示 'value'
django-redis
官方参考
安装django-redis套件: pip install django-redis
设置连线
于django专案setting.py中设置以下CACHES = { "default": { # 预设使用 "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", # 指定redis://IP/第几个DB "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", }, 'KEY_PREFIX': 'Cache' }, # 其他redis库 "testRedis": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/2", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", }, 'KEY_PREFIX': 'Cache' },}
使用方法1 (cache)
★必须注意以下★
预设取 default 资料库
(此种方法会增加预设前缀 KEY_PREFIX:1:"keyName")
在使用时不管读取或新增等等操作只要带keyName即可,但不能读取一般key值
最后一个缺点是,使用该方法无法使用redis Lpush、Rpush等等,所以还是建议使用方法二
# django-redis取default值from django.core.cache import cache # django内建快取cache.set("keyName", "value", timeout=25) # 设置key、值、逾时时间cache.get("keyName") # 取值
使用方法2 (get_redis_connection建议使用)
因为方法1会带前缀值,所以当无法决定keyName时可用此方法代替
from django_redis import get_redis_connection # django-redis使用原生连线# 使用方法几乎等同原生pythoncacheCon = get_redis_connection("testRedis") # 指向setting的CACHES > testRediscacheCon.set('keyName', 'value')value = cacheCon.get('keyName')