02 2019 档案

单链表反转
摘要:#!/usr/bin/python#递归实现单链表反转 class ListNode(object): def __init__(self,x): self.val=x self.next=None def recurse(head,newhead): #递归,head为原链表的头结点,newhea 阅读全文

posted @ 2019-02-28 23:19 ExplorerMan 阅读(104) 评论(0) 推荐(0) 编辑

字符串倒序
摘要:#写一个函数, 输入一个字符串, 返回倒序排列的结果#1).利用字符串本身的翻转 str = 'abcdef'# def string_reverse(string):# return string[::-1]## if __name__ =="__main__":# print(str)# pri 阅读全文

posted @ 2019-02-28 23:19 ExplorerMan 阅读(343) 评论(0) 推荐(0) 编辑

【python】面试常考数据结构算法
摘要:这里整理的都是基础的不能再基础的算法,目的就是进行一个回忆,同时作为剑指offer的一个补充~嘿嘿~ 查找算法二分查找# 实现一个二分查找# 输入:一个顺序list# 输出: 待查找的元素的位置def binarySearch(alist, item): first = 0 last = len(a 阅读全文

posted @ 2019-02-28 23:17 ExplorerMan 阅读(219) 评论(0) 推荐(0) 编辑

面试中的排序算法总结
摘要:前言 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序 阅读全文

posted @ 2019-02-28 22:27 ExplorerMan 阅读(213) 评论(0) 推荐(0) 编辑

Memcached 真的过时了吗?
摘要:这两年Redis火得可以,Redis也常常被当作Memcached的挑战者被提到桌面上来。关于Redis与Memcached的比较更是比比皆是。然而,Redis真的在功能、性能以及内存使用效率上都超越了Memcached吗? 下面内容来自Redis作者在stackoverflow上的一个回答,对应的 阅读全文

posted @ 2019-02-27 11:04 ExplorerMan 阅读(373) 评论(0) 推荐(1) 编辑

在 tornado 中异步无阻塞的执行耗时任务
摘要:在 tornado 中异步无阻塞的执行耗时任务 在 linux 上 tornado 是基于 epoll 的事件驱动框架,在网络事件上是无阻塞的。但是因为 tornado 自身是单线程的,所以如果我们在某一个时刻执行了一个耗时的任务,那么就会阻塞在这里,无法响应其他的任务请求,这个和 tornado 阅读全文

posted @ 2019-02-26 19:07 ExplorerMan 阅读(1124) 评论(0) 推荐(0) 编辑

【tornado】系列项目(一)之基于领域驱动模型架构设计的京东用户管理后台
摘要:本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”。 一、预备知识: 1.接口: python中并没有类似java等其它语言中的接口类型,但是python中有抽象类和抽象方法。如果一个抽象类有抽象方法,那么继承它的子类必须实现抽象类的所有方法,因此,我们基 阅读全文

posted @ 2019-02-26 17:37 ExplorerMan 阅读(321) 评论(0) 推荐(0) 编辑

Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
摘要:Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但 阅读全文

posted @ 2019-02-26 17:33 ExplorerMan 阅读(231) 评论(0) 推荐(0) 编辑

WEB框架之Tornado
摘要:前言 Tornado(龙卷风)和Django一样是Python中比较主流的web框架,Tornado 和现在的主流 Web 服务器框架也有着明显的区别:Tornado自带socket,并且实现了异步非阻塞并对WebSocket协议天然支持; 一、Tornado框架的基本组成 Tonado由 路由系统 阅读全文

posted @ 2019-02-25 23:46 ExplorerMan 阅读(447) 评论(0) 推荐(0) 编辑

python表单验证封装
摘要:在Web程序中往往包含大量的表单验证的工作,如:判断输入是否为空,是否符合规则。 <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <link href="{{static_url("common 阅读全文

posted @ 2019-02-25 22:39 ExplorerMan 阅读(615) 评论(0) 推荐(0) 编辑

Django中的信号及其用法
摘要:Django中提供了"信号调度",用于在框架执行操作时解耦. 一些动作发生的时候,系统会根据信号定义的函数执行相应的操作 Django中内置的signal Model_signals pre_init # Django中的model对象执行其构造方法前,自动触发 post_init # Django 阅读全文

posted @ 2019-02-25 20:38 ExplorerMan 阅读(270) 评论(0) 推荐(0) 编辑

Django FBV和CBV -
摘要:一、FBV和CBV 在Python菜鸟之路:Django 路由、模板、Model(ORM)一节中,已经介绍了几种路由的写法及对应关系,那种写法可以称之为FBV: function base view 。 今天补充另外一种路由关系的写法:CBV,即:class base view , 也可以看做为面向 阅读全文

posted @ 2019-02-25 20:35 ExplorerMan 阅读(183) 评论(0) 推荐(0) 编辑

Django 数据库操作进阶F和Q操作
摘要:Model中的F F 的操作通常的应用场景在于:公司对于每个员工,都涨500的工资。这个时候F就可以作为查询条件 1 2 3 from django.db.models import F models.UserInfo.objects.filter().update(salary=F('salary 阅读全文

posted @ 2019-02-25 20:28 ExplorerMan 阅读(232) 评论(0) 推荐(0) 编辑

Django中提供了6种缓存方式
摘要:开发调试 内存 文件 数据库 Memcache缓存(python-memcached模块) Memcache缓存(pylibmc模块) 1. 开发调试 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 阅读全文

posted @ 2019-02-25 20:15 ExplorerMan 阅读(126) 评论(0) 推荐(0) 编辑

Django 信号
摘要:Django中提供了“信号调度”,用于在框架执行操作时解耦。通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。 相当于我们创建了一个hook。 1. Django的内置信号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 阅读全文

posted @ 2019-02-25 20:12 ExplorerMan 阅读(188) 评论(0) 推荐(0) 编辑

pycharm PYTHONPATH
摘要:Hi brandenju! I believe os.chdir doesn't affect PYTHONPATH so changing your working directory at runtime to resolve imports make little sense. One can 阅读全文

posted @ 2019-02-25 19:07 ExplorerMan 阅读(449) 评论(0) 推荐(0) 编辑

自定义redis session
摘要:1.思路 2.程序实现 1.用户系统类 这里模拟一个蹩脚的用户系统类(userSystem),如下: 然后在登陆方法中这样写: 同时要注意中间件处理: 在一些需要登陆后才能访问的可以写在验证登陆后面.这里还需要慢慢改进. 阅读全文

posted @ 2019-02-25 18:48 ExplorerMan 阅读(225) 评论(0) 推荐(0) 编辑

django-redis 中文文档
摘要:Andrey Antukh, niwi@niwi.be 4.7.0 翻译: RaPoSpectre 1. 介绍 django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件. 1.1 为何要用 django-redis ? 因 阅读全文

posted @ 2019-02-25 18:19 ExplorerMan 阅读(1288) 评论(0) 推荐(0) 编辑

使用Celery踩过的坑
摘要:为什么要使用celery Celery是一个使用Python开发的分布式任务调度模块,因此对于大量使用Python构建的系统,可以说是无缝衔接,使用起来很方便。Celery专注于实时处理任务,同时也支持任务的定时调度。因此适合实时异步任务定时任务等调度场景。Celery需要依靠RabbitMQ等作为 阅读全文

posted @ 2019-02-25 16:07 ExplorerMan 阅读(2777) 评论(1) 推荐(0) 编辑

python之celery使用详解一
摘要:前段时间需要使用rabbitmq做写缓存,一直使用pika+rabbitmq的组合,pika这个模块虽然可以很直观地操作rabbitmq,但是官方给的例子太简单,对其底层原理了解又不是很深,遇到很多坑,尤其是需要自己写连接池管理和channel池管理。虽然也有用过celery,一直也是celery+ 阅读全文

posted @ 2019-02-25 15:53 ExplorerMan 阅读(717) 评论(1) 推荐(0) 编辑

Python中定时任务框架APScheduler
摘要:前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法。 一、APScheduler介绍 APScheduler是基于Quartz的一个python定时任务框架,实现了Quartz的所有功能,使用起 阅读全文

posted @ 2019-02-25 15:16 ExplorerMan 阅读(710) 评论(0) 推荐(0) 编辑

APScheduler - Advanced Python Scheduler
摘要:简介 APScheduler:强大的任务调度工具,可以完成定时任务,周期任务等,它是跨平台的,用于取代Linux下的cron daemon或者Windows下的task scheduler。 内置三种调度调度系统: Cron风格 间隔性执行 仅在某个时间执行一次 作业存储的backends支持: M 阅读全文

posted @ 2019-02-25 15:02 ExplorerMan 阅读(474) 评论(0) 推荐(0) 编辑

解决多进程中APScheduler重复运行的问题
摘要:问题在一个python web应用中需要定时执行一些任务,所以用了APScheduler这个库。又因为是用flask这个web框架,所以用了flask-apscheduler这个插件(本质上与直接用APScheduler一样,这里不作区分)。 在开发中直接测试运行是没有问题的,但是用gunicorn 阅读全文

posted @ 2019-02-25 14:50 ExplorerMan 阅读(641) 评论(0) 推荐(0) 编辑

CSRF攻击与防御
摘要:CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗 阅读全文

posted @ 2019-02-25 11:58 ExplorerMan 阅读(126) 评论(0) 推荐(0) 编辑

python中django框架的csrf验证
摘要:在form表单以post的方式提交时,django默认会带一个验证的机制csrf验证 必须把随机cookie验证发过去,这样django机制才能验证成功 若是采用ajax的post方式提交则会出现403 Forbidden的验证 解决办法:在提交的请求头,用cookie的变量发送,请求头里不能有下划 阅读全文

posted @ 2019-02-25 11:46 ExplorerMan 阅读(473) 评论(0) 推荐(0) 编辑

Django进阶之CSRF
摘要:简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。 全局: 中间件 django.middleware.csrf.CsrfViewMi 阅读全文

posted @ 2019-02-25 11:42 ExplorerMan 阅读(272) 评论(0) 推荐(0) 编辑

常见web安全攻防总结
摘要:Web 安全的对于 Web 从业人员来说是一个非常重要的课题 , 所以在这里总结一下 Web 相关的安全攻防知识,希望以后不要再踩雷,也希望对看到这篇文章的同学有所帮助。今天这边文章主要的内容就是分析几种常见的攻击的类型以及防御的方法。 也许你对所有的安全问题都有一定的认识,但最主要的还是在编码设计 阅读全文

posted @ 2019-02-25 11:10 ExplorerMan 阅读(1203) 评论(0) 推荐(0) 编辑

在Flask中使用Celery的最佳实践
摘要:写在前面 本最佳实践是基于作者有限的经验,欢迎大家共同讨论,可以持续维护此最佳实践。另本文中所使用的环境为Mac&Ubuntu环境,软件版本如下: Celery (4.1.0) Flask (0.12.1) RabbitMQ(3.6.9) librabbitmq (1.6.1) 介绍 简单来说Cel 阅读全文

posted @ 2019-02-24 18:34 ExplorerMan 阅读(583) 评论(1) 推荐(0) 编辑

二十三种设计模式及其python实现
摘要:二十三种设计模式及其python实现 本文源码寄方于github:https://github.com/w392807287/Design_pattern_of_python 参考文献: 《大话设计模式》——吴强 《Python设计模式》——pythontip.com 《23种设计模式》——http 阅读全文

posted @ 2019-02-24 18:31 ExplorerMan 阅读(239) 评论(0) 推荐(0) 编辑

常见设计模式 (python代码实现)
摘要:1.创建型模式 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 阅读全文

posted @ 2019-02-24 18:30 ExplorerMan 阅读(530) 评论(0) 推荐(0) 编辑

设计模式(Python)-观察者模式
摘要:本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:27 ExplorerMan 阅读(1736) 评论(0) 推荐(1) 编辑

设计模式(Python)-策略模式
摘要:本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:27 ExplorerMan 阅读(230) 评论(0) 推荐(1) 编辑

设计模式(Python)-简单工厂,工厂方法和抽象工厂模式
摘要:本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:26 ExplorerMan 阅读(256) 评论(0) 推荐(0) 编辑

设计模式(Python)-单例模式
摘要:本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:05 ExplorerMan 阅读(199) 评论(0) 推荐(0) 编辑

Python中的单例模式的几种实现方式的及优化
摘要:阅读目录(Content) 单例模式 实现单例模式的几种方式 1.使用模块 2.使用装饰器 3.使用类 4.基于__new__方法实现(推荐使用,方便) 5.基于metaclass方式实现 相关知识 实现单例模式 阅读目录(Content) 单例模式 实现单例模式的几种方式 1.使用模块 2.使用装 阅读全文

posted @ 2019-02-24 17:28 ExplorerMan 阅读(243) 评论(0) 推荐(0) 编辑

Python协程 Gevent Eventlet Greenlet
摘要:https://zh.wikipedia.org/zh-cn/%E5%8D%8F%E7%A8%8B 协程可以理解为线程中的微线程,通过手动挂起函数的执行状态,在合适的时机再次激活继续运行,而不需要上下文切换。所以在python中使用协程会比线程性能更好。 Tornado协程 http://blog. 阅读全文

posted @ 2019-02-24 17:01 ExplorerMan 阅读(3363) 评论(0) 推荐(0) 编辑

python基于协程的网络库gevent、eventlet
摘要:python网络库也有了基于协程的实现,比较著名的是 gevent、eventlet 它两之间的关系可以参照 Comparing gevent to eventlet, 本文主要简单介绍一下eventlet一个例子 客户端: import eventletfrom eventlet.green im 阅读全文

posted @ 2019-02-24 16:57 ExplorerMan 阅读(408) 评论(0) 推荐(0) 编辑

python中多进程+协程的使用以及为什么要用它
摘要:前面讲了为什么python里推荐用多进程而不是多线程,但是多进程也有其自己的限制:相比线程更加笨重、切换耗时更长,并且在python的多进程下,进程数量不推荐超过CPU核心数(一个进程只有一个GIL,所以一个进程只能跑满一个CPU),因为一个进程占用一个CPU时能充分利用机器的性能,但是进程多了就会 阅读全文

posted @ 2019-02-24 16:55 ExplorerMan 阅读(353) 评论(0) 推荐(0) 编辑

python爬虫——多线程+协程(threading+gevent)
摘要:上一篇博客中我介绍了如何将爬虫改造为多进程爬虫,但是这种方法对爬虫效率的提升不是非常明显,而且占用电脑cpu较高,不是非常适用于爬虫。这篇博客中,我将介绍在爬虫中广泛运用的多线程+协程的解决方案,亲测可提高效率至少十倍以上。 本文既然提到了线程和协程,我觉得有必要在此对进程、线程、协程做一个简单的对 阅读全文

posted @ 2019-02-24 16:46 ExplorerMan 阅读(459) 评论(0) 推荐(0) 编辑

Python几种并发实现方案的性能比较
摘要:偶然看到Erlang vs. Stackless python: a first benchmark,对Erlang和Stackless Python的并发处理性能进行了实验比较,基本结论认为二者有比较相近的性能。我看完产生的问题是,Stackless Python与Python的其他并发实现机制性 阅读全文

posted @ 2019-02-24 16:35 ExplorerMan 阅读(1566) 评论(1) 推荐(0) 编辑

Python threadpool传递参数
摘要:threadpool模块是一个很老的实现python线程池的模块,pypi已经建议用multiprocessing代替它了,但是,它使用的便捷性还是征服了一批忠实用户。 threadpool模块实现多线程只需要如下几行代码: 1 2 3 4 5 from threadpool import * po 阅读全文

posted @ 2019-02-24 15:24 ExplorerMan 阅读(657) 评论(0) 推荐(0) 编辑

python线程池(threadpool)模块使用笔记
摘要:一、安装与简介 pip install threadpool 第一行定义了一个线程池,表示最多可以创建poolsize这么多线程; 第二行是调用makeRequests创建了要开启多线程的函数,以及函数相关参数和回调函数,其中回调函数可以不写,default是无,也就是说makeRequests只需 阅读全文

posted @ 2019-02-24 15:23 ExplorerMan 阅读(498) 评论(0) 推荐(0) 编辑

python下的select模块使用 以及epoll与select、poll的区别
摘要:python下的select模块使用 以及epoll与select、poll的区别 先说epoll与select、poll的区别(总结) 整理http://www.zhihu.com/question/32163005 http://www.cnblogs.com/Anker/p/3265058.h 阅读全文

posted @ 2019-02-23 21:06 ExplorerMan 阅读(822) 评论(0) 推荐(0) 编辑

python中的select模块
摘要:介绍: Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqueue方法(freeBSD系统) select方法: 进程指定内核监听哪些文件描述符(最多监听1024个 阅读全文

posted @ 2019-02-23 20:22 ExplorerMan 阅读(805) 评论(0) 推荐(0) 编辑

Python中threading的join和setDaemon的区别及用法
摘要:Python多线程编程时经常会用到join()和setDaemon()方法,基本用法如下: join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。 setDaemon,将该线程标记为守护线程或用户线程 1 阅读全文

posted @ 2019-02-22 15:11 ExplorerMan 阅读(135) 评论(0) 推荐(0) 编辑

python队列Queue
摘要:Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 class Queue.Queue(maxsize=0) FIFO即First in First Out,先 阅读全文

posted @ 2019-02-22 15:03 ExplorerMan 阅读(183) 评论(0) 推荐(0) 编辑

python3的eval和exec的区别与联系
摘要:eval: 可以把字符串里的字符转换为可执行代码,但只支持一行字符。可以返回执行后得到的值。如下: f = "3+6+9+8"s = eval(f)print(s)输出: "C:\Program Files\python3\python3.exe" D:/codes_py3/luhy_tool/st 阅读全文

posted @ 2019-02-21 22:36 ExplorerMan 阅读(213) 评论(0) 推荐(0) 编辑

Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别
摘要:大部分python文件的头部都会写上 #!/usr/bin/python 或者 #!/usr/bin/env ,这个语句主要和运行模式有关, 如果我们用普通运行模式例如(linux) : python *.py 那么这个语句在此运行模式下无效。如果想让python程序像普通程序一样运行,例如:./* 阅读全文

posted @ 2019-02-21 18:25 ExplorerMan 阅读(227) 评论(0) 推荐(0) 编辑

一张图搞定OAuth2.0
摘要:目录 1、引言 2、OAuth2.0是什么 3、OAuth2.0怎么写 1、引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们。 一项新的技术,无非就是了解它是什么,为什么,怎么用。至于为什么,本篇 阅读全文

posted @ 2019-02-20 21:34 ExplorerMan 阅读(146) 评论(0) 推荐(0) 编辑

OAuth2.0的refresh token
摘要:最近看人人网的OAuth认证,发现他是OAuth2.0,之前一直看的是新浪的OAuth,是OAuth1.0. 二者还是有很多不同的,主要的不同点在access token的获取方式. OAuth1.0的access token获取过来之后,就可以存到数据库里,然后长期使用,因为它有效期很长,通常有效 阅读全文

posted @ 2019-02-20 21:28 ExplorerMan 阅读(1153) 评论(0) 推荐(0) 编辑

ACCESS_TOKEN与FRESH_TOKEN
摘要:OAuth1.0中的access_token过期时间通常很长,安全性差。于是OAuth2.0推出了refresh_token。 OAuth2.0中,客户端用账户名,密码经过一定方式(比如先请求code),获得ACCESS_TOKEN,expire_in与refresh_token。 然后在expir 阅读全文

posted @ 2019-02-20 21:24 ExplorerMan 阅读(263) 评论(0) 推荐(0) 编辑

关于token和refresh token
摘要:最近在做公司的认证系统,总结了如下一番心得。 传统的认证方式一般采用cookie/session来实现,这是我们的出发点。 1.为什么选用token而不选用cookie/session?本质上token和cookie/session都是字符串,然而token是自带加密算法和用户信息(比如用户id), 阅读全文

posted @ 2019-02-20 21:17 ExplorerMan 阅读(1016) 评论(0) 推荐(0) 编辑

如何解决前后端token过期问题
摘要:问题描述: 首先后端生成的token是有时限的,在一段时间后不管前端用户是否进行了访问后端的操作,后端的token都会过期,在拦截器阶段就会返回错误的请求:token过期,从而拿不到想要的请求数据. 解决思路: 每隔一段时间的后端请求中都将token传送过去获取新的token并返回前端放入cooki 阅读全文

posted @ 2019-02-20 21:06 ExplorerMan 阅读(3164) 评论(0) 推荐(0) 编辑

对外开放的接口验证方式
摘要:接口安全问题 请求身份是否合法? 请求参数是否被篡改? 请求是否唯一? AccessKey&SecretKey (开放平台)请求身份 为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。防止篡改 参数签名 按照请求参数名的字 阅读全文

posted @ 2019-02-20 20:17 ExplorerMan 阅读(840) 评论(0) 推荐(0) 编辑

python api接口认证脚本
摘要:import requests import sys def acces_api_with_cookie(url_login, USERNAME, PASSWORD, url_access): # Start a session so we can have persistant cookies s 阅读全文

posted @ 2019-02-20 18:56 ExplorerMan 阅读(263) 评论(0) 推荐(0) 编辑

Python Thrift 简单示例
摘要:本文基于Thrift-0.10,使用Python实现服务器端,使用Java实现客户端,演示了Thrift RPC调用示例。Java客户端提供两个字符串参数,Python服务器端计算这两个字符串的相似度,并返回相似度结果(double类型,范围[0, 1],0表示不相似,1表示完全相同) 一,环境安装 阅读全文

posted @ 2019-02-20 18:46 ExplorerMan 阅读(523) 评论(0) 推荐(0) 编辑

几种分布式调用技术的比较 -- RPC VS REST
摘要:我之前在传统IT公司干活,后来来了互联网,感受到了很多不同,其中有一点就是两者使用到的技术有一些差别。比如说分布式调用技术。 我在的这家公司内部的服务架构是基于Thrift的,服务基于Thrift进行发布,以至于很多人没有听过、使用过Web Service。 话说传统IT传了很多年的SOA就是基于W 阅读全文

posted @ 2019-02-20 18:43 ExplorerMan 阅读(313) 评论(0) 推荐(0) 编辑

“RPC好,还是RESTful好?”
摘要:REST 和 RESTful 什么区别?REST,即Representational State Transfer的缩写。翻译过来是表现层状态转换。如果一个架构符合REST原则,就称它为RESTful架构。啥叫json-rpc?接口调用通常包含两个部分,序列化和通信协议。常见的序列化协议包括json 阅读全文

posted @ 2019-02-20 18:39 ExplorerMan 阅读(358) 评论(0) 推荐(0) 编辑

python调用rpc实现分布式系统
摘要:rpc 一般俗称,远程过程调用,把本地的函数,放到远端去调用。 通常我们调用一个方法,譬如: sumadd(10, 20),sumadd方法的具体实现要么是用户自己定义,要么存在于该语言的库函数中,也就说在sumadd方法的代码实现在本地,它是一个本地调用! “远程调用”意思就是:被调用方法的具体实 阅读全文

posted @ 2019-02-20 18:32 ExplorerMan 阅读(6446) 评论(0) 推荐(1) 编辑

Python中实现远程调用(RPC、RMI)简单例子
摘要:说白了,远程调用就是将对象名、函数名、参数等传递给远程服务器,服务器将处理结果返回给客户端 远程调用使得调用远程服务器的对象、方法的方式就和调用本地对象、方法的方式差不多,因为我们通过网络编程把这些都隐藏起来了。远程调用是分布式系统的基础。 远程调用一般分为两种,远程过程调用(RPC)和远程方法调用 阅读全文

posted @ 2019-02-20 18:21 ExplorerMan 阅读(491) 评论(0) 推荐(0) 编辑

MySQL Geometry扩展在地理位置计算中的效率优势
摘要:由于在Geometry中,有相关自带函数和SPATIAL INDEX的性能优化,可以让某些位置计算的效率提升。以下是几种计算方法的效果对比。 1. 数据准备 首先创建一个数据表,这是一个店铺数据表,结构如下: 创建语句: CREATE TABLE `store_geometry` ( `id` in 阅读全文

posted @ 2019-02-20 18:03 ExplorerMan 阅读(338) 评论(0) 推荐(0) 编辑

MySQL中地理位置数据扩展geometry的使用心得
摘要:最近学习了些MySQL geometry数据存储和计算,在这里记录下。 1. 环境 geometry推荐在5.6版本以上使用,尽管大部分功能在5.5已经可用,除了距离计算函数st_distance等新增函数。 2. Geometry主要相关类 2.1 Geometry Geometry是所有此扩展中 阅读全文

posted @ 2019-02-20 18:00 ExplorerMan 阅读(874) 评论(0) 推荐(0) 编辑

mysql对GIS空间数据的支持,包括创建空间索引
摘要:注: 在最新发布的MySQL 5.7.4实验室版本中,InnoDB存储引擎新增了对于几何数据空间索引的支持。 在此之前,InnoDB将几何数据存储为BLOB(二进制大对象)数据,在空间数据上只能创建前缀索引,当涉及空间搜索时非常低效,尤其是在涉及复杂的几何数据时。在大多数情况下,获得结果的唯一方式是 阅读全文

posted @ 2019-02-20 17:31 ExplorerMan 阅读(349) 评论(0) 推荐(0) 编辑

pyqtree
摘要:pyqtree module API Documentation Classes class Index The top spatial index to be created by the user. Once created it can be populated with geographic 阅读全文

posted @ 2019-02-20 16:53 ExplorerMan 阅读(460) 评论(0) 推荐(0) 编辑

四叉树空间索引原理及其实现
摘要:四叉树索引的基本思想是将地理空间递归划分为不同层次的树结构。它将已知范围的空间等分成四个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足某种要求后停止分割。四叉树的结构比较简单,并且当空间数据对象分布比较均匀时,具有比较高的空间数据插入和查询效率,因此四叉树是GIS中常用的空间索引之一。 阅读全文

posted @ 2019-02-20 14:44 ExplorerMan 阅读(1076) 评论(0) 推荐(0) 编辑

gevent
摘要:Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。 gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成 阅读全文

posted @ 2019-02-20 14:35 ExplorerMan 阅读(256) 评论(0) 推荐(0) 编辑

Python猴子补丁
摘要:属性在运行时的动态替换,叫做猴子补丁(Monkey Patch)。 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1,这个词原来为Guerrilla Patch,杂牌军、游击队,说明这部分不是原装的,在英文里guerilla发音和gorllia(猩猩)相 阅读全文

posted @ 2019-02-20 14:28 ExplorerMan 阅读(603) 评论(0) 推荐(0) 编辑

浅谈服务治理与微服务
摘要:近期都在谈微服务,本人也正在做相关的工作,应领导要求做了一个微服务的分享,本篇文章主要来源于分享的PPT,所以有些简单,有问题可以在下面留言,大家 一起讨论。 本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后再介绍微服务,微服务是服务治理的升级也是互联网架构的进一步延伸。 互联网架构演变 阅读全文

posted @ 2019-02-20 13:24 ExplorerMan 阅读(196) 评论(0) 推荐(0) 编辑

微服务
摘要:什么是微服务架构 “微服务”一词源于Martin Fowler的名为Microservices的博文, 可以在他的官方博客 上找到: http://mar巨nfowler.com/articles/microservices.html。 简单地说, 微服务是系统架构上的一种设计风格, 它的主旨是将一 阅读全文

posted @ 2019-02-20 13:19 ExplorerMan 阅读(144) 评论(0) 推荐(0) 编辑

Tornado部署与运行
摘要:运行多个Tornado实例 网页响应不是特别的计算密集型处理多个实例充分利用 CPU多端口怎么处理4.使用Supervisor监控Tornado进程安装(注意看是否需要指定使用python2版本) sudo pip2 install supervisor安装完之后先启动 sudo superviso 阅读全文

posted @ 2019-02-20 11:44 ExplorerMan 阅读(338) 评论(0) 推荐(0) 编辑

tornado部署
摘要:1.为什么要运行多个tornado实例同步请求时,在应用处理过程中(如数据库查询,磁盘访问),服务器进程不能接受新请求。所以需要运行多个服务器进程实例。异步请求时,在应用处理时,服务器进程是非阻塞的,可以接受新请求,因此tornado的非阻塞架构也可以很好地解决这个问题。 2.nginx作反向代理我 阅读全文

posted @ 2019-02-20 11:39 ExplorerMan 阅读(297) 评论(0) 推荐(0) 编辑

【测试】Gunicorn , uWSGI同步异步测试以及应用场景总结
摘要:最近使用uwsgi出了一些问题,于是测试下Gunicorn测试对比下 环境一颗cpu 1g内存 Centos系统 Django作为后端应用,Gunicorn默认模式和异步模式,响应基本是无阻塞类型测试的request是一个加密操作,对url中的几个参数做一个ase加密说明:下面的模拟阻塞模式,类似于 阅读全文

posted @ 2019-02-19 23:11 ExplorerMan 阅读(877) 评论(0) 推荐(0) 编辑

以gevent(协程) 方式跑uwsgi服务
摘要:当你的系统存在一些IO或网络请求较久的操作时, 如果以默认的方式启动uwsgi服务, 那么如果这类请求过多的时候, 所以进程被卡死. uwsgi就无法再对后续请求做处理了. 这时可以用gevent的方式跑起uwsgi服务, 这样当某个请求在IO或网络请求中时, uwsgi进程可以去处理其他的请求. 阅读全文

posted @ 2019-02-19 23:11 ExplorerMan 阅读(639) 评论(0) 推荐(0) 编辑

uwsgi配置理解
摘要:最近使用uwsgi 部署了flask应用,出现了不少问题,仔细查阅了一下资料以及翻看了官方文档,就对自己了解到的做个总结~~ 一、http/http-socket/socketuwsgi开头当然少不了通信的接口。 有3种方式: socket=127.0.0.1:8888 http=0.0.0.0:8 阅读全文

posted @ 2019-02-19 22:55 ExplorerMan 阅读(1640) 评论(0) 推荐(0) 编辑

python Web开发你要理解的WSGI & uwsgi详解
摘要:WSGI协议 首先弄清下面几个概念: WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的 阅读全文

posted @ 2019-02-19 22:41 ExplorerMan 阅读(1171) 评论(0) 推荐(0) 编辑

python基于协程的网络库gevent、eventlet
摘要:python网络库也有了基于协程的实现,比较著名的是 gevent、eventlet 它两之间的关系可以参照 Comparing gevent to eventlet, 本文主要简单介绍一下eventlet一个例子 客户端: import eventletfrom eventlet.green im 阅读全文

posted @ 2019-02-19 22:40 ExplorerMan 阅读(411) 评论(0) 推荐(0) 编辑

django gunicorn 各worker class简单性能测试
摘要:版权归作者所有,任何形式转载请联系作者。作者:petanne(来自豆瓣)来源:https://www.douban.com/note/564871723/ 测试环境: 双核虚拟机centos6.8,内存4Gpython==2.7.11gunicorn==19.6.0django==1.9.2torn 阅读全文

posted @ 2019-02-19 22:36 ExplorerMan 阅读(1068) 评论(0) 推荐(0) 编辑

Gunicorn快速入门
摘要:Gunicorn (独角兽)是一个高效的Python WSGI Server,通常用它来运行 wsgi application(由我们自己编写遵循WSGI application的编写规范) 或者 wsgi framework(如Django,Paster),地位相当于Java中的Tomcat。 安 阅读全文

posted @ 2019-02-19 22:33 ExplorerMan 阅读(7791) 评论(0) 推荐(0) 编辑

【nginx】配置Nginx实现负载均衡
摘要:在关于高并发负载均衡一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中web服务器前面一层最常用的的添加负载方案就是使用nginx实现负载均衡。 一、负载均衡的作用 1、转 阅读全文

posted @ 2019-02-19 19:38 ExplorerMan 阅读(246) 评论(0) 推荐(0) 编辑

利用nginx实现负载均衡
摘要:1、安装nginx和tomcat 我这里是使用docker安装的。安装流程可参照 dockerfile 这里安装了两个tomcat,端口分别是42000和42001。第二个tomcat的首页随便加了些代码区分 2、nginx配置 3、测试 刷新页面发现页面会发生变化,证明负载配置成功。因为我配的权重 阅读全文

posted @ 2019-02-19 19:33 ExplorerMan 阅读(183) 评论(0) 推荐(0) 编辑

nginx+uwsgi 和nginx+gunicorn区别、如何部署
摘要:[线上环境部署Django,nginx+uwsgi 和nginx+gunicorn,这两种方案,应该如何选择?] 大家是采用的何种部署方式? 第一种,高并发稳定一点 我们公司使用的是nginx+gunicorn,主要是方便。性能可以从其他方面优化。 随便吧 我们用的是nginx supervisor 阅读全文

posted @ 2019-02-19 11:54 ExplorerMan 阅读(764) 评论(0) 推荐(0) 编辑

Supervisor的作用与配置
摘要:supervisor supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常中断, 阅读全文

posted @ 2019-02-18 20:16 ExplorerMan 阅读(143) 评论(0) 推荐(0) 编辑

进程管理supervisor的简单说明
摘要:背景: 项目中遇到有些脚本需要通过后台进程运行,保证不被异常中断,之前都是通过nohup、&、screen来实现,带着能否做一个start/stop/restart/reload的服务启动的想法找到里Supervisor。关于supervisor的介绍在网上大致搜索总结如下: Supervisor是 阅读全文

posted @ 2019-02-18 18:54 ExplorerMan 阅读(143) 评论(0) 推荐(0) 编辑

Django中redis的使用方法(包括安装、配置、启动)
摘要:一、安装redis: 1.下载: 2.解压 3.复制,放到/usr/local目录下 4.进入到redis目录下 5.生成 6.测试,时间会比较长 7.安装,将redis的命令安装到usr/local/bin/目录中 8.安装成功后,进入usr/local/bin/目录中查看: 9.将配置文件复制放 阅读全文

posted @ 2019-02-18 18:32 ExplorerMan 阅读(805) 评论(1) 推荐(0) 编辑

Mysql-Proxy 读写分离的各种坑,特别是复制延迟时
摘要:延迟问题读写分离不能回避的问题之一就是延迟,可以考虑Google提供的SemiSyncReplicationDesign补丁。 端口问题MySQL-Proxy缺省使用的是4040端口,如果你想透明的把3306端口的请求转发给4040的话,那么可以: iptables -t nat -I PREROU 阅读全文

posted @ 2019-02-18 17:20 ExplorerMan 阅读(470) 评论(0) 推荐(0) 编辑

MySQL-Proxy 读写分离、同步延时问题解决方案
摘要:MySQL-Proxy 读写分离、同步延时问题解决方案 使用MySQL将读写请求转接到主从Server。 一 安装MySQL Proxy MySQL Proxy的二进制版非常方便,下载解压缩后即用。 解压缩的目录为: $mysql-proxy_installed_dir (这里为/usr/local 阅读全文

posted @ 2019-02-18 17:09 ExplorerMan 阅读(349) 评论(0) 推荐(0) 编辑

MySQL主从复制与主主复制
摘要:阅读目录 1、简介 2、环境说明 3、主从复制 3.1、MySQL 3.2、配置文件 3.3、开始构建主从复制 3.4、测试主从复制 4、MySql主主复制 4.1、实现原理 4.2、配置文件 4.3、开始构建主主复制 4.4、测试主主复制 5、注意事项 阅读目录 1、简介 2、环境说明 3、主从复 阅读全文

posted @ 2019-02-18 17:00 ExplorerMan 阅读(145) 评论(0) 推荐(0) 编辑

MySQL读写分离
摘要:阅读目录 1、简介 2、基本环境 3、配置主从复制 4、MySQL读写分离配置 4.1、安装lua 4.2、安装mysql-proxy 5、MySQL读写分离测试 1)、修改rw-splitting.lua文件 2)、修改完成后,启动mysql-proxy 3)、创建用于读写分离的数据库连接用户 4 阅读全文

posted @ 2019-02-18 16:28 ExplorerMan 阅读(197) 评论(0) 推荐(0) 编辑

Mysql-Proxy代理配置
摘要:一、Mysql-Proxy原理 Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测、分析和改变他们的通信。它使用灵活没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。 Mysql -Proxy就是这么一个中间层代理,简单 阅读全文

posted @ 2019-02-18 16:27 ExplorerMan 阅读(8969) 评论(0) 推荐(0) 编辑

MySQL复合分区
摘要:到底还是开源软件,MySQL对复合分区的支持远远没有Oracle丰富。 在MySQL 5.6版本中,只支持RANGE和LIST的子分区,且子分区的类型只能为HASH和KEY。 譬如: 上述创建语句中,最外层是RANGE分区,分为3个区,里面是HASH子分区,分为2个区,这样,该表一共分了3*2=6个 阅读全文

posted @ 2019-02-18 14:51 ExplorerMan 阅读(739) 评论(0) 推荐(0) 编辑

MySQL基于时间字段进行分区的方案总结
摘要:MySQL支持的分区类型一共有四种:RANGE,LIST,HASH,KEY。其中,RANGE又可分为原生RANGE和RANGE COLUMNS,LIST分为原生LIST和LIST COLUMNS,HASH分为原生HASH和LINEAR HASH,KEY包含原生KEY和LINEAR HASH。关于这些 阅读全文

posted @ 2019-02-18 14:51 ExplorerMan 阅读(5215) 评论(0) 推荐(0) 编辑

MySQL分区表的管理~1
摘要:一、如何管理RANGE和LIST分区 以该分区表为例 1. 删除分区 注意:如果删掉了某分区,则该分区内的数据将全部丢失,不仅如此,在用show create table members\G;命令查看该表的创建语句时将无法看到被删除分区的任何信息。 对于RANGE分区来说,如果删除了p1分区,在插入 阅读全文

posted @ 2019-02-18 14:50 ExplorerMan 阅读(525) 评论(0) 推荐(0) 编辑

MySQL分区表的管理~2
摘要:一、维护分区 对于表的维护,我们一般有如下几种方式: CHECK TABLE, OPTIMIZE TABLE, ANALYZE TABLE和REPAIR TABLE。 而这几种方式,对于分区同样适用。下面,我们一一阐述各种的作用。 1. Rebuilding partitions 重建分区,它相当于 阅读全文

posted @ 2019-02-18 14:50 ExplorerMan 阅读(325) 评论(0) 推荐(0) 编辑

MySQL分区总结
摘要:MySQL支持RANGE,LIST,HASH和KEY四种分区。其中,每个分区又都有一种特殊的类型。对于RANGE分区,有RANGE COLUMNS分区。对于LIST分区,有LIST COLUMNS分区。对于HASH分区,有LINEAR HASH分区。对于KEY分区,有LINEAR KEY分区。具体如 阅读全文

posted @ 2019-02-18 11:41 ExplorerMan 阅读(2909) 评论(0) 推荐(1) 编辑

关于MySQL 通用查询日志和慢查询日志分析
摘要:MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。 1)通用查询日志:记录建立的客户端连接和执行的语句。 2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询 (1)通 阅读全文

posted @ 2019-02-17 21:07 ExplorerMan 阅读(150) 评论(0) 推荐(0) 编辑

设计 MySQL 数据表的时候一般都有一列为自增 ID,这样设计原因是什么,有什么好处?
摘要:知乎采集: MyISAM/InnoDB默认用B-Tree索引(可理解为"排好序的快速查找结构")。 InnoDB中,主索引文件上直接存放该行数据,称为聚簇索引。次索引指向对主键的引用;MyISAM中,主索引和次索引,都指向物理行(磁盘位置); 注意: 对InnoDB来说1: 主键索引既存储索引值,又 阅读全文

posted @ 2019-02-17 20:58 ExplorerMan 阅读(283) 评论(0) 推荐(0) 编辑

Django工程目录结构优化
摘要:1.我看到这篇文章,写的不错,在此复制了一份,防止以后找不到! 感谢作者的翻译--->原文的链接:http://www.loonapp.com/blog/11/ 如果原文存在,请打开原文件阅读 偶然看到一份关于Django工程目录的文章,英文版版的,觉得写得不错。在此翻译下供读者参考 Django 阅读全文

posted @ 2019-02-17 19:47 ExplorerMan 阅读(264) 评论(0) 推荐(0) 编辑

MyISAM和InnoDB的主要区别和应用场景
摘要:1).[事务]MyISAM是非事务安全型的,而InnoDB是事务安全型的,默认开启自动提交,宜合并事务,一同提交,减小数据库多次提交导致的开销,大大提高性能。 2).[锁]MyISAM锁的粒度是表级,而InnoDB支持行级锁定。 3).[全文索引]MyISAM支持全文类型索引,而InnoDB不支持全 阅读全文

posted @ 2019-02-15 19:34 ExplorerMan 阅读(215) 评论(0) 推荐(0) 编辑

和刚入门的菜鸟们聊聊--什么是聚簇索引与非聚簇索引
摘要:今天我们来聊一聊关于 聚簇索引和非聚簇索引的问题; 刚开始学数据库SQL的时候,就知道有主键啊(Primary-key),外键啊(Foreign-key)啥的,连个表查询就已经不清楚是要on 那几个字段了,在数据量不太大的情况下,根本不会考虑索引的问题了,然后,随着大数据时代的到来,数据量大了,没有 阅读全文

posted @ 2019-02-15 19:33 ExplorerMan 阅读(3489) 评论(0) 推荐(2) 编辑

Nginx 配置详解
摘要:序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。 Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Re 阅读全文

posted @ 2019-02-15 17:04 ExplorerMan 阅读(263) 评论(0) 推荐(0) 编辑

Nginx详解(正向代理、反向代理、负载均衡原理)
摘要:Nginx配置详解 nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简单介绍ng 阅读全文

posted @ 2019-02-15 17:04 ExplorerMan 阅读(452) 评论(0) 推荐(0) 编辑

Nginx 安装配置
摘要:Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 在高连接并发的情况下,Nginx是Apache服务器不错的替代品。 Nginx("engine x")是一款是由俄罗斯 阅读全文

posted @ 2019-02-15 17:03 ExplorerMan 阅读(195) 评论(0) 推荐(0) 编辑

Nginx 反向代理与负载均衡详解
摘要:序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在Nginx 配置详解中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细。 Nginx 代理服务的配置说明 1、设置 404 页面导向地址 2、如果我们的代理只允许接受get,post 阅读全文

posted @ 2019-02-15 17:03 ExplorerMan 阅读(299) 评论(0) 推荐(0) 编辑

Python 中,字符串"连接"效率最高的方式是?一定出乎你的意料
摘要:网上很多文章人云亦云,字符串连接应该使用「join」方法而不要用「+」操作。说前者效率更高,它以更少的代价创建新字符串,如果用「+」连接多个字符串,每连接一次,就要为字符串分配一次内存,效率显得有点低,这样的解释听起来很有道理,但 Cpython 解释器是不是真的按照我们说的这样呢? 今天做了一个试 阅读全文

posted @ 2019-02-14 14:55 ExplorerMan 阅读(272) 评论(0) 推荐(0) 编辑

python字符串连接的三种方法及其效率、适用场景详解
摘要:python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website=& 39;python& 39;+& 39;tab& 39;+& 39; com& 39;方法2 python字符串连接的方法,一般有以下三种: 方法1:直接通过加号(+)操作符连接 1 website 阅读全文

posted @ 2019-02-14 14:54 ExplorerMan 阅读(242) 评论(0) 推荐(0) 编辑

详解Python的装饰器
摘要:Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里。 为什么需要装饰器 我们假设你的程序实现了say_hello()和say_goodbye()两个函数。 但是在实际调用中,我们发现程序出错了,上面的代码打印了两个hello。经过调试你发现是say_goodbye() 阅读全文

posted @ 2019-02-14 14:37 ExplorerMan 阅读(209) 评论(0) 推荐(0) 编辑

一线互联网公司必备——最为详细的Docker入门吐血总结
摘要:在计算机技术日新月异的今天, Docker 在国内发展的如火如荼。 特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,不信的话看看下面这张图。 这是我在某招聘网站上看到的招聘 Java 开发工程师的招聘要求,其中有一条熟悉 Docker 成为了你快速入职的加分 阅读全文

posted @ 2019-02-13 21:49 ExplorerMan 阅读(804) 评论(0) 推荐(0) 编辑

RabbitMQ之Consumer消费模式(Push & Pull)
摘要:版权声明:本文为博主原创文章,未经博主朱小厮允许不得转载。 https://blog.csdn.net/u013256816/article/details/62890189概述消息中间件有很多种,进程也会拿几个来对比对比,其中一种对比项就是消费模式。消息的消费模式分Push,Push两种,或者两者 阅读全文

posted @ 2019-02-01 19:30 ExplorerMan 阅读(597) 评论(0) 推荐(0) 编辑

python操作rabbitmq、redis
摘要:1.启动rabbimq、mysql 在“”运行“”里输入services.msc,找到rabbimq、mysql启动即可 2.启动redis 管理员进入cmd,进入redis所在目录,执行redis-server.exe redis.windows.conf --maxmemory 200M 启动r 阅读全文

posted @ 2019-02-01 18:51 ExplorerMan 阅读(562) 评论(0) 推荐(0) 编辑

Python操作rabbitmq 实践笔记
摘要:发布/订阅 系统 1.基本用法 生产者 消费者 2. 实现功能:(1)rabbitmq循环调度,将消息循环发送给不同的消费者,如:消息1,3,5发送给消费者1;消息2,4,6发送给消费者2。 (2)消息确认机制,为了确保一个消息不会丢失,RabbitMQ支持消息的确认 , 一个 ack(acknow 阅读全文

posted @ 2019-02-01 18:42 ExplorerMan 阅读(382) 评论(0) 推荐(0) 编辑

导航

< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示