Django Redis缓存教程:全面解析与实战指南

创始人
2024-12-14 15:15:43
0 次浏览
0 评论

大学计算机系一定要知道的信息

信息闭塞对于计算机专业的学生来说是致命的,打破障碍很重要!

网站

Leetcode

Leetcode拥有超过2000个原创编程题库,支持十多种流行编程语言。
这是寻找工作的程序员的首选网站。

新手教程

一个很棒的教程网站,提供各种基本编程技术的教程。

stackOverflow

与程序相关的计算机技术问答网站,可以找到大多数编程问题的答案。

coursera

全球最大的在线学习平台之一,可以免费收听哈佛等世界名校的CS课程。

w3Schools

一个为初级Web开发人员设计的网站,涵盖当今流行的编程语言

HackerRank

程序员一个参与的网站Web各种编程语言竞赛并测试您的能力。

GitHub

全球最大的代码托管平台,有很多优秀的开源项目和教育资源值得程序员发现和学习。

Gitee

拥有超过800万开发者的全国性代码托管和协作开发平台,汇聚了本土原创开源项目。

碧占宝博主

商硅谷(永恒之神,很多埋藏的入门教程,非常适合自学)

CodeSheep

鱼皮程序员

烂程序员

技术胖(适合学习前端的朋友)

宝藏软件

Fork(可视化)的git代码提交工具)

IDEA(Java开发首选IDE,Eclipse、myeclipse真的可以放弃了

VsCode(人人都爱的代码编辑器,无论前端还是前端)后端)。
最终开发,支持各种插件)

WebStorm(重度前端开发工具,我写React的时候就会用到它))

Sequelpro(轻量级数据库客户端,非常适合一些本地开发者)

Transmit(FTP文件传输工具,配合终端使用效果最佳)

另一个RedisDesktopManager(Redis接口管理工具)

DataGrip(JetBrains下的数据库连接管理软件,确实很好用,但是有点重,我通常与12互换使用)

Terminals(一个SSH绑定工具,类似于Forxshell,仅在mac上可用)

Pycharm(Python开发首选IDE

django如何调用redis(django菜鸟教程)

这篇文章,首席CTO笔记将为您介绍Django如何调用redis以及Django初学者教程,希望对您有用,一起来看看吧。

本文内容概述:

1.如何使用Redis作为缓存服务器django2.django-redis结合drf实现缓存3.djangofromdjango_redisimportget_redis_connection之后如何向redis添加分布式块?4.Django连接Redis集群的排查思路及总结5.Django中如何使用Redis缓存服务器,提供详细教程。
6.如何使用Python在Redis中存储字典。
Django中如何使用Redis作为缓存服务器

实现缓存的方式有很多种,比如本地内存缓存、数据库缓存、文件系统缓存等。
这里介绍一下使用Redis数据库进行缓存。

环境

redis

django-redis

配置

settings.py

CACHE={"default":{"BACKEND":"django_redis.cache.RedisCache","LOCATION":"redis://127.0.0.1:6379/1",?“选择IONS":{"CLIENT_CLASS":"django_redis.client.DefaultClient","PASSWORD":"mysecret"

}

}

}

pythonmanage.pycreatecachetable1

缓存包括站点缓存和单视图缓存

缓存delsite:?

settings.py

MIDDLEWARE=[#网站缓存,请注意一定要在第一个位置

'django.middleware.cache.UpdateCacheMiddleware',

...#站点缓存,注意一定要在最后位置

'django.middleware.cache.FetchFromCacheMiddleware',

]

查看缓存:?

views.py

fromdjango.shortcutsimportrenderfromdjango.views。
decorators.cacheimportcache_pagefromcache.modelsimportFoo#给应该缓存的视图添加装饰器,参数设置titimeoutmeout,单位是秒,@cache_page(60)defindex(request):

bar=Foo.objects.all()returnrender(request,'cache/index.html',{'bar':bar})

django-redis结合drf实现缓存

1django_redis

1.django-r基于BSD许可,edis是一个完整的组件,可以让Django支持Rediscache/session后端。

2django-redis的优点:

#持续更新

#Stringlocalizedredis-pyURL符号连接

#Extensible客户端

#Extensible解析器

#Extensible序列化器

#默认主从客户端支持

●完善的测试测试

#已在部分项目的生产环境中作为cache和session使用

#支持设置超时永不

#本地填充Redis客户端/连接池支持

●高度可配置(例如模拟缓存的异常行为)

#默认支持Unix套接字

#支持Python2.7、3.4、3.5和3.6

4基本使用操作:

5.Django项目中的配置格式

6.自定义Redis工具类

7.自定义Rediskey协议

8.查看调用缓存

djangofromdjango_redisimportget_redis_connection之后如何向Redis添加分布式块?

有效,但是如果使用redis,内部是用单线程实现的。
大部分交易不会被阻塞,不会出现并发问题,所以是安全的。

Django连接Redis集群的排查思路及总结

连接失败直接

确认密码和账号端口正确后,该同事并没有验证配置,他说可以直接从网上下载简历,完全没有验证。
真是个坑啊!!!

我对比了生产和测试配置,改了几个点

我满怀信心,重新启动djangoshell测试,但还是连接失败!这时候我开始感觉有点不好了~

冷静点,djangoshell不行,直接用pythonshell连接怎么样?

没问题,只是连接而已!

我似乎很困惑,有什么问题吗?

结果还是无法连接。

不知不觉已经晚上九点了,我好累,不想再学习了。
我们下班回家吧

当我走在回家的路上时,我的整个脑子都被这个问题困扰着。
Django确实无法连接密码包含@符号的redis集群吗?反复问自己。

问了其他同事生产环境是否还有其他问题可以使用Redis集群进行调试。
不幸的是没有。

我自己创建一个Redis集群,并设置密码中包含@符号怎么样?

但是,在本地创建Redis集群是非常有问题的。
如果你想在本地安装虚拟机,一想到一堆配置你就会立刻灰心。

洗完澡后,我和妻子聊了大约1个小时。
已经11点多了。
你准备好睡觉了吗?

不可能,带着问题很难入睡!嘿嘿,这是个老问题了。

突然想到一点:最小试错原则。
自己创建本地集群是有问题的,而且公司没有多余的集群。

直接购买云版Redis集群怎么样?就这么做吧,起床并打开电脑。

问题又来了:阿里云还是腾讯云?

自从双11买了一台腾讯云2c4g8m服务器,3年才199。

对比我之前从阿里云购买的1c2g1m服务器,三年就花了100多。

我立刻就喜欢上了腾讯云,并决定先购买腾讯云。

用了一段时间,发现腾讯云真的很难用:

最重要的是,实例关联安全组后,外网还是无法访问(没关系,我还在生气)

我对腾讯云太失望了,不得不把最后一根稻草交给阿里云。

还好阿里云没有让我失望!

点击点击,一次操作:

密码中含有@符号,但是连接没有问题!!!

至此问题终于解决了!!!

我迫不及待地想明天去公司核实一下,但回头一看,已经是凌晨一点半了。

我自言自语道:“睡吧,胡安王”

经过对比,原来配置只需要生产配置,只需要在配置中再添加一个即可测试。

修复最烦人的bug往往只需要一个小小的改动~

为什么测试环境没有错误

由于测试环境中的Redis集群不需要密码

如何在Django中使用Redis缓存服务器,请提供详细教程。

中文django-redis文档

AndreyAntukh,niwi@niwi.be4.7.0

翻译:RaPoSpectre

1简介

Django-redis基于BSD许可,是一个完整的组件,可以让Django支持Rediscache/session后端。

1.1为什么使用django-redis?

原因:

持续更新

本地化的redis-pyURL符号连接字符串

可扩展客户端

Paser可扩展

可扩展的sequencer

默认主/从客户端支持

完整测试

在生产环境中用作缓存和会话一些项目

支持从不设置超时

客户端/连接池支持原生语音

高度可配置(例如模拟缓存错误行为)

默认支持Unix套接字

支持Python2.7、3.4、3.5和3.6

1.2django-redis版本可用

稳定版本:4.7.0

稳定版本:3.8.4

1.3我应该使用哪个版本

版本号如3.6、3。
7...是主要版本,将包含与以前版本不兼容的内容。
更多信息,请在更新前阅读更新日志。

版本号如3.7.0、3.7.1...。
待办的。
次要更新或错误修复版本通常仅包含错误修复。
没有计划更新功能。

依赖1.4

1.4.1Django版本支持

django-redis3.8.x支持django1.4,1.5,1.6,1.7(也许会有1.8)

django-redis4.4.x支持django1.6、1.7、1.8、1.9和1.10

1.4.2Redis服务器支持

django-redis3.x.y支持redis-server2.6.x或更高版本

django-redis4.x.y支持redis-server2.8

python如何使用Python在Redis上保存字典

如何使用Python在Redis上保存字典

之前一切写个测试看看Redis是否正常连接

importredis

cache=redis.StrictRedis('172.20.0.227',6379)

存储字符串

key="javaman_test"

value="你st_string_yy"

cachevalue=cache.get(key)

存储Dict对象并将其作为字符串检索

value={"id":1,"name":"sunxy"}

cache.set(key,value,60)

cachevalue=cache.get(key)

printtype(value),type(cachevalue)

此时使用eval()将得到的结果转为dict

cachevalue=cache.get(key)

trans_value=eval(cachevalue)

printtype(trans_value),trans_value.get("name")

如果它不是一个字典,而是直接一个对象怎么办?

我以前在Django中使用过对象,我们来看看

提取出来还是一个字符串,如何保存里面的对象?

eval()简单地将结果转换成字典肯定不行。
我们应该将对象存储在Redis中。

使用pickle模块,存入redis时调用dumps函数,检索后调用loads函数

importpickleredis.set(key,pickle.dumps(xt_industry),180)

pickle.loads(result)

结论:以上是首席CTO笔记关于如何调用Redis初学者教程的全部内容以及关于姜戈的姜戈。
希望再次对大家有用。
如果您想了解更多相关信息,请记得收藏并关注本站。

Ph学习路线图大学生必看

Python学习八个阶段从0开始学习Python

00资源共享先行

国内Python学习网站:

黑马计划会员视频库:http://yun.itheima.com/map?hm

菜鸟教程(wwwrunoob.com)

极客学院(wwwjikexueyuan.com)

廖雪峰的官网(www.liaoxuefeng.com)

博客园(www.cnblogs.com)

国外Python学习网站:

Codecademy(www.codecademy.comUdemy(www.udemy.com)

Coursera(www.coursera.org

edX(www.edx.org)

FreeCodeCamp(www.freecodecamp.org)

中文文档地址

Python官方文档:https://docs.python.org/zh-cn/3/Python标准库:https://docs.python.org/zhcn/3/library/index.html

01Python基础

学习目标:

能够使用Python技术熟练完成小问题的编程和小游戏程序的开发

学习要点:

1)计算机组成原理:计算机组成、操作系统分类、

B/S和C/S架构,了解软件和硬件的区别

2)Pvthon变量和开发环境:字符串、数字、字典列表、祖先等

3)流程控制语句:程序执行顺序、顺序执行、循环执行

选择选择执行

4)函数:定义函数、调用函数、嵌套函数、递归函数

5个基本操作文件数量:打开、编辑、关闭文件

6)面向对象编程:类对象、实例对象、定义类、实例化对象

7)异常处理:学习捕获异常、自定义异常

8个模块和package:了解模块和包的概念并学习使用

9)飞机战争游戏制作:独立完成飞机战争游戏

02进阶Python和Linux

学习目标:

能够使用面向对象的编程方法开发基于Linux操作系统的高并发网络程序


学习要点:

1)Linux系统应用:Linux发行版系统的使用、基本操作语言

2)网络编程:TCP/IP协议、服务器工作流程

3)并发编程:线程、进程、协程3

4)函数高级应用:熟练使用函数调用等

5)正则表达式:熟练掌握各种方法使用re模块

6)数据库:关系型数据库、非关系型数据库、MySQL

7)高级Python语法:闭包、装饰器、生成器、迭代器

8)mini-web服务器:根据网络服务的流程编写简单的web服务器

9)mini-web框架:可以写一个简单的web服务器框架

03前面-结束发展

学习目标:

能够编写简单的HTML页面,会使用iQuery、CSS等。

学习要点:

1)HTML的学习:HTML文档结构、快速创建HTML方法

2)CSS:CSS的使用

3)PS的简单应用:Photoshop的基本使用、选色、绘图

4)JavaScript的学习:Ja的基本语法JavaScript

5)iQuery的学习:iQuery的使用

6)Vue框架:框架的使用及注意点

04Web开发

学习目标

能够熟练使用Flask和Diango框架开发Web服务。

学习要点:

1)Flaskweb框架的使用

模板和表单、数据库的使用、单元测试、第三方扩展

云服务器的部署与部署,Redis缓存的使用,GIT版本控制

验证码的控制、使用、发送与接收,网站项目开发实践

2)Djangoweb框架如何使用,框架如何使用,模型介绍

,ORM与数据库操作,视图与模板,Diango

中间件,DjangoRESTFramework,网站项目开发实践

05爬虫开发

学习目标

能够编写实用的爬虫项目。

学习要点:

1)爬虫开发知识体系及相关工具

网络爬虫原理及相关爬虫工具

2)MongoDB数据库

数据库的增删改查

3)Scrapy框架

框架原理及使用

4)定制化爬虫采集系统

数据收集与分析

5个实战项目

实用综合爬虫应用

06shell自动化运维

学习目标:

能够熟练使用shell命令和Python脚本进行自动化运维

学习要点:

1)Shell运维、脚本和变量

操作介绍及维护、shell介绍、脚本执行方法、开发规范

2)高级shell常用命令

表达式、常用Linux符号、常用命令详细解释

3)Shell流程控制

Select语句、循环语句、函数

4)代码发布和环境部署

掌握代码发布流程和环境部署

5个代码脚本

掌握手动代码发布和脚本代码发布

07数据挖掘与数据分析

学习目标:

能够熟练运用Python技术完成小问题的编程

以及小游戏程序的开发。

学习重点:

基本概念:序列表、链表、栈、队列1

2)排序与索引:排序、索引、树与树算法

3)Series对象:Series对象、DataFrame对象、DataFrame查询

4)数据操作:数据操作、访问和统计

5Pandas绘图:精通在使用中Pandas

6)numpy、pandas的科学计算:numpy、pandas、

matpalotlib,金融数据综合分析处理

08人工智能

学习目标:

能够熟练运用Python技术针对小问题编写程序,开发小游戏程序。

学习重点:

1)特征工程:了解什么是人工智能、机器学习、深度学习和特征工程

2)监督学习分类算法:熟悉监督学习分类算法和Scikit-learn使用

3)模型选择和调优:可用数据集、模型选择和优化

4)数据和多因素模型:应用多因素的模型

5量化交易策略:量化交易概念及相关策略

6)回测框架:了解回测框架

7)量化交易平台实战:量化交易平台实战项目

文章标签:
Leetcode Django
热门文章
1
Redisson分布式锁深度解析:Red... Redis实现分布式锁+Redisson源码解析在某些场景下,多个进程需要以互斥...

2
深度解析Docker:容器技术提升应用部... docker是什么Docker是一种强大的开源容器技术,它将应用程序及其所有依赖...

3
Docker dockercp命令:容器... Dockercp命令详解:在Docker容器和主机之间复制文件/...

4
Redis KEY模糊查询优化策略及SC... RedisKEY*模糊查询导致交互速度慢、阻塞其他Redis操作在Redis中使...

5
Redisson深度解析:分布式锁实战与... Redis:redis分布式锁实战之redisson在分布式环境中;个体锁不能再...

6
Python float()函数:Web... Pythonfloat(input())的用法,web中的应用float(inp...

7
Java单例模式深入解析及实例代码分享 单例模式单例模式实例在Java中,单例模式确保类只存在一个实例。该模式的主要作用...

8
Docker核心原理解析:深入理解Nam... DOCKER总结Docker是一个开源应用程序容器引擎,允许开发人员将其应用程序...

9
C语言字符串输出技巧:指针与数组首地址的... C语言字符串输出Chara[]="aaaaa";printf...

10
200本Java开发精选书籍免费分享!附... Java开发书籍推荐(200多本)我整理了一份Java开发的邮件资源,一共大概2...