iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >djangoredis的使用方法详解
  • 559
分享到

djangoredis的使用方法详解

djangoredis使用djangoredis 2023-05-16 11:05:36 559人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.说明2.安装3.配置3.1 配置Redis3.2 使用redis存储session3.3 redis连接超时时间设置4.使用redis4.1 使用默认redis4.2 使用指

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使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: djangoredis的使用方法详解

本文链接: https://www.lsjlt.com/news/209634.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • djangoredis的使用方法详解
    目录1.说明2.安装3.配置3.1 配置redis3.2 使用redis存储session3.3 redis连接超时时间设置4.使用redis4.1 使用默认redis4.2 使用指...
    99+
    2023-05-16
    django redis使用 django redis
  • 详解Oracle的使用方法
    Oracle是一种关系型数据库管理系统(RDBMS),它提供了一个强大的、可扩展的、高性能的数据库平台,适用于各种企业级应用程序。以...
    99+
    2023-08-24
    oracle
  • PopupWindow使用方法详解
    学习了Android PopupWindow的使用技巧 和【Android UI设计与开发】7.底部菜单栏(四)PopupWindow 实现显示仿腾讯新闻底部弹出菜单,然后自己进行了一下研究,写一个总结,方便以后学习。效果图:PopupWi...
    99+
    2023-05-30
    popupwindow 使用
  • PerformanceCounter详解,使用方法
    PerformanceCounter是一个用于监视计算机性能指标的类,它可以用来测量各种指标,如CPU使用率、内存使用率、磁盘读写速...
    99+
    2023-09-16
    详解
  • JavaBigDecimal使用方法详解
    目录重要属性Double 转 BigDecimal基础方法数值比较剔除尾部的零重要属性 1、scale: 小数点后的位数。如将1.234构建为BigDecimal,scale属性则为...
    99+
    2022-12-20
    Java BigDecimal Java BigDecimal用法
  • Optional 使用方法详解
    Optional的作用是什么?他都有哪些方法?阿里规范点名说尽量用Optional来避免空指针,那么什么场景用Optional?本篇文章围绕这三点来进行讲解。 目录 一、Optional类的来源二、Optional类是什么?三、Op...
    99+
    2023-08-17
    java 开发语言
  • Quartz.Net使用方法详解
    目录Hello Quartz.Net作业:Job和JobDetailJobDataJobDetail持久化JobData触发器:TriggerSampleTriggerCronTri...
    99+
    2022-11-12
  • 详解datagrid使用方法
    DataGrid是一种用于显示和编辑数据的控件,常用于展示表格数据。以下是DataGrid的使用方法:1. 引用DataGrid控件...
    99+
    2023-08-11
    datagrid
  • KotlinFragment使用方法详解
    目录1.Fragment的介绍2.静态加载3.动态加载1.Fragment的介绍 Android在3.0版本引入了Fragment功能,它非常类似于Activity,可以像Activ...
    99+
    2023-01-28
    Kotlin Fragment Kotlin Fragment接口
  • KotlinWorkManager使用方法详解
    目录WorkMananger的简介WorkManager的基本用法使用WorkManager处理复杂的任务链式任务WorkMananger的简介 Google推出WorkManage...
    99+
    2023-01-28
    Kotlin WorkManager Kotlin WorkManager实例
  • FragmentTabHost使用方法详解
    FragmentTabHost是support-v包下提供的用于集成和管理Fragment页面的组件. 今天要实现的效果图如下: 整体结构是MainActivity+5个模块的Fragment. MainActivity的布局如下:<...
    99+
    2023-05-30
    android fragmenttabhost
  • ToolBar使用方法详解
    ToolBar的出现是为了替换之前的ActionBar的各种不灵活使用方式,相反,ToolBar的使用变得非常灵活,因为它可以让我们自由往里面添加子控件.低版本要使用的话,可以添加support-v7包. 今天要实现的效果如下: 由上图可以...
    99+
    2023-05-30
    android toolbar
  • iperf3使用方法详解
    iperf3是一款带宽测试工具,它支持调节各种参数,比如通信协议,数据包个数,发送持续时间,测试完会报告网络带宽,丢包率和其他参数。 小广告:欢迎喜欢网络技术的朋友加我微信:xfiles_sky,一起...
    99+
    2023-09-06
    服务器 网络 运维
  • Java中的==使用方法详解
    目录Java中的==2 字符串常量池3 总结Java中的== Java中的==表示的是什么呢?有时候很令人费解。比如,以下例子输出是什么? // 例一 String st...
    99+
    2022-11-12
  • tk-mybatis的使用方法详解
    tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具 实现...
    99+
    2022-11-12
  • 详解python os.walk()方法的使用
    python os.walk()方法 os.walk方法是python中帮助我们高效管理文件、目录的工具,在深度学习中数据整理应用的很频繁,如数据集的名称格式化、将数据集的按一定比例划分训练集train_set、测试...
    99+
    2022-06-02
    python os.walk()方法 python os.walk()的使用
  • 详解Android Checkbox的使用方法
    0和1是计算机的基础,数理逻辑中0和1代表两种状态,真与假.0和1看似简单,其实变化无穷. 今天我就来聊聊android控件中拥有着0和1这种特性的魔力控件checkbox. ...
    99+
    2022-06-06
    checkbox 方法 Android
  • django redis的使用方法详解
    目录1.说明2.安装3.配置3.1 配置Redis3.2 使用redis存储session3.3 redis连接超时时间设置4.使用redis4.1 使用默认redis4.2 使用指定redis(原生redis)5.连接...
    99+
    2023-04-14
    django redis使用 django redis
  • JavaScript使用Fetch的方法详解
    目录进行 fetch 请求支持的请求参数发送带凭据的请求上传 JSON 数据上传文件上传多个文件检测请求是否成功自定义请求对象HeadersGuardResponse 对象Body特...
    99+
    2022-11-13
  • jQuery的remove()方法使用详解
    jQuery的remove()方法用于从DOM中移除元素。它可以同时删除元素及其所有子元素。下面是remove()方法的使用详解:基...
    99+
    2023-08-17
    jQuery
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作