随笔分类 -  python

摘要:使用redis-py的两个类Redis和StrictRedis时遇到的坑 前言: 今天产品经理说,有几个队列排序的功能不能用了。对比了下以前的代码查到了一个原因,这个比较的坑,总结起来也是自己没好好看文档。 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,Str 阅读全文
posted @ 2019-11-19 15:25 南哥的天下 阅读(2106) 评论(0) 推荐(1)
摘要:深入理解Python异步编程(上) 前言 很多朋友对异步编程都处于“听说很强大”的认知状态。鲜有在生产项目中使用它。而使用它的同学,则大多数都停留在知道如何使用 Tornado、Twisted、Gevent 这类异步框架上,出现各种古怪的问题难以解决。而且使用了异步框架的部分同学,由于用法不对,感觉 阅读全文
posted @ 2019-11-19 10:03 南哥的天下 阅读(375) 评论(0) 推荐(2)
摘要:socket编程中主动关闭VS被动关闭 tcp中server,client都可能是主动关闭方或者被动关闭方,现阐述下两者之间的关系: 客户端(client) 服务器(server) close() Fin x -> 读通道关闭(close_wait) 写通道关闭 <- Ack x+1 读通道关闭(t 阅读全文
posted @ 2019-11-18 16:58 南哥的天下 阅读(3618) 评论(0) 推荐(0)
摘要:python socket 编程之三:长连接、短连接以及心跳 长连接:开启一个socket连接,收发完数据后,不立刻关闭连接,可以多次收发数据包。 短连接:开启一个socket连接,收发完数据后,立刻关闭连接。 心跳:长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态。 在python里 阅读全文
posted @ 2019-11-18 16:09 南哥的天下 阅读(4418) 评论(0) 推荐(0)
摘要:python之tcp自动重连 操作系统: CentOS 6.9_x64 python语言版本: 2.7.13 问题描述 现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连。 测试服务器示例代码: https://github.com/mike-zhang/py 阅读全文
posted @ 2019-11-18 15:57 南哥的天下 阅读(2315) 评论(0) 推荐(0)
摘要:python mysql使用持久链接 python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能~ 思路: 1 python mysql 的cping 函数会校验链接的可用性,如果连接不可用将会产生异常 2 利用这一特性,构造一个连接丢失的循环,不断尝试连 阅读全文
posted @ 2019-11-18 14:49 南哥的天下 阅读(15493) 评论(0) 推荐(4)
摘要:multiprocessing.Pool报pickling error 现象 multiprocessing.Pool传递一个普通方法(不在class中定义的)时, 能正常工作. 但在class中定义的方法使用multiprocessing.Pool会报pickling error错误. 报错代码 阅读全文
posted @ 2019-11-18 11:15 南哥的天下 阅读(2247) 评论(0) 推荐(0)
摘要:Python 数据库的Connection、Cursor两大对象 pymysql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同。 Python 数据库图解流程 Connection、Cursor比喻 Connection()的参数列表 host,连接的数据库服务器主 阅读全文
posted @ 2019-11-16 22:02 南哥的天下 阅读(10221) 评论(0) 推荐(0)
摘要:python中的tcp示例详解 目录 TCP简介 TCP介绍 TCP特点 TCP与UDP的不同点 udp通信模型 tcp客户端 tcp服务器 tcp注意点 python中的tcp示例详解 目录 TCP简介 TCP介绍 TCP特点 TCP与UDP的不同点 udp通信模型 tcp客户端 tcp服务器 t 阅读全文
posted @ 2019-11-10 14:30 南哥的天下 阅读(1463) 评论(0) 推荐(0)
摘要:Python网络编程篇之select和epoll 1. select 原理 在多路复⽤的模型中, ⽐较常⽤的有select模型和epoll模型。 这两个都是系统接⼝, 由操作系统提供。 当然, Python的select模块进⾏了更⾼级的封装。 ⽹络通信被Unix系统抽象为⽂件的读写, 通常是⼀个设 阅读全文
posted @ 2019-11-08 14:12 南哥的天下 阅读(478) 评论(0) 推荐(0)
摘要:select、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组(在linux中一切事物皆文件,块设备,socket连接等。),当select()返回后,该数组中就绪的文件描述符便会被内核修改标 阅读全文
posted @ 2019-11-08 13:58 南哥的天下 阅读(1470) 评论(0) 推荐(0)
摘要:python网络编程——IO多路复用之epoll python网络编程——IO多路复用之epoll 1、内核EPOLL模型讲解 此部分参考http://blog.csdn.net/mango_song/article/details/42643971博文并整理 首先我们来定义流的概念,一个流可以是文 阅读全文
posted @ 2019-11-08 13:22 南哥的天下 阅读(421) 评论(0) 推荐(0)
摘要:python实现并发服务器实现方式(多线程/多进程/select/epoll) 并发服务器开发 并发服务器开发,使得一个服务器可以近乎同一时刻为多个客户端提供服务。实现并发的方式有多种,下面以多进程,多线程,IO多路复用等方式实现并发。这里使用网络编程中的TCP服务器和客户端通信为例子。 多进程并发 阅读全文
posted @ 2019-11-08 11:26 南哥的天下 阅读(3251) 评论(0) 推荐(0)
摘要:Python select 一、前言 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时变成readable 和writeable, 或者通信错误,select()使得同时监控多个 阅读全文
posted @ 2019-11-08 10:21 南哥的天下 阅读(943) 评论(0) 推荐(0)
摘要:【python】详解事件驱动event实现 所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出)。 1.脚本型:脚本型的程序包括最早的批处理文件以及使用Python做交易策略回测等等,这类程序的特点是在用户启动后会按照编程时设计好的步骤一步步运行,所有步骤运行完后自 阅读全文
posted @ 2019-11-07 16:04 南哥的天下 阅读(4818) 评论(0) 推荐(0)
摘要:day13学python 协程+事件驱动 协程+事件驱动 协程 (微线程)--用处多,重点 当调度切换时 靠寄存器上下文和栈保存 要使用时再调用(即可不会因io传输数据卡壳 从而耗时无法继续进行)实现并行 优缺点: 优点: 1 无需同线程上下文切换 消耗cpu 2 修改数据无需加锁(协程都是单线程串 阅读全文
posted @ 2019-11-07 13:29 南哥的天下 阅读(452) 评论(0) 推荐(0)
摘要:MySQL、sqlalchemy、pymysql、mysqldb、DBAPI之间关系梳理(终于明白了) python3不再支持mysqldb 请用pymysql和mysql.connector 问题背景用Python处理MySQL数据库相关问题时,需要用到相关库,主要有pymysql、sqlalch 阅读全文
posted @ 2019-11-06 15:42 南哥的天下 阅读(1878) 评论(0) 推荐(0)
摘要:python之selectors模块 selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。 官方文档见:https://docs.python.org/3/library/selectors.html 以下是一 阅读全文
posted @ 2019-11-06 14:32 南哥的天下 阅读(947) 评论(0) 推荐(0)
摘要:简单的异步任务工具——rq 的使用教程 rq是一个简单的,轻量级的异步任务工具。如果在网站中用户发起一个用时很久(大于2分钟)的请求,如果用同步的方式,服务器就会返回超时。这时候就需要用异步请求,用户发起请求后,服务端把作业扔给另一个进程去执行,然后立刻返回给用户,用户再通过轮询或者其他方式来获取作 阅读全文
posted @ 2019-11-06 13:46 南哥的天下 阅读(1728) 评论(0) 推荐(0)
摘要:python包中__init__.py文件的作用 __init__.py文件最常用的作用是标识一个文件夹是一个 python包。 __init__.py文件的另一个作用是定义模糊导入时要导入的内容。 当我们使用类似 from package import * 的导入语句的时候就是在使用模糊导入了,这 阅读全文
posted @ 2019-10-29 14:03 南哥的天下 阅读(2314) 评论(0) 推荐(0)