自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python 类装饰器的四种场景写法

总结: 1类装饰器用于类函数 __get__ 2.类装饰器用于普通函数, __call__ 3.eimport time# 类装饰器用于类方法class TimeitClass: def __init__(self, func): self.func = func def __get__(self...

2018-01-29 17:32:36 570

原创 monacmonaco-editor使用

monaco-editor使用 monaco-editor是一款非常好用的web代码编辑器,那么如何把他加到自己的项目中呢。1.下载插件npm install monaco-editor@0.8.32.初始化编辑器值12<!--要绑定的对象--><div id="container"></div...

2018-01-29 10:56:25 1698

原创 python logging 重复写日志问题

用Python的logging模块记录日志时,遇到了重复记录日志的问题,第一条记录写一次,第二条记录写两次,第三条记录写三次。。。很头疼,这样记日志可不行。网上搜索到了原因与解决方案:原因:没有移除handler 解决:在日志记录完之后removeHandler修改前示例代码:import loggingdef log(message): logger = lo...

2018-01-23 14:47:22 375

原创 CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅

之前不久,由于自己平时涉猎还算广泛,总结了一篇博客: 这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已 ,没想到受到了大家的欢迎,有人希望能博主还能整理个 CSS的一些黑魔法小技巧,无奈我 CSS 一直很渣,没什么干货,最近写了一个 Chrome 插件 GayHub ,算是把 GitHub 的样式审查了个变,在写的过程中,也收获了很多关于 CSS 的小技巧,尤其是开始的第一...

2018-01-11 17:19:51 411

原创 Redis 数据类型及应用场景

一、 redis 特点所有数据存储在内存中,高速读写提供丰富多样的数据类型:string、 hash、 set、 sorted set、bitmap、hyperloglog提供了 AOF 和 RDB 两种数据的持久化保存方式,保证了 Redis 重启后数据不丢失Redis 的所有操作都是原子性的,还支持对几个操作合并后的原子性操作,支持事务通常我们都把数据存到关系型数据库...

2018-01-10 17:56:10 178

原创 数据可视化的开源方案: Superset vs Redash vs Metabase

人是视觉动物,要用数据把一个故事讲活,图表是必不可少的。如果你经常看到做数据分析同事,在SQL客户端里执行完查询,把结果复制/粘贴到Excel里再做成图表,那说明你的公司缺少一个可靠的数据可视化平台。数据可视化是Business Intelligence(简称BI)中的核心功能,有许多成熟的商用解决方案,如老牌的Tableau, Qilk,新生代的Looker,国内的FineBI等等。不过对于许...

2018-01-10 17:29:25 906

原创 Nginx 限制单个IP的并发连接数/速度来减缓垃圾蜘蛛爬虫采集

不知道大家碰没碰到过被一些垃圾蜘蛛爬虫采集造成服务器飙升的情况,反正明月是经常性的碰到 YandexBot 、 SMTBot 等等这类不需要的网络蜘蛛爬虫的骚扰,有些甚至一天的采集量达到接近1G的流量,虽然可以通过【 使用Fail2ban禁止垃圾采集爬虫,保护Nginx服务器 】一文的办法来屏蔽,但是这类爬虫还是会不断变更名字继续出现。其实,可以使用Nginx限制单个IP的并发连接数能够...

2018-01-10 15:52:50 296 1

原创 docker 升级到最新版

步骤卸载旧版 docker> rpm -qa | grep docker # 也可以使用 yum list installed | grep docker docker-engine-1.13.0-1.el7.centos.x86_64docker-engine-selinux-1.13.0-1.el7.centos.noarch> yum remov...

2018-01-10 14:14:09 190

原创 PyMongo 常见问题

这是一篇翻译文章,原链接在这里。翻译可能不准确,欢迎指出文章中存在的问题。PyMongo是线程安全的吗PyMongo是线程安全的,并且为多线程应用提供了内置的连接池PyMongo是进程安全的吗PyMongo不是进程安全的,如果你在fork()中使用MongoClient实例,必须小心。具体来说,MongoClient实例不能从父进程复制到子进程,父进程和每个子进程必须创建属...

2018-01-09 16:11:37 3249

原创 Python实战mongodb第3篇: Pymongo的分页查询

Pymongo的分页查询    

2018-01-08 11:25:03 8261 3

原创 SQL转 MongoDB语法速查表

SQL转 MongoDB语法速查表翻译整理:qqxufo 我的博客:http://hhxblog.leanote.com/ 吐槽:学习MongoDB的时候,在官网看到了SQL 到 MongoDB 的语法转换图。觉得内容不错,所以打算将其整理出来以便日后的学习和使用。 PS:右上角自带目录,可以进行速查。术语和概念SQLMongoDBdatabasedat...

2018-01-06 17:34:27 5403

原创 Logstash由于时区导致8小时时差解决方案

写在最前面, 这个logstash解决时差的原理是利用timestamp字段替换logstash的@timesamp字段。如果日志里没有这个timestamp字段,则无效。Logstash 2.3版本logstash的date插件配置:date {match =>["timestamp","dd/MMM/yyyy:HH:mm:ss Z"]target =>...

2018-01-03 15:10:50 8186 1

原创 Kombu 源码解析一

Kombu 源码解析一玩 Python 的同学可能很多都听说过甚至玩过 Celery,Celery 作为 Python 中最流行的异步消息队列可以说是非常得受欢迎。但是,用得多的同学相信也是有一个感触,那就是时不时会遇到莫名奇妙的坑,而且最后都只能通过重启解决,因为要找到原因实在不是一件容易的事情。而我作为这受伤人群中的一个,想了解一下这个大坑内部的原理,所以就曾经扒过它内部的实现,但是...

2017-12-25 16:33:24 294

原创 kibana 基本使用语法

       时间选择器默认的时间过滤器设置为最近 15 分钟。你可以用页面顶部的时间选择器(Time Picker)来修改时间过滤器,或者选择一个特定的时间间隔,或者直方图的时间范围。要用时间选择器来修改时间过滤器:点击菜单栏右上角显示的 Time Filter 打开时间选择器。快速过滤,直接选择一个短链接即可。要指定相对时间过滤,点击 Relative 然后输入...

2017-12-25 09:19:40 3102

原创 分布式SQL查询引擎Presto原理介绍

我们实时引擎组新引入了一款分布式SQL查询引擎,名字叫Presto,目前已经调研和测试了2个月了,并且期间某平台也从impala平台迁入到了Presto平台,查询性能有了2-3倍的提升(各种原因导致),所以本文将结合作者这段时间的测试和调研研究,来揭开Presto的神秘面纱。Presto是神马Presto是由Facebook开发的一个分布式SQL查询引擎, 它被设计为用来专门进行高速、实...

2017-12-21 13:58:28 684

原创 一行Python代码实现树结构

树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用。一颗树可以简单的表示为根, 左子树, 右子树。 而左子树和右子树又可以有自己的子树。这似乎是一种比较复杂的数据结构,那么真的能像我们在标题中所说的那样,用一行Python代码就可以实现吗?一行代码实现?由于树形结构的外层和内层有着相似的结构,所以多可以用递归的方式定义树。再利用Python中提供的defaultdict,我们就...

2017-12-20 15:47:03 293

原创 命令行神器 Click

ClickClick 是用 Python 写的一个第三方模块,用于快速创建命令行。我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 Argparse,就好比 requests 相比于 urllib。快速使用Click 的使用大致有两个步骤:使用 @click.command() 装饰一个函数,使之成为命令行接口...

2017-12-20 14:57:08 313

原创 django 流式大文件文件下载

写在最前面:        不要用ajax请求下载文件,只会返回类似json的数据。因为ajax不支持。         可以用form形式请求。         例如          $('.export_data').click(function () { Toastr('message', "开始下载数据", 'success') con...

2017-12-16 15:20:42 2280

原创 filebeat to elasticsearch针对于filebeat端性能优化--性能提升230%

1. filebeat介绍filebeat最初是基于logstash-forwarder源码的日志数据shipper。Filebeat安装在服务器上作为代理来监视日志目录或特定的日志文件,要么将日志转发到Logstash进行解析,要么发送到Elasticsearch或Redis等组件进行索引2. filebeat相比于logstash优缺点filebeat的优点:logstas...

2017-12-14 17:04:20 5108 1

原创 re必杀技正则表达式大全——包括校验数字、字符、一些特殊的需求等等

一、校验数字的表达式1数字:^[0-9]*$2n位的数字:^\d{n}$3至少n位的数字:^\d{n,}$4m-n位的数字:^\d{m,n}$5零和非零开头的数字:^(0|[1-9][0-9]*)$6非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})...

2017-12-13 15:42:04 729

原创 n种elasticsearch按照日期定时批量删除索引

     使用elkstack作为日志分析工具,采集nginx访问日志,项目log日志,心跳检测日志,服务器度量日志等,每天产生大量索引(Index),占用磁盘空间。对于过期数据需要进行删除来释放磁盘空间。<!-- more -->使用官网_delete_by_query进行删除官网文档--Delete By Query APIcurl -u 用户名:密码 -H...

2017-12-12 15:30:18 4140 1

原创 10个Python面试常问的问题

      类继承有如下的一段代码:class A(object): def show(self): print 'base show'class B(A): def show(self): print 'derived show'obj = B()obj.show()如何调用类A的show方...

2017-12-07 10:48:15 128

原创 Gin+Mysql简单的Restful风格的API

使用Gin的前提是安装,我们需要安装gin和mysql的驱动,具体的安装方式就不在赘述。可以参考Golang 微框架Gin简介和Golang持久化。创建一个文件夹用来为项目,新建一个文件main.go:☁ newland tree.└── main.gomain.gopackage mainimport ( "gopkg.in/gin-gonic/g...

2017-12-06 14:16:03 609

原创 gin性能

    gin性能     

2017-12-01 19:00:08 797

原创 现有系统如何集成Consul服务发现

本文目录Consul 简介Consul Glossary(术语) Consul Architecture(架构图)Consul 与 应用集成的几种姿势Docker registrator详解Consul 与 Nginx集成的几种姿势Consul 搭建配置中心Consul 简介Consul 四大特性Service Discovery (服务发现...

2017-11-28 09:18:43 287

python黑魔法异常重试的次数,间隔的装饰器涵数

起因: 在github找到一个库retrying 但这个库一点也不好用,好久没维护了 索性,造一个 还可以扩展timeoutfrom functools import wrapsfrom threading import Eventdef retry_exception(retry_count=0, interval_wait=0): ...

2017-11-23 14:50:47 307

原创 python版 异常重试的次数,间隔的装饰器涵数

from functools import wrapsfrom threading import Eventdef retry_exception(retry_count=0, interval_wait=0): def wrap(f): @wraps(f) def func(*args, **kwargs): ...

2017-11-23 14:49:17 494

原创 Salt-API入门指北

      在Google搜索栏输入salt-api,会有一些讲述如何使用Salt-API的文章,确实有效,不过都是建立 在将Salt安装在默认目录下的情况下,即通过apt-get install salt(Ubuntu)或yum install salt(CentOS)的方式。不过我希望的是项目能创建在自己指定的目录中,关于这一点,貌似没有找到有 相关介绍的文章,所以自己在这里记录一下。测...

2017-11-06 14:04:28 371

原创 nginx location配置的优先级

      location正则写法location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ]}location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ]}location...

2017-11-02 09:19:48 190

原创 分布式队列神器 Celery

       1.快速入门(本文以 Celery4.0 为基础进行书写)首先,我们要理解 Celery 本身不是任务队列,它是管理分布式任务队列的工具,或者换一种说法,它封装好了操作常见任务队列的各种操作,我们用它可以快速进行任务队列的使用与管理,当然你也可以自己看 rabbitmq 等队列的文档然后自己实现相关操作都是没有问题的。Celery 是语言无关的,虽然它是用 Pyth...

2017-10-27 09:49:13 116

原创 Celery手动配置路由

 1、需求我们有多种不同的任务,这些任务优先级不同,比如我们有视频上传和压缩任务等,照片压缩上传等任务还有其他不重要的任务。这些任务耗时不同需要使用不同的worker去处理。只是用celery默认的队列就不能满足我们的需求了。这就需要我们将不同的task路由到不同队列,让不同的worker处理不同种类的task。2、创建队列和交换机关于交换机和队列可以先看看http://ra...

2017-10-26 18:01:21 728

原创 celery 使用经验总结

        为什么要使用celeryCelery是一个使用Python开发的分布式任务调度模块,因此对于大量使用Python构建的系统,可以说是无缝衔接,使用起来很方便。Celery专注于实时处理任务,同时也支持任务的定时调度。因此适合实时异步任务定时任务等调度场景。Celery需要依靠RabbitMQ等作为消息代理,同时也支持Redis甚至是Mysql,Mongo等,当然,官方...

2017-10-26 15:26:11 525

原创 优化Django Rest Framework 的Token验证功能

pi的通信采用token + ssl,简化和方便线上脚本的调用。Django版本1.8.16,djangorestframework版本3.5.3,用了框架提供的rest_framework.authtoken.views.obtain_auth_token和rest_framework.authentication.TokenAuthentication后,发现了一个问题,前者认证通过创建to...

2017-10-10 10:07:48 824

原创 解决mysql 本地用户无法登陆

MySQL Study之--MySQL普通用户无法本地登陆     在安装完成MySQL后,我们通常添加拥有相应权限的普通用户用来访问数据库。在使用用户本地登录数据库的时候,经常会出现怎么登录也无法登录的情况,但是从其它的mysql客户端却可以登录。故障现象:故障现象:[root@mysrv ~]# mysql -u root -poracle1234...

2017-10-09 14:41:25 884

原创 一款非常好用且功能强大的工具---percona-toolkit

         一、percona-toolkit工具简介percona-toolkit是一组高级命令行工具的集合,主要用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括:1)检查master和slave数据的一致性2)有效地对记录进行归档3)查找重复的索引4)对服务器信息进行汇总5)分析来自日志和tcpdump的查询6)当系统出问题...

2017-09-30 13:56:03 549

原创 jenkins配置权限不对导致无法登陆或者空白页面解决办法

找到.jenkins/config.xml文件:替换为:1、<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>这个权限对应“任何用户可以做任何事(没有任何限制)”2、<authorizationStrategy class="hudson.security.FullCo...

2017-09-28 09:37:52 137

原创 mongodb对比学习

      关于mongoMongoDB is an open-source document database that provides high performance, high availability, and automatic scaling.mongo支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分...

2017-09-15 10:59:43 123

原创 jenkins jenkinsapi库 的使用

from jenkinsapi.jenkins import Jenkinsj = Jenkins('http://XX.XX.xx.xx:9000/jenkins/')jobName = j.keys()[1]j_config = j[jobName].get_config()j_views = j.views.keys()# print(j.views.iterite...

2017-09-14 16:52:07 653

原创 两种方式调用jenkins的api

在该系统中,Jenkins负责定时检测代码库(Code Repository)的代码更新情况,当检测到有新的代码提交时,自动采用最新的代码进行构建,并采用构建得到的包(apk)触发自动化测试平台(DroidTestbed)执行测试任务。然后再说下分支管理模块。由于我们的持续集成平台通常不止监控一个产品,而每个产品又不止监控一个tag(例如/trunk,/projects/cn/10....

2017-09-14 11:59:05 3631

原创 递归与尾递归

       一句话理解递归与尾递归      递归就是普通涵数的调用,消耗资源      尾递归就是最后一个调用自已,中间不需要处理数据,所以资源消耗层面很少。      这就象迭代器的好处。       编程很复杂,编程也很简单。简单的逻辑,通过代码组织,就可以变成复杂程序或者系统。以前学物理的时候,老师就说考试的物理题其过程是相当复杂的(简单的就没有必要考了)。解题...

2017-09-13 15:59:23 157

空空如也

空空如也

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

TA关注的人

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