自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 Django中使用celery

Django中使用celery安装redis:(37条消息) CentOS 8安装Redis的两种方式_sinat_41292836的博客-优快云博客_centos8 rediswin10下安装redis - W.Yentl - 博客园 (cnblogs.com)# windows下的命令redis-server.exe redis.windows.confredis-server --service-install redis.windows.confredis-server --serv

2022-01-21 17:40:32 1441

原创 django里面使用Cache

django里面使用Cache此案例中使用redis做缓存:1. 安装并配置redis 2. 安装django-redis用于django连接redis数据库 3. 在django 的配置文件进行配置 4. 在views里面进行逻辑处理# 1. 安装且配置redis# 以windows为例# 1.1 下载解压包,直接解压到任意路径下即可# windows下载地址:ttps://github.com/MSOpenTech/redis/releases# 1.2 启动 切换到解压好的redis路

2022-01-19 18:26:06 1891

原创 Computer English

Computer English被动语态,非谓语动词,名词化结构和从句等, 常用it…句型结构, 用虚拟语气表达假设或建议,在说明事理并涉及各种前提和条件时,可以采用虚拟语气名词性词组多,合成新词多,介词短语多,非限定动词(尤其是分词)使用频率高CPU(Central Processing Unit)WPS(Word Processing System)NT(Net Technology)IT(Information Technology)# 用虚拟语气表达假设或建议,在说明事理并涉及各种前

2022-01-19 18:24:55 811

原创 高并发处理

高并发处理-锁def test_demo(): if concurrnt_control('etc_user_id_add_score:%s' % user_id, timeout=30) == 1: do_something() def concurrnt_control(key, timeout=10): ''' :param timeout: 超时时间 :param key: redis key值 :return:

2022-01-19 18:05:53 936

原创 ELK安装及配置

一. Logstash6的安装cd /optwget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.2.tar.gztar -zxvf logstash-6.5.2.tar.gzmv logstash-6.5.2 logstashcd /opt/logstash/configcp logstash-sample.conf syslog.confvi syslog.conf# 定义日志源input { sy

2021-09-30 18:01:42 388

原创 Centos下Nginx+Gunicorn+Django+supervisor项目部署

Centos下Nginx+Gunicorn+Django+supervisor项目部署安装需要的包yum install python3yum install nginxyum install gunicornpip install geventpip install supervisorgunicorn的简单使用,在服务器上任意一个位置新建一个python文件, 文件名自己定义:vi testgunicorn.py# 在testgunicorn.py中输入以下内容def app

2021-08-16 15:35:50 814

原创 virtualenv配置python虚拟环境

virtualenv 和 virtualenvwrapper配置python虚拟环境# 下载virtualenv和virtualenvwrapperpip install virtualenvpip install virtualenvwrapper # 这是对virtualenv的封装版本,一定要在virtualenv后安装# 切换到家目录cdvi .bashrc# 在.bashrc的最下面添加以下内容VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

2021-08-13 15:56:20 162

原创 gunicorn+nginx+django

gunicorn -w 2 -b 0.0.0.0:18000 testgunicorn:appsupervisord -c /etc/supervisord.confsupervisorctl -c /etc/supervisord.conf statusgunicorn Djanfo_project.wsgi -c gunicorn.py./restart.sh startsupervisorctl shutdownsupervisorctl statussupervisorctl upda

2021-08-13 15:54:36 639

原创 uWSGI, uwsgi,WSGI

uWSGI, uwsgi,WSGI一. uWSGI, uwsgi,WSGI之间的区别联系uWSGI是web服务器,实现了WSGI通信规范,uwsgi协议, http等协议# uWSGI--web服务器的安装pip install uwsgiWSGI全名Web Server Gateway Interface, 是web服务器与web应用通信的一种规范uwsgi是WSGI通信规范中的一种自有协议二. uWSGI—web 服务器的常用命令及配置uwsgi --http :808

2021-08-13 15:53:46 383

原创 centos下nginx+uWSGI+Django+域名部署项目

云服务器centos下nginx+uWSGI+Django+域名部署安装nginxyum install nginxvi /etc/nginx/conf.d/builddemo_nginx.confbuilddemo_nginx.conf文件名字是自定义的, 在此文件中输入以下内容server { server_name 域名或者主机外网ip; listen 17879; location / { include uwsgi_params;

2021-08-13 15:51:33 249

原创 14虚拟存储器

3.7 虚拟存储器主存和联机工作的辅存共同构成了虚拟存储器,二者在硬件和系统软件的共同管理下工作.对于应用程序员而言,虚拟存储器是透明的.虚拟存储器具有主存的速度和辅存的容量,提高了存储系统的性价比3.7.1 虚拟存储器的基本概念虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的地址空间...

2021-08-05 14:21:16 144

原创 13高速缓冲存储器

3.6 高速缓冲存储器由于程序的转移概率不会很低,数据分布的离散性较大,所以单纯依靠并行主存系统提高主存系统的频宽是有限的,这就需要从系统结构上进行改进,即采用存储体系,通常将存储系统分为"Cache-主存"层次和"主存-辅存"层次3.6.1 程序访问的局部性原理程序访问的局部性原理包括时间局部性和空间局部性.时间局部性是指在最近的未来要用到的信息,很可能是现在正在使用的信息,因为程序中存在循环.空间局部性是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是邻近的,因为指令通常是顺序

2021-08-05 14:20:29 1887 1

原创 13-2CPU指令流水线

5.5 指令流水线5.5.1 指令流水线的基本概念​ 一条指令的执行过程可分解为若干阶段,每个阶段由相应的功能部件完成.如果将各阶段视为相应的流水线,则指令的执行过程就构成了一条指令流水线.采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,因此成为计算机中普遍使用的一种并行处理技术.指令流水的定义根据计算机的不同,具体的分法也不同.例如,图5.6把一条指令的执行过程分为如下三个阶段(或过程),**取指:**根据PC内容访问主存储器,取出一条指令送到IR中**分析:**对指令操作码

2021-08-05 14:15:01 1171

原创 13-1CPU控制器的功能和工作原理

5.4 控制器的功能和工作原理5.4.1 控制器的结构和功能点画线框内的是控制器部件运算器部件通过数据总线与内存储器,输入设备和输出设备传送数据输入设备和输出设备通过接口电路与总线相连接内存储器,输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供它们运行所需要的控制信号控制器是计算机系统的指挥中心,控制器的主要功能有:

2021-08-05 14:13:15 6689 1

原创 12CPU数据通路的功能和基本结构

某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如下图所示.图中所有控制信号为1时表示有效,为0时表示无效.例如,控制信号MDRinE为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从总线打入MDR,假设MAR的输出一直处于使能状态.加法指令"ADD (R1), R0"的功能为(R0)+(R1)–>(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结构送入R1的内容所指主存单元中保存.下表给出了上述指令..

2021-08-05 14:04:49 3438

原创 11主存储器与CPU的连接

一. 连接原理3.4.3 存储芯片的地址分配和片选CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后为选中的芯片依据地址码选择相应的存储单元,以进行数据的存取,即进行字选.片内的字选通常是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端(N由片内存储容量2N决定). 片选信号的产生分为线选法和译码片选法.线选法线选法用除片内寻址外的高位地址直接(或经反相器)分别接至各个存储芯片的片选端,当某地址线信息为"0"时,就选中与之相应的存储芯片.这些片选地址线每

2021-08-05 14:01:23 1101

原创 4页面置换算法

页面置换算法页面的换入,换出需要键盘I/O,会有较大的开销,因此好的页面置换算法应该追求更少的缺页率一. 最佳置换算法(optimal permutation algorithm)最佳置换算法:每次选择淘汰的页面僵尸以后永不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率按最佳置换的规则,往后寻找,最后一个出现的页号就是要淘汰的页面最佳置换算法可以保证最低的缺页率,但实际上,只有在进程执行的过程中才能知道接下来会访问到的是哪个页面,操作系统无法提前预判页面访问序列,因此, 最佳

2021-06-21 01:44:52 3089 1

原创 3请求分页管理方式

请求分页管理方式请求分页管理与基本分页存储管理的主要区别:在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存(请求调页功能),然后继续执行程序。若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存(操作系统要提供页面置换的功能,将暂时用不到的页面换出到外存)一. 页表机制与基本分页管理相比,请求分页管理中,为了实现“请求调页”,操作系统需要知道每个页面是否已经调入内存:如果还没有调入,那么需要知道该页面在外存中存放的位置当内存空间不够时,要实现“页面置

2021-06-21 01:42:01 477 1

原创 2虚拟内存

虚拟内存的基本概念一. 传统存储管理方式的特征和缺点​ 很多暂时用不到的数据也会长期占用内存,导致内存利用率不高。一次性:作业必须一次性全部装入内存后才能开始运行,这回造成两个问题:(1)作业很大时,不能全部装入内存,导致大作业无法运行;(2)当大量作业要求运行时由于内存无法容纳全部作业,因此只有少量作业能运行,导致多道程序并发度下降**驻留性:**一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束,事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大

2021-06-21 01:38:15 138

原创 11页式存储

像微信这样有1GB大小,如果使用的时候把它全调入主存,还需要连续的这么多的空间,这样的要求是很"严格"的.所以就需要分页, 一个"页" 要和一个"块"的大小一样, 可以把这些"页"离散地放在内存中离散的"块"中."分页"是逻辑层面的"分块"是物理层面的3.7 虚拟存储器主存和联机工作的辅存共同构成了虚拟存储器,二者在硬件和系统软件的共同管理下工作.对于应用程序员而言,虚拟存储器是透明的,虚拟存储器具有主存的速度和辅存的容量,提高了存储系统的性价比3.7.1 虚拟存储器的基本概念虚拟存储器将主存

2021-04-16 18:30:34 932 2

原创 10半导体随机存储器

半导体随机存储器Cache 由SRAM实现,主存储器由DRAM实现; 它们都属于易失性存储器,只要电源被切断,原来保存的信息便会丢失.一. SRAM 和DRAM(一). SRAM的工作原理存储元–>存储单元---->存储体静态随机存储器的存储元是用==双稳态触发器(六晶体管MOS)==来记忆信息的,因此即使信息被读出后,它仍保持其原状态而不需要再生(非破坏性读出)SRAM的存取速度快,但集成度低,功耗较大,所以一般用来组成高速缓冲存储器(二). DRAM的工作原理动态随机存储器是

2021-04-14 18:32:01 874

原创 9数据的存储和排列

一. 数据的"大端方式"和"小端方式"在存储数据时,数据从低位到高位可以按从左到右排列,也可以按从右到左排列.通常用最低有效字节(LSB)和最高有效字节(MSB)来分别表示数的低位和高位.例如,在32位计算机中,一个int型变量i的机器数为01 23 45 67H,其最高有效字节MSB=01H,最低有效字节LSB=67H现代计算机基本上都采用字节编址,即每个地址编号中存放1字节,不同类型的数据占用的字节数不同,int和float类型数据占4字节,double类型数据占8字节等,而程序中对每个数据只给定

2021-04-14 18:30:02 842

原创 8浮点数得表示和运算

常考浮点数规格化一. 浮点数的表示浮点数表示法是指以适当的形式将比例因子表示在数据中,让小数点的位置根据需要而浮动。这样,在位数有限的情况下,既扩大了数的表示范围,又保持了数的有效精度浮点数的表示格式浮点表示为**N=rE×MN=r^{E} \times MN=rE×M**,式中,r是浮点数阶码的底,与尾数的基数相同,通常r=2.E和M都是有符号的定点数,E称为阶码,M称为尾数.N是浮点数的真值;可见浮点数由阶码和尾数两部分组成[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上

2021-04-02 18:01:04 731

原创 7强制类型转换

在C语言中定点整数是用“补码”存储得,比如:int,short, long给出半字地址,只需要后面添加1个0(即逻辑左移)就可转换为字节地址,char 占1个字节short占2个字节int 占个字节

2021-04-02 18:00:32 115

原创 6定点数的运算

一. 导入0000 1110 —>141000 1110 ----> -141001 1100-(4+8+16)= -28如上所示,14-14 如果用正14和负14进行相加的话,得到的结果是不正确的。如果用正14减去正十四,结果是正确的,但是要实现减法的话就得使用减法器,这样就会增加硬件成本。所以,我们可以将减法转换为加法运算!二. 模运算的性质10-3=7 -3mod12=910+9=19 19/12=1…7即19mod12=7带余除法

2021-04-01 18:16:33 706

原创 5定点数的表示

一. 定点数v.s. 浮点数定点数: 小数点的位置固定. Eg: 996.007 -----常规计数小数点不再使用"."表示,而是约定它的位置将小数点的位置固定在数据的最高位之前或固定在最低位之后,一般常称前者为定点小数,后者为定点整数当x0=0,x1∼xnx_{0}=0, \quad x_{1} \sim x_{n}x0​=0,x1​∼xn​均为1时,X为其所能表示的最大正数,真值等于1−2−n1-2^{-n}1−2−n(=2−1+2−2+2−3+...+2−n2^{-1}+2

2021-04-01 18:06:06 1690

原创 4数据的表示和运算

真值和机器数这种带"+“或”-"符号的数称为真值,真值是机器数所代表的实际值在计算机中,通常采用数的符号和数值一起编码的方式来表示数据.常用的有原码,补码和反码表示法,这几种表示法都将数据的符号数字化,通常用==“0"表示"正”, 用"1"表示"负"==;比如0101表示+5,这种把符号"数字化"的数称为机器数字符与字符串字符都必须按照一定的规则用一组二进制编码来表示字符编码ASCII码目前,国际上普遍采用的一种字符系统是7位二进制编码的ASCII码(每个字节的最高位保持为0,可用于传输时的

2021-04-01 18:00:02 253

原创 3第一章常见问题和易混淆知识点

同一个功能既可以由软件实现又可以由硬件实现在逻辑功能上,软件和硬件是等效的(注意是等效,不是等价). 因此,在计算机系统中,许多功能既可以由硬件直接实现,又可以在硬件的配合下由软件实现.例如,乘法运算既可以用专门的乘法器(主要由加法器和移位器组成)实现,也可用乘法子程序(主要由加法指令和移位指令等组成)来实现.翻译程序,汇编程序,编译程序,解释程序的区别和联系是什么翻译程序是指把高级语言源程序翻译成机器语言程序(目标程序)的软件翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成..

2021-04-01 17:57:52 461

原创 2计算机的主要性能指标

计算机的主要性能指标一. 主要的性能指标机器字长指计算机进行一次整数运算所能处理的二进制数据的位数,通常与CPU的寄存器位数, 加法器相关. 因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高,计算机字长通常选定为字节(8位)的整数倍数据通路带宽指外部数据总线一次所能并行传送信息的位数;与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同主存容量指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数×字长(如512K × 16位)来表示存

2021-04-01 17:57:22 1189

原创 1计算机系统的组成

软件是指在硬件上运行的程序和相关的数据及文档. 计算机系统性能的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥又离不开硬件的支持,对某一功能来说,其既可以用软件实现,又可以用硬件实现,则称为软硬件在逻辑上是等效的.在设计计算机系统时,要进行软/硬件的功能分配.通常来说,一个功能若使用较为频繁且用硬件实现的成本较为理想,则使用硬件解决可以提高效率,而用软件实现可以提高灵活性,但效率往往不如硬件实现高.计算机硬件的基本组成1. 早期的冯·诺依曼机冯·诺依曼在研究EDVAC机时提出了"存储程

2021-04-01 17:55:16 333

原创 抽象数据类型映射-------ADT Map

抽象数据类型"映射"-------ADT Mappython 最有用的数据类型之一: ‘字典’字典是一种可以保存key-value键值对的数据类型,其中关键码key可用于查询关联的数据值data,这种键值关联的方法称为"映射Map"ADT Map的结构时键-值关联的无序集合:关键码具有唯一性通过关键码可以唯一确定一个数据值ADT Map定义的操作如下:Map():创建一个空映射,返回空映射对象;put(key,val): 将key-val关联对加入映射中,如果key已存在,将val替换

2021-03-10 18:25:40 296

原创 散列冲突解决方案

散列冲突解决方案如果两个数据项被散列映射到同一个槽,需要一个系统化的方法在散列表中保存第二个数据项,这个过程称为==“解决冲突”==如果散列函数是完美的,那么就不会有散列冲突,但完美散列函数常常是不现实的,解决散列冲突成为散列方法中很重要的一部分解决散列冲突的一种方法就是为冲突的数据项再找一个开放的空槽来保存—“线性探测”最简单方法就是从冲突的槽开始往后扫描,直到碰到一个空槽,如果到散列表尾部还未找到,则从手部接着扫描这种寻找空槽的技术被称为"开放定址"(open addressing)向

2021-03-10 18:25:05 520

原创 散列

散列(哈希)一. 概念如果数据项之间是按照大小排好序的话,就可以利用二分查找来降低算法复杂度;现在我们进一步来构造一个新的数据结构,能使得查找算法的复杂度降为O(1),这种概念叫做"散列Hashing"能够使得查找的次数降低到常数级别,我们对数据项所处的位置就必须有更多的先验知识如果我们事先能知道要找的数据项应该出现在数据集中的什么位置,就可以直接到那个位置看看数据项是否存在即可又数据项的值来确定其存放位置,如何能做到这一点呢?散列表是一种数据集,其中数据项的存储方式尤其有利于将来

2021-03-10 18:23:43 206

原创 中缀表达式转换为前缀和后缀形式

中缀表达式转换为前缀和后缀形式A+B*C, 如果写成全括号形式:(A+(B*C)), 显式地表达了计算次序, 每一对括号都包含了一组完整的操作符和操作数看子表达式(B*C)的右括号,如果把操作符*移到右括号的位置,替代它,再删去左括号,得到BC*进一步再把更多的操作符移动到相应的右括号处替代它,再删去左括号,那么整个表达式就转换为后缀表达式了同样地,如果我们把操作符移动到左括号的位置替代它,然后删掉所有的右括号,也就得到了前缀表达式.所以,中缀表达式转换为前缀和后缀形式只需两

2021-03-10 18:22:51 694 1

原创 图---最短路径问题

图—最短路径问题当我们通过网络浏览网页,发送电子邮件,QQ消息传输的时候,数据会在联网设备之间流动当PC上的浏览器向服务器请求一个网页时,请求信息需要先通过本地局域网,由路由器A发送到Internet,请求信息沿着Internet中的众多路由器传播,最后到达服务器本地局域网所属的路由器B,从而传给服务器标注"Internet"的云状结构,实际上是一个由路由器连接成的网络这些路由器各自独立而又协同工作,负责将信息从Internet的一端传送到另一端我们可以通过"tracerou

2021-02-26 18:06:44 172

原创 图的应用拓扑排序

图的应用:拓扑排序(Toplogical Sort)很多问题都介意转化为图,利用图算法解决,比如早餐吃薄煎饼的过程:以动作为顶点,以先后次序为有向边从工作流程图得到工作次序排列的算法称为"拓扑排序"拓扑排序处理一个DAG,输出顶点的线性序列使得两个顶点v,w,如果G中有(v,w)边,在线性序列中v就出现在w之前拓扑序列广泛应用在依赖事件的排序上,还可以用在项目管理,数据库查询优化和矩阵乘法的次序优化上拓扑排序可以采用DFS很好地实现将工作流程建立为图,工作项是节点

2021-02-26 16:12:19 147

原创 图--强连通分支

图–强连通分支我们关注一下互联网相关的非常巨大图由主机通过网线(或无线)连接而形成的图以及由网页通过超链接连接而形成的图以网页(URI作为id)为顶点,网页内包含的超链接作为边,可以转换为一个有向图我们可以猜想,web的底层结构可能存在某些同类网站的聚集在图中发现高度聚集节点群的算法,即寻找"强连通分支"算法强连通分支,定义为图G的一个子集CC中的任意两个顶点v,w之间都有路径来回,即(v,w) (w,v)都是C的路径,而且C是具有这样性质的最大子集下图是

2021-02-26 16:06:01 2544

原创 图--深度优先搜索

图–深度优先搜索骑士周游问题:在一个棋盘山,一个棋子"马",按照"马走日"的规则,从一个格子出发,要走遍所有棋盘格恰好一次,把一个这样的走棋序列称为一次"周游"采用图搜索算法,是解决骑士问题最容易理解和编程的方案之一解决方法:首先将合法走棋次序表示为一个图将棋盘格作为顶点按照"马走日"规则的走棋步骤作为连接边建立每一个棋盘格的所有合法走棋步骤能够到达的棋盘格关系图采用图搜索算法搜寻一个长度为(行×列-1)的路径,路径上包含每个顶点恰一次深度优先搜索解决骑士周游

2021-02-26 16:03:44 184

原创 图---广度优先搜索(BFS)

图—广度优先搜索(BFS)Breadth First Search是搜索图的最简单算法之一,给定图G,以及开始搜索的起始顶点sBFS搜索所有从s可到达顶点的边,而且在达到更远的距离k+1的顶点之前,BFS会找到全部距离为k的顶点可以想象为以s为根,构建一棵树的过程,从顶部向下逐步增加层次广度优先搜索能保证在增加层次之前,添加了所有兄弟结点到树中从Fool开始搜索为了跟踪顶点的加入过程,并避免重复顶点,要为顶点增加3个属性距离distance:从起始顶点到此顶点路径长度

2021-02-26 16:01:03 927

原创

图圈(cycle)圈是首尾顶点相同的路径, 如下图(V5, V2, V3,V5)是一个圈如果有向图中不存在任何圈,则称为"有向无圈图(DAG)"–directed acyclic graph图的抽象数据类型graph(): 创建一个空的图addVertex(vert): 将顶点vert加入图中addEdge(fromVert, toVert): 添加有向边addEdge(fromvert, tovert, weight): 添加带权的有向边getVertex(vKey): 查找名称为vK

2021-02-26 15:59:41 91

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除