自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis 事务 多进程模拟秒杀 保证库存的正确 lua脚本和watch的方法

三种方法来实现lpop的 原子操作 10个商品就 lpush 10个数据 抢购开始用lpop来判断是否还存在库存watch实现 (代码是这种方法)watch库存键, multi后如果该key被其他客户端改变, 事务操作会抛出WatchError异常lua脚本import redisfrom redis import WatchErrorfrom concurrent.futures import ProcessPoolExecutorr = redis.Redis(h

2020-06-18 14:22:56 374

原创 题120. 三角形最小路径和

给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自下往上给二维列表的本身做最小的自加 判断相邻的和的最小值 并赋值给对应位置class Solution(object): def minimumTotal(self, triangle...

2020-04-30 10:39:13 197

原创 53题:最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。两种方法class Solution(object): def maxSubArray(self, nums): """ ...

2020-04-30 10:17:34 202

转载 redis做订阅的方法和缺陷

链接:python redis做订阅redis的发布订阅缺陷

2020-04-10 11:14:18 2720

原创 Mysql百万级分页查询的优化 (组合索引的使用)

当一个mysql表数据达到百万,分页查询的功能就会十分缓慢使用组合索引解决问题根据实际情况业务和表结构来创建对应的组合索引的列消息表:存储大量的关于各个用户的消息 每次查询消息记录涉及的数据非常大所以根据我的分页查询业务来创建的索引 效率提升很大 KEY `message_use_limit` (`msg_to`,`chat_type`,`msg_from`,`timestamp`,...

2020-04-08 11:20:44 367

原创 Redis相关的一些详细说明

redis的基本数据类型字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。所有数据类型的一些具体方法使用教程String:这是最简单的类型,就是普通的 set 和 get,做简单的 KV 缓存。实际应用场景:缓存功能:String字符串是最常用的数据类型,不仅仅是Redis,各个语言都是最基本类型,因此,利用Redis作为缓存,配合其它数据库作为...

2020-04-01 18:21:52 113

转载 B+树及插入和删除操作详解

转载http://data.biancheng.net/view/61.html

2020-03-27 14:17:57 653

原创 mysql优化 索引使用应该注意的问题

对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。应尽量避免在 where 子句中使用 or 来连接条件,如果...

2020-03-27 10:24:32 136

原创 数据库分表分库的原理说明和实现的图解 以及使用的方式

一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶...

2020-03-26 17:04:11 1279

原创 Mysql数据库的主从同步,实现读写分离 详细配置说明 以及错误解决办法

利用主从数据库来实现读写分离,从而分担主数据库的压力。在多个服务器上部署mysql,将其中一台认为主数据库,而其他为从数据库,实现主从同步。其中主数据库负责主动写的操作,而从数据库则只负责主动读的操作(slave从数据库仍然会被动的进行写操作,为了保持数据一致性),这样就可以很大程度上的避免数据丢失的问题,同时也可减少数据库的连接,减轻主数据库的负载。在上面的模型中,Mysql-A就是主服务器...

2020-03-26 11:12:24 193

转载 python中struct模块之字节型数据的处理方法 以及tcp粘包现象的解决

基本的信息存储单位位(Bit) :度量数据的最小单位字节(Byte):最常用的基本单位,一个字节有8位K字节 1k=1024 byteM(兆)字节 1M=1024KG(吉)字节 1G=1024MT(太)字节 1T=1024G字节顺序一个数据有多个字节表示的时候,字节的顺序不同也就决定了值,在struct中有以下几种字节顺序:对于字节顺序,只有大端和小端两种方式...

2020-03-25 16:34:41 624

转载 MySQL分区表 的一些具体使用和实例说明

mysql分区简介水平分区(HorizontalPartitioning)这种形式的分区是对根据表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。水平分区一定要通过某个属性列来分割。常见的比如年份,日期等。垂直分区(VerticalPartiti...

2020-03-24 18:31:32 345 1

原创 Python实现IEEE754数据十六进值数与浮点数的转换 带socket加密传输的实例

十六进制数据转换为对应的浮点数python2的版本import structdef learn_to_pack_func(): '' while(1): op_id = int(raw_input('please select float to hex(0) or hex to float(1),other value to quit:')) ...

2020-03-24 12:16:23 992

原创 supervisord 的使用和配置

Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,...

2020-03-24 10:06:06 386

原创 zmq 模式 ROUTER和DEALER 的实例

(1)对于Request类型的socket,它是同步的,它一个时刻只能对一个连接进行操作,在一个连接上发送了数据之后,必须接着在这个连接上执行recv,也就是send与recv必须同时匹配出现(2)Response类型的socket也是同步的,与Request的意思差不多,不过顺序是先recv再send(3)Router类型的socket是异步的,他可以在随时执行recv与send,而不必在同...

2020-03-23 16:44:58 7364 1

原创 zmq一些扩展模式 客户端服务器 一对多 多对多问题 订阅模式的扩展等

级联模式通常,一个节点,即可以作为 Server,同时也能作为 Client,通过 PipeLine 模型中的 Worker,他向上连接着任务分发,向下连接着结果搜集的 Sink 机器。因此,我们可以借助这种特性,丰富的扩展原有的三种模式。例如,一个代理 Publisher,作为一个内网的 Subscriber 接受信息,同时将信息,转发到外网,其结构图多个服务器ZMQ 和 Socket ...

2020-03-20 17:24:58 4560

转载 zmq 发布/订阅模式的详解 python代码

发布/订阅模式的特点:1.一个发布者,多个订阅者的关系,1:n;2.当发布者数据变化时发布数据,所有订阅者均能够接收到数据并处理。这就是发布/订阅模式。使用SUB设置一个订阅时,必须使用zmq_setsockopt()对消息进行过滤,例如:服务端代码import zmqcontext = zmq.Context()socket = context.socket(zmq.SUB...

2020-03-20 16:00:00 3677 1

原创 python中zmq的基础三种模式

ZMQ 的三个基本模型ZMQ 提供了三个基本的通信模型,分别是“Request-Reply “,”Publisher-Subscriber“,”Parallel Pipeline”请求应答模式(Request-Reply)(rep 和 req)消息双向的,有来有往,req端请求的消息,rep端必须答复给req端订阅发布模式 (pub 和 sub)消息单向的,有去无回的。可按照发布端可发...

2020-03-20 14:12:40 2477

原创 Docker的一些详细使用方法

简介docker是一种linux容器技术。容器有效的将由单个操作系统挂管理的资源划分到孤立的组中,以便更好的在组之间平衡有冲突的资源使用需求 。每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,资源需求远远低于虚拟机。镜像:类似虚拟机镜像容器:类似linux系统环境,运行和隔离应用。容器从镜像启动的时候,docker会在镜像的最上一层创建...

2020-03-19 16:31:56 301

原创 ubuntu16.04 server 添加SWAP虚拟内存文件 | 每次挂起虚拟机后都狂读(写)硬盘,为什么?解决办法

ubuntu16.04 server 添加SWAP虚拟内存文件https://blog.csdn.net/qq_17046291/article/details/79023305每次挂起虚拟机后都狂读(写)硬盘,为什么?用VMware Player,直接点右上角X挂起后,硬盘灯长亮不熄好几分钟,期间电脑很卡,基本不能用,是为什么?虚拟机内存才分配1G,应该不用这么久,有时候挂起后很快就完了。...

2019-06-18 11:17:24 269

原创 Python 动态加载不同文件内的方法或者类等

Python 动态加载不同文件内的方法或者类等 import importlib company_id=“py文件名” module = importlib.import_module('inference_{}'.format(company_id)) #通过module可以取出文件中所有对象 infer = module.Inference(compan...

2019-06-06 11:51:36 1012

原创 解决keras model 多模型使用的方法

Tensor is not an element of this graph; deploying Keras model解决多模型方法 graphhttps://stackoverflow.com/questions/51127344/tensor-is-not-an-element-of-this-graph-deploying-keras-model?r=SearchResults...

2019-06-06 09:53:17 2276 1

原创 字符a-z, A-Z可以编码为1-26。"A"->"1", "a"->"1", "B"->"2", "b"->"2", "Z"->"26", "z"->"26" 现在输入一个数字序列,计算有多少种方式

Python 实现'''字符a-z, A-Z可以编码为1-26。"A"->"1", "a"->"1", "B"->"2", "b"->"2", "Z"->"26", "z"->"26"现在输入一个数字序列,计算有多少种方式可以解码成字符a-zA-Z组成的序列。例如:输入:19输出:6 (ai, Ai, aI, AI, s, S)输入:268输出...

2019-05-27 11:47:35 2451

原创 Python实现 链表的逆序

链表逆序def func(head): if head == None or head.next == None: #边界条件 return head p1 = head #循环变量1 p2 = head.next #循环变量2 tmp = None #保存数据的临时变量 while p2: tmp = p2.next ...

2019-05-06 11:40:11 1072 2

原创 Python 查找二叉树的节点数目

计算节点的数目def leave(root): #递归求叶子节点个数if root==None: return 0else: a = (1+leave(root.lchild)+leave(root.rchild))return a计算叶子结点的数目def leave1(root): #递归求叶子节点个数if root==None: return 0elif root...

2019-05-06 11:15:42 2498

原创 python 二分查找

二分查找是有条件的,首先是有序,其次因为二分查找操作的是下标,所以要求是顺序表最优时间复杂度:O(1)最坏时间复杂度:O(logn)def binary_chop(alist, data):“”"递归解决二分查找:param alist::return:“”"n = len(alist)if n < 1:return Falsemid = n // 2if ...

2019-05-06 09:56:16 95

原创 找出文本中的中文,计数并按照逆序排序输出到文件中

请读取以下附文(中英文混杂,有标点符号),将文中所有中文字找出来,且按每字在文章中出现的次数进行倒排,将结果输出到一个文件中(按行显示各字和统计个数)。可以选择使用Python/Golang/C写代码。请注意考虑到文章文字较多,比如达到上万字时的执行性能和内存使用问题,可以考虑使用更优的比对和排序算法。文件内容部分如下:第一部分:六级英语阅读解析 Science, in practice,...

2019-05-06 09:47:51 181

原创 python项目导出所需要的依赖库或者整个环境的库

使用pip freezepip freeze > requirements.txt这个命令安装了环境中的所有第三方包,一般在虚拟环境中可以这样使用比较方便。安装命令pip install -r requirements.txt使用 pipreqs如果想要在正常的环境下整理出一个项目所使用的第三方库可以使用pipreqs第一步安装pip install pipreqs使...

2019-04-28 17:02:54 6157 1

原创 python 二叉树右视图

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]思路:先把二叉树的层序遍历搞定,然后把每一层最后一个加入到result里即可。# Definition for a binary tree node.# class TreeNode(object):# ...

2019-04-16 16:40:17 832

转载 数据库索引原理

**详情:**https://www.cnblogs.com/aspwebchh/p/6652855.html想要理解索引原理必须清楚一种数据结构「平衡树」(非二叉),也就是b tree或者 b+ tree,重要的事情说三遍:“平衡树,平衡树,平衡树”。当然, 有的数据库也使用哈希桶作用索引的数据结构 , 然而, 主流的RDBMS都是把平衡树当做数据表默认的索引数据结构的。我们平时建表的时候都...

2019-04-16 11:59:14 79

原创 sqlchemy 一对多 多对多 创建 查询等方法 filter和filter_by的区别

1、filter引用列名时,使用“类名.属性名”的方式,比较使用两个等号“==”2、filter_by引用列名时,使用“属性名”,比较使用一个等号“=”3、在使用多条件匹配的时候,filter需要借助sqlalchemy里的and_ ; 而filter_by不需要,直接把多个匹配条件写在一起4、在使用多条件匹配时,用到>=、>、<=、<的情况,貌似不能使用filter...

2019-04-16 09:54:46 466

原创 python Flask数据迁移

文件的迁移模块:pip install flask-migratepip install flask-script(1) 实例化from flask_migrate import Migrate,MigrateCommandfrom flask_sqlalchemy import SQLalchemyapp = Flask(__name__)db = SQLalchemy(ap...

2019-03-27 11:33:17 211

转载 python 堆排序

详情:> https://www.jianshu.com/p/d174f1862601代码from collections import dequedef swap_param(L, i, j): L[i], L[j] = L[j], L[i] return Ldef heap_adjust(L, start, end): temp = L[start...

2019-03-25 13:58:36 110

原创 python 几种对图片处理的的区别

读取图片pylab.imread和PIL.Image.open读入的都是RBG顺序,而cv2.imread读入的是BGR顺序,混合使用的时候要特备注意1 matplotlib.pylabimport pylab as pltimport numpy as npimg = plt.imread('examples.png')print(type(img), img.dtype, np....

2019-03-22 10:26:26 182

转载 在线编程——动态规划常见的面试问题总结(Python)

题目详情:https://blog.csdn.net/zichen_ziqi/article/details/82184495O、求解方法:阶段 + 状态变量 + 状态转移方程 + 边界条件(1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。(2)确定状态和状态变量:将问题发展到各个阶段时所处于的各...

2019-03-18 10:35:51 133

原创 python 单链表

class Node(): # 节点 def __init__(self, ele): self.ele = ele self.next = Noneclass SingleLinkList(): # 单链表 def __init__(self, node=None): self._head = node ...

2019-03-13 11:57:32 145

原创 python实现对数据比较多的两个txt文件的对比处理(题目)

现有两个文本文件ids.txt和md5s.txtids.txt有1万行,按行存储了一些idmd5s.txt有50万行,按行存储了包含上述id的一些id的md5值和对应的类型现在要求你写一个python程序,计算出ids.txt里面的id存在的每个类型在ids.txt中出现的次数示例:ids.txt8pud48wb4grzd799c53u4krayxlclgjsh7v05rc7roz...

2019-03-13 10:00:24 5472 2

原创 python实现二叉树 和几种遍历方式

class Node(object): # 创建节点 def __init__(self, a): self.ele = a self.left = None self.right = Noneclass Tree(object): # 创建树 def __init__(self): self.r...

2019-03-13 09:56:24 131

原创 扑克牌游戏中, 使用python实现一个查找顺子的算法

在扑克牌游戏中, 需要实现一个查找顺子的算法:(连续的数字即为顺子), 随机发N张牌, 从中挑出最长的顺子, 并返回其长度, 如果没有顺子返回0. 现在手上的牌为[12,3,4,10,6,5,6,8,11,9,11,11,9,12,1].# 1.去重,排序m= [12,3,4,10,6,5,6,8,11,9,11,11,9,12,1]m.sort()s = set(m)m1 = list...

2019-02-28 10:28:44 2210

转载 python垃圾回收机制

引用计数首先要理解的是在Python中一切皆对象,所有的变量、函数以及类都是绑定对应的对象,变量名通过赋值绑定对象的内存地址,产生一个引用关系,通过这个引用关系可以获取duix对象的值。同一个对象可以被多个变量绑定,分别会产生多个引用关系。Python中的垃圾回收是以引用计数为主,分代收集为辅。引用计数的缺陷是循环引用的问题。在Python中,如果一个对象的引用数为0,Python虚拟机就会...

2019-02-28 09:57:32 286

python logging 模块

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息; print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;

2018-12-19

空空如也

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

TA关注的人

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