django中使用redis和django缓存

news/2025/2/19 10:25:13

django中使用redis

# 两种方式
    -方式一:自定义的通用方案(跟框架无关)
        -写一个py文件:redis_pool.py
            import redis
            POOL=redis.ConnectionPool(max_connections=10)
        -在用的位置,导入直接使用
             conn = redis.Redis(connection_pool=POOL)
            conn.incrby('a1')
    -django中有个模块,django-redis,方便我们快速集成redis
        -1 下载:pip install django-redis
        -2 配置文件配置:
            CACHES = {
                "default": {
                    "BACKEND": "django_redis.cache.RedisCache",
                    "LOCATION": "redis://127.0.0.1:6379",
                    "OPTIONS": {
                        "CLIENT_CLASS": "django_redis.client.DefaultClient",
                        "CONNECTION_POOL_KWARGS": {"max_connections": 100}
                        # "PASSWORD": "123",
                    }
                }
            }
            
        -3 在使用的地方,导入直接使用
        from django_redis import get_redis_connection
        class MyResponseView(APIView):
            def get(self, request):
                conn = get_redis_connection()  # 从连接池中拿出一个链接
                conn.incrby('a1')
                conn.set('name','彭于晏')
                return APIResponse()

 django缓存

# django 是大而全的框架,内置了很多web开发需要的东西,缓存内置了

# 缓存:可以把django中的一个变量(数据),存放到某个位置,下次还可以取出来

# 之前用过:默认放在:内存中,其实可以放在文件中,数据库,redis。。。。
from django.core.cache import cache
cache.set('key','value',5) # 存放值
res=cache.get('key') # 取值


# 通过配置,控制存放在哪,只要如下写,就会放在redis
   CACHES = {
       "default": {
           "BACKEND": "django_redis.cache.RedisCache",
           "LOCATION": "redis://127.0.0.1:6379",
           "OPTIONS": {
               "CLIENT_CLASS": "django_redis.client.DefaultClient",
               "CONNECTION_POOL_KWARGS": {"max_connections": 100}
               # "PASSWORD": "123",
           }
       }
   }

# django缓存最强大之处在于,只要是python的变量,任意类型都可以,尽管使用set设置值


       l = [1, 'lqz', [1, 3, 4, 5, 6], '彭于晏']
       cache.set('ll1', l)
    
# 以后再django中往redis放数据,就用cache即可

# redis的5大数据类型,只支持一层


# 看一下这篇文章:https://www.cnblogs.com/liuqingzheng/articles/9803351.html
 

 django缓存的强大之处

django缓存最强大之处在于,只要是python的变量,任意类型都可以,尽管使用set设置值

它是通过python所独有的方式,将任意类型的变量,序列化存在redis中-------pickle序列化

        #序列化
    -json序列化---》得到字符串
        json不能序列化对象(自定义的类的对象) 
            -数据结构:数据的组织形式跟下面不一样
        能序列化: 数字,字符串,布尔,列表,字典  时间对象
    -pickle序列化
        -python独有的,二进制形式
        -python可以序列化所有对象---》二进制形式
        -二进制---》返序列化回来---》对象:属性,有方法

文章来源:https://blog.csdn.net/xiaolisolovely/article/details/131440488
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.niftyadmin.cn/n/480444.html

相关文章

spirngboot连接redis报错:READONLY You can‘t write against a read only replica.

问题 docker部署的redis,springboot基本每天来连redis都报错:READONLY You cant write against a read only replica. 重启redis后,可以正常连接。 但是每天都重启redis,不现实,也很麻烦。 解决方式: 进…

在Windows系统中安装Ubuntu作为双系统

在Windows系统中安装Ubuntu作为双系统,需要以下几个步骤: 创建Ubuntu启动盘:下载好Ubuntu的ISO文件后,需要通过工具(例如Rufus或者Universal USB Installer)将ISO文件写入一个USB闪存盘,从而创建…

Linux下Redis 6.2.6安装和部署详细图文步骤

目录 1、下载redis6.2.6安装包2、解压压缩文件3、重命名和移动文件4、redis编译安装1)redis编译,执行make命令。2)redis安装执行make install命令。 5、redis启动6、设置后台启动redis7、设置redis密码8、设置redis服务远程访问1、防火墙添加…

vue 实现色板功能

效果&#xff1a; 动态添加颜色 随机色 代码&#xff1a; <divclass"mt-10 firstTitle"v-show"pictureType ! card && pictureType ! table && pictureType ! inventory"><i:class"[colorSystemShow ? el-icon-com-xia…

jmeter连接数据库jdbc(sql server举例)

目录 前言&#xff1a; 一、下载第三方工具包驱动数据库 二、连接JDBC Connection Configuration 三、jdbc request 四、查看数据 前言&#xff1a; JMeter是一款强大的性能测试工具&#xff0c;它不仅可以模拟用户行为进行接口测试&#xff0c;还可以通过使用JDBC&#…

8 系统定时器(Systick)(STM32HAL库)

目录 系统定时器&#xff08;Systick&#xff09; SysTick定时器特性介绍 SysTick定时器的功能 SysTick定时器寄存器介绍 Systick定时器的使用 系统定时器&#xff08;Systick&#xff09; SysTick定时器特性介绍 计数宽度&#xff1a; 24bit来存储数据&#xff0c;2^24…

Vue 环境变量的配置

项目开发过程中&#xff0c;至少会经历开发环境、测试环境和生产环境(即正式环境)三个阶段。不同阶段请求的状态(如接口地址等)不尽相同&#xff0c;若手动切换接口地址是相当繁琐且易出错的。于是环境变量配置的需求就应运而生&#xff0c;我们只需做简单的配置&#xff0c;把…

vue?parseHTML?函数源码解析

目录 正文函数开头定义的一些常量和变量while 循环 textEnd 0parseStartTag 函数解析开始标签 总结&#xff1a; 正文 接上篇&#xff1a; Vue编译器源码分析AST 抽象语法树 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 …