django面试题
摘要:10.Django 本身提供了 runserver,为什么不能用来部署? runserver 方法是调试 Django 时经常用到的运行方式,它使用 Django 自带的 WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。 uWSGI 是一个 W
阅读全文
布隆过滤器(实际操作)
摘要:概念 布隆过滤器是概率型数据结构,由一个二进制向量和一系列随机映射函数组成。它可以用于检索一个元素是否在一个集合中。 实现过程 定义向量长度,并赋初值为0. 定义N个hash函数,并指定个数(1,N) 将需要存储的值经过n个hash计算得出的值作为key来修改向量的值(0=>1) 查询某个变量值是否
阅读全文
面试总结 别人的 非原创
摘要:1、面试指导方针 在面试官问到技术的时候 是什么?有什么特点? what 为什么用它? why 在项目的哪一个地方用过? 使用的具体步骤?使用过程中问题总结? how 2、面试自我介绍之大套路 3、排序算法? 冒泡排序: 每次拿两个数进行比较,总是把小的放在最前面,大的放在最后面,第二次是第二个数和
阅读全文
redis分布式锁
摘要:1. 分布式锁本质是占一个坑,当别的进程也要来占坑时发现已经被占,就会放弃或者稍后重试 2. 占坑一般使用 setnx(set if not exists)指令,只允许一个客户端占坑 3. 先来先占,用完了在调用del指令释放坑 > setnx lock:codehole true .... do
阅读全文
Linux目录管理常用指令
摘要:pwd # 查看你当前所在的目录 cd # 切换目录 ls # 查看显示目录的内容 du # 统计目录和文件空间的占用情况 mkdir # 创建新目录 rmdir # 删除空目录 touch # 创建文件 rm # 删除文件 ln # 创建硬链接 ln -s # 创建软链接 cp # 复制文件或目录
阅读全文
生成器
摘要:1. 生成器定义 生成器可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他数据类型需要调用自己的内置iter方法) 在Python中,一边循环,一边计算的机制,称为生成器。 2. 生成器的作用 1. 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的。 2
阅读全文
Python上的MVC和MVT理解,请求头,请求体,请求行的理解
摘要:MVC理解 MVC是由三部分组成的分别为 Model 模型,主要是对数据库层的访问,对数据库中的数据可以进行增删改查的操作 View ,用于封装结果 生成页面展示html内容 Controller 控制器 ,用于接受请求处理业务逻辑,与model和view交互,返回结果 MVT理解 MVT也是有三部
阅读全文
sellect、poll、epoll
摘要:1. select (能监控数量有限,不能告诉用户程序具体哪个连接有数据) 1. select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点 2. select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024 3. select监控socket
阅读全文
冒泡法排序
摘要:原理:拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结束后最上面那个一定是最大的数 #! /usr/bin/env pythonf # -*- coding: utf-8 -*- def bubble_sort(li): for i in rang
阅读全文
python垃圾回收机制重置
摘要:1. 引用计数 1)当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1. 2)当对象的引用计数减少为0时,就意味着对象已经再没有被使用了,可以将其内存释放掉。 2. 标记-清除 1)它分为两个阶段:第一阶段是标记阶段,GC会把所有的活动对象打上标记,第
阅读全文
高阶函数
摘要:1. lambda基本使用 1. lambda只是一个表达式,函数体比def简单很多。 2. lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 3. lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。 4. 格式:lambd
阅读全文
MySQL慢查询
摘要:MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是记录运行10秒以上的语句。默认情况下
阅读全文
codis部署
摘要:1. 单个codis代理支撑的QPS比较有限,通过启动多个codis代理可以显著增加整体QPS 2. 多codis还能起到容灾功能,挂掉一个codis代理还有很多codis代理可以继续服务
阅读全文
MySQL-主从一致校验
摘要:1. 场景需求 2020年春,由我司开发的考试系统项目,经过不懈的运营努力,用户群体每日以指数倍激增,现考虑到数据库的安全可靠和访问性能问题,决定在业务中集成部署Mysql主从复制以实现读写分离等功能;巧的是,在想要进行主从复制操作前,我们的主要业务数据库已经工作了一段时间,现在要添加一台新的从数据
阅读全文
哨兵模式----sentinel
摘要:1. sentinel作用 1. 当用Redis做主从方案时,假如master宕机,Redis本身无法自动进行主备切换 2. 而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。 2. sentinel原理 1.
阅读全文
青蛙跳台阶
摘要:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 fib = lambda n: n if n < 2 else 2 * fib(n - 1)
阅读全文
redis雪崩&穿透&击穿
摘要:1. 缓存穿透 1)定义 1. 缓存穿透是指查询一个一定不存在的数据,由于缓存不命中,接着查询数据库也无法查询出结果, 2. 虽然也不会写入到缓存中,但是这将会导致每个查询都会去请求数据库,造成缓存穿透; 2)解决方法 :布隆过滤 1. 对所有可能查询的参数以hash形式存储,在控制层先进行校验,不
阅读全文
快排
摘要:#! /usr/bin/env python # -*- coding: utf-8 -*- def quick(list): if len(list) < 2: return list tmp = list[0] # 临时变量 可以取随机值 left = [x for x in list[1:]
阅读全文
列表常用方法
摘要:#1. append用于在列表末尾追加新的对象 a = [1,2,3] a.append(4) #the result : [1, 2, 3, 4] #2. count方法统计某个元素在列表中出现的次数 a = ['aa','bb','cc','aa','aa'] print(a.count('aa
阅读全文
字典常用方法
摘要:#1. clear方法清除字典中所有的项,这是一个原地操作,所以无返回值(或则说返回None) d = {'name':"tom"} d.clear() print(d) #the result : {} #2. fromkeys方法使用给定的键建立新的字典,每个键都对应一个默认的值None pri
阅读全文