django redis怎么使用 您所在的位置:网站首页 redis连接池工具类 django redis怎么使用

django redis怎么使用

#django redis怎么使用| 来源: 网络整理| 查看: 265

django redis怎么使用 发布时间:2023-04-15 11:06:25 来源:亿速云 阅读:78 作者:iii 栏目:开发技术

这篇“django redis怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“django redis怎么使用”文章吧。

1.说明

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

2.安装pip install django-redis3.配置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/0redissSSL方式的TCP套接字连接rediss://[[username]:[password]]@localhost:6379/0rediss://Unix域套接字连接unix://[[username]:[password]]@/path/to/socket.sock?db=03.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.使用redis4.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 celery使用 django中怎么利用redis存储session

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

django redis 上一篇新闻:React怎么更新流程驱动 下一篇新闻:Linux下怎么解压查看JAR包 猜你喜欢 如何使用Dev C++编写C语言程序 R语言中cbind、rbind和merge函数怎么使用与区别 eclipse汉化及jdk如何安装环境如何配置 如何使用zabbix监控oracle数据库的方法 如何在R语言中使用matrix函数生成矩阵 R语言怎么创建矩阵 Java 重入锁和读写锁怎么使用 R语言如何读取excel数据的简单方法 R语言如何实现list类型数据转换 R语言逻辑回归、ROC曲线与十折如何实现交叉验证


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有