自我笔记 - django 系列 [Redis篇]

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')

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章