django redis的使用方法详解_环球动态

2023-04-16 06:04:03 来源:脚本之家 分享到:
目录
1.说明2.安装3.配置3.1 配置redis3.2 使用redis存储session3.3 redis连接超时时间设置4.使用redis4.1 使用默认redis4.2 使用指定redis(原生redis)5.连接池5.1 配置连接池5.2 使用连接池5.3 自定义连接池

1.说明

redis作为一个缓存数据库,在各方面都有很大作用,Python支持操作redis,如果你使用Django,有一个专为Django搭配的redis库,即django-redis


(资料图片)

2.安装

pip install django-redis

3.配置

3.1 配置redis

打开Django的配置文件,比如说setting.py,里面设置CACHES项

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

一个CACHES里可以配置多个redis连接信息,每一个都有自己的别名(alias),上面的“default”就是别名,到时候可以通过不同别名连接不同redis数据库

LOCATION是连接的信息,包括ip端口用户密码等,如果不需要用户密码则可以省略不写,django-redis支持三种连接协议,如下

协议说明举例
redis://普通的TCP套接字连接redis://[[username]:[password]]@localhost:6379/0
redissSSL方式的TCP套接字连接rediss://[[username]:[password]]@localhost:6379/0
rediss://Unix域套接字连接unix://[[username]:[password]]@/path/to/socket.sock?db=0

3.2 使用redis存储session

Django默认的Session是存储在sql数据库里的,但我们都知道普通的数据会被数据存储在硬盘上,速度没有那么快,如果想改成存储在redis里,只需要在配置文件里配置一下就行

SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

3.3 redis连接超时时间设置

连接超时的秒数可以在配置项里指定,SOCKET_CONNECT_TIMEOUT表示连接redis的超时时间,SOCKET_TIMEOUT表示使用redis进行读写操作的超时时间

CACHES = {
    "default": {
        # ...
        "OPTIONS": {
            "SOCKET_CONNECT_TIMEOUT": 5,  # 连接redis超时时间,单位为秒
            "SOCKET_TIMEOUT": 5,  # redis读写操作超时时间,单位为秒
        }
    }
}

4.使用redis

4.1 使用默认redis

如果你想使用默认的redis,也就是在配置文件里设置的别名为“default”的redis,可以引用django.core.cache里的cache

from django.core.cache import cache

cache.set("name", "冰冷的希望", timeout=None)
print(cache.get("name"))

4.2 使用指定redis(原生redis)

当你在配置文件里写了多个redis连接,可以通过别名指定要使用哪个redis

from django_redis import get_redis_connection

redis_conn = get_redis_connection("chain_info")
redis_conn.set("name", "icy_hope")
print(redis_conn.get("name"))

要注意,通过get_redis_connection()获取得到的客户端是原生Redis客户端,虽然基本上支持所有的原生redis命令,但它返回的数据是byte类型,你需要自己decode

5.连接池

使用连接池的好处是不用管理连接对象,它会自动创建一些连接对象并且尽可能重复使用,所以相当来说性能会好一点

5.1 配置连接池

要使用连接池,首先要在Django的配置文件里写上连接池的最大连接数

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        ...
        "OPTIONS": {
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}
        }
    }
}

5.2 使用连接池

我们可以通过连接别名确定要使用哪个redis,然后正常执行命令就行,我们不用在乎它创建了哪些连接实例,但你可以通过connection_pool的_created_connections属性查看当前创建了多少个连接实例

from django_redis import get_redis_connection

redis_conn = get_redis_connection("default")
redis_conn.set("name", "冰冷的希望")
print(redis_conn.get("name"))

# 查看目前已创建的连接数量
connection_pool = redis_conn.connection_pool
print(connection_pool._created_connections)

5.3 自定义连接池

Django-redis默认的连接的类是DefaultClient,如果你有更高的定制需求,可以新建一个自己的类,继承ConnectionPool

from redis.connection import ConnectionPool

class MyPool(ConnectionPool):
    pass

有了这个类之后还需要在Django的配置文件里指定它

"OPTIONS": {
    "CONNECTION_POOL_CLASS": "XXX.XXX.MyPool",
}

到此这篇关于django redis的使用方法详解的文章就介绍到这了,更多相关django redis使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

标签:

django redis的使用方法详解_环球动态

来源:脚本之家 2023-04-16 06:04:03

校友会排名什么标准_校友会排名什么意思?

来源:互联网 2023-04-16 01:11:17

环球要闻:秋山辽和一乘寺贤-秋山辽

来源:互联网 2023-04-15 21:55:47

史玉柱回归200天:技术中台人员砍半受重创,巨人网络押注征途前路未卜

来源:时代财经 2023-04-15 20:09:10

什么网贷最容易通过 容易通过的网贷盘点

来源:探其财经网 2023-04-15 18:21:40

心多梦多|当前资讯

来源:互联网 2023-04-15 17:03:33

引领文旅融合新时尚,2023全国露营大会武汉举行-环球焦点

来源:旅新网 2023-04-15 15:20:03

五一假期火车票今日开售:比春运还难抢 淄博搜索量暴增988%-当前热点

来源:快科技 2023-04-15 13:28:28

腌韭菜花的做法视频大全_腌韭菜花的做法 世界百事通

来源:互联网 2023-04-15 11:55:34

发力招商引资助企解难提能

来源:郑州日报 2023-04-15 10:20:05

每日快看:直面问题,确保整改有力有效

来源:中国徐州网-徐州日报 2023-04-15 09:06:35

丽尚国潮(600738):4月14日北向资金减持27.01万股

来源:证券之星 2023-04-15 07:24:51

协鑫能科(002015):4月14日北向资金减持12.45万股-独家

来源:证券之星 2023-04-15 05:06:01

2023升学季·小升初|新增高尔夫和冰雪运动,2023年长沙市初中体育艺术后备人才基地建设方案出炉 世界看热讯

来源:长沙晚报网 2023-04-15 01:12:02

济南B97路公交4月15日起调线

来源:中国山东网 2023-04-14 22:13:36

当前关注:俄外交部:美国开始向俄罗斯代表团发放签证

来源:互联网 2023-04-14 21:00:05

世界今日讯!截图!长按保存分享!Cocos Creator

来源:程序员客栈 2023-04-14 19:57:25

刚孵化的金鱼怎么养(刚孵化的金鱼怎么养好)_快报

来源:互联网 2023-04-14 18:19:31

焦点信息:一周为民办事丨长沙县:小区停车难 街道实地调研解难题

来源:红网 2023-04-14 17:46:35

环球看点!老字号 新品牌!消博会上百余款特色产品亮相 擦亮金招牌

来源:央视新闻客户端 2023-04-14 16:39:06

环球今日报丨当日快讯:云南玉溪森林火灾:系当地村民违规野外用火所致,部分地段已扑灭

来源:互联网 2023-04-14 16:10:21

送女老师礼物

来源:太平洋礼物网 2023-04-14 15:18:48

环球观察:宝钢股份新的150吨电炉预计在2024年年中投产

来源:达涅利零距离 2023-04-14 15:10:09

长沙先导控股、济南能源集团、北京建工的债务融资工具状态已更新为“完成注册”

来源:智通财经网 2023-04-14 14:14:35

花落谁家!A股的冲关龙头重任,只能是它们!

来源:四川钱坤投资 2023-04-14 12:56:56

天天微头条丨骁龙695安兔兔跑分多少

来源:系统乐园 2023-04-14 11:59:59

求助xlsx和xls有什么区别?

来源:城市网 2023-04-14 11:07:44

当前热文:东疆船舶海工租赁业快速发展形成聚集效应 闯出多个全国“首单”和“第一”

来源:天津日报 2023-04-14 10:43:14

当前看点!连续调整之后会选择方向

来源:中财网 2023-04-14 09:50:30

巴奴“天价土豆”换名后重新上架:多地售价18元一份 北京上海22元

来源:中财网 2023-04-14 09:11:14

Copyright   2015-2022 南极知识产权网 版权所有  备案号:粤ICP备2022077823号-13   联系邮箱: 317 493 128@qq.com