- 博客(45)
- 收藏
- 关注
原创 在Mac上实现git命令自动补全(详解)
具体步骤如下:1.安装bash-completionbrew info bash-completion2.添加以下代码到**~/.bash_profile**if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completionfi3.执行以下命令s...
2019-09-12 11:34:16
540
转载 Redis常见面试题
Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。使用过Redis分布式锁么,它是什么回事?...
2019-07-27 11:41:28
203
转载 我是如何用单机实现亿级规模题库去重的?
我是如何用单机实现亿级规模题库去重的?背景最近工作中遇到了一个问题:如何对大规模题库去重?公司经过多年的积累,有着近亿道题目的题库,但是由于题目来源不一导致题库中有很多重复的题目,这些重复的题目在检索时,除了增加搜索引擎的计算量外,并不会提高准确率。此外由于题目过多,搜索引擎往往采取了截断策略,只对一部分题目进行计算,这导致了某些正确的题目反而得不到计算,拍搜准确率甚至不增反降。所以对于一个搜...
2019-07-19 16:45:13
466
转载 vscode写python时的代码错误提醒和自动格式化(转)
https://blog.csdn.net/BNK_along/article/details/84000953
2019-06-06 13:52:05
3842
原创 Mac解决bogon
早上一来,Mac终端里变成了bogon.然后解决了一下,直接输入下面三行即可。就是设置了一下hostnamesudo hostname MyMacBooksudo scutil --set LocalHostName $(hostname)sudo scutil --set HostName $(hostname)...
2019-05-13 10:45:44
2387
1
转载 Go的异常处理
使用defer, panic, recover捕获异常package main import "fmt" func main(){ defer func(){ //defer的作用就是在此函数运行完毕之后执行(无论是否正常运行) fmt.Println("a") if err:=recover();err!=nil{ fm...
2019-05-10 18:16:09
157
原创 用redis实现“排行榜”、“计数器”、“限速器”
1、排行榜话不多说直接上代码,但是需要考虑,并发!并发!!并发!!!输入: ZINCRBY rank 1 aaa ZINCRBY rank 2 bbb ZINCRBY rank 3 ccc ZINCRBY rank 4 ddd ZINCRBY rank 5 eee ZREVRANGE rank 0 4 withscores输出: 1) "eee...
2019-05-07 16:36:44
816
转载 常见的开源搜索引擎,按需接入到项目之中~
LuceneLucene的开发语言是Java,也是Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标准的全文检索程序,它提供了完整的查询引擎和索引引擎,没有中文分词引擎,需要自己去实现,因此用Lucene去做一个搜素引擎需要自己去架构.另外它不支持实时搜索,但linkedin和twitter有分别对Lucene改进的实时搜素. 其中Lucene有一个C++移植版本叫CLuce...
2019-04-30 12:19:41
1378
原创 坑 -> 关于Django orm queryset的update方法
场景:1.需要批量修改库中的某个值2.修改完之后还需要使用queryset马上想到的解决方案:关于这个场景想到了使用queryset.update(xxx=yyy)然后继续使用queryset错误:使用queryset.update(xxx=yyy)会清空整个queryset,返回受影响行数所以无法在之后继续使用queryset可选的一个性能不高的解决方案:for query ...
2019-04-19 11:59:01
4019
1
转载 Celery常见问题
译文出处http://docs.celeryproject.org/en/latest/faq.htmlThis document describes the current stable version of Celery (4.1).本文长期更新地址: Celery4.1常见问题术语翻译对照英文 中文celery celeryworker workerqueue 队列mess...
2019-04-18 16:27:18
2957
3
转载 分库分表利弊分析(mysql)
为什么要分库分表?当一张表的数据达到几千万时,查询一次所花的时间会变长。这时候,如果有联合查询的话,可能会卡死在那儿,甚至把系统给拖垮。而分库分表的目的就在于此:减小数据库的负担,提高数据库的效率,缩短查询时间。另外,因为分库分表这种改造是可控的,底层还是基于RDBMS,因此整个数据库的运维体系以及相关基础设施都是可重用的。目前我们系统将近20亿数据,每张表最大的接近600w条/表,每条数据...
2019-03-12 13:58:01
7317
转载 django获取某一个字段的列表,values/values_list/flat
class Building(models.Model): corporation = models.ForeignKey('company.Corporation', verbose_name=u'学校', related_name='buildings') number = models.CharField(u'楼栋编号', max_length=10, unique=...
2019-03-12 10:53:55
4764
原创 python3实现微信公众号确认己方服务器
def wechat_auth_required(log_base='[wechat_api]'): def decorator(view_func): @wraps(view_func) def wrapper(instance, request, *args, **kwargs): signature = request.GET...
2019-03-04 11:48:18
201
转载 pip清华大学镜像
临时使用可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent,这样就会从清华这边的镜像去安装gevent库。永久修改Linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 in...
2018-12-26 12:14:50
3102
原创 python安装某些包出错SNIMissingWarning或者InsecurePlatformWarning
简单粗暴的解决方法:pip install pyopenssl ndg-httpsclient pyasn1
2018-12-22 16:59:32
1119
2
转载 IP代理池及做成服务
起因做过爬虫的人应该都知道,抓的网站和数据多了,如果爬虫抓取速度过快,免不了触发网站的防爬机制,几乎用的同一招就是封IP。解决方案有2个:同一IP,放慢速度(爬取速度慢)使用代理IP访问(推荐)第一种方案牺牲的就是时间和速度,来换取数据,但是一般情况下我们的时间是很宝贵的,理想情况下是用最短的时间获取最多的数据。所以第二种方案是推荐的,那么从哪里能找到这么多代理IP呢?寻找代理程序猿不...
2018-12-21 16:36:12
235
转载 nohup的使用及其中各部分内容的解释
我们在Linux下经常会碰到nohup command>/dev/null 2>&1 &这样形式的命令。首先我们把这条命令大概分解下首先就是一个nohup表示当前用户和系统的回话下的进城忽略响应HUP消息。&是把该命令以后台的job的形式运行。那么就剩下command>/dev/null 2>&1,command>/dev/null较好...
2018-11-30 10:54:16
437
转载 蓄水池算法
题目:给出一个数据流,这个数据流的长度很大或者未知。并且对该数据流中数据只能访问一次。请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等。抽象:从n中取出k个数,n未知大小,保证最后n中每个元素被抽取的概率一样为k/n。做法:假设我们从3个数{1,2,3}中取一个数,那么就要求每个数被抽取的概率为1/3,我们先读取前2个数{1,2},我们以1/2的概率选取其中一个数,加入选择{1},...
2018-11-29 17:17:45
236
转载 MySQL Explain详解
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略...
2018-11-20 11:00:33
97
转载 tmux的session
//创建一个新的sessiontmux new -s SESSION_NAME;//查看所有sessiontmux ls;//删除指定的sessiontmux kill-session -t SESSION_NAME;//临时退出session 让其在后台继续运行 注意脱离了会话才能关闭xshell 不然当前会话开启的服务会被停掉ctrl + b d注意:上面命令是ctrl和b...
2018-11-16 14:44:37
6347
转载 python虚拟环境--virtualenv
virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。安装pip install virtualenv 基本使用为一个工程创建一个虚拟环境:$ cd my_project_dir$ virtualenv venv #venv为虚拟环境目录名,目录名自定义 virtualenv...
2018-11-15 20:48:07
162
转载 Django restframework 认证、权限、限流
认证Authentication可以在配置文件中配置全局默认的认证方案REST_FRAMEWORK = {‘DEFAULT_AUTHENTICATION_CLASSES’: (‘rest_framework.authentication.BasicAuthentication’, # 基本认证‘rest_framework.authentication.SessionAuthenti...
2018-11-14 16:24:55
169
转载 django命令管理
【简介】django-admin.py是Django的一个用于管理任务的命令行工具。本文将描述它的大概用法。另外,在每一个Django project中都会有一个manage.py。manage.py是对django-admin.py的简单包装,它额外帮助我们做了两件事情:它将你的project的包放到sys.path中它将DJANGO_SETTINGS_MODULE环境变量设置为了你的p...
2018-11-12 17:43:27
272
转载 tmux会话的基本命令
安装tmuxsudo yum install tux运行tmux并开启一个新的会话tmux # 显示所有会话 tmux ls新建会话并指定会话名称(建议制定会话名称,以便了解该会话用途)tmux new -s 新建会话(不指定会话名称)tmux new接入上一个会话tmux a #接入指定名称的会话tmux a -t 断开当前会话(还可以使用快捷键:control+b,再按...
2018-11-06 19:13:25
3535
转载 KMP算法理解
https://blog.csdn.net/starstar1992/article/details/54913261先留个链接,以后继续深究
2018-10-13 10:42:26
104
转载 linux下执行python脚本的两种方式
1、直接使用python xxxx.py执行。其中python可以写成python的绝对路径。使用which python进行查询。2、在文件的头部(第一行)写上#!/usr/bin/python2.7,这个地方使用python的绝对路径,就是上面用which python查询来的结果。再用chmod改变文件的执行权限,然后在外面就可以使用./xxx.py或xxx.py执行了。...
2018-10-11 10:02:45
29042
转载 mysql的一些问题详解
1.数据库事务的四个特性及含义数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这...
2018-10-09 18:55:22
102
原创 python中单例模式的线程安全问题
看了好多文章都是java实现的,特此写一篇python的。这个问题的两种解决方案:1.最简单粗暴的就是在系统中先生成一个单例,就不存在线程安全问题了2.用双重同步锁去实现,一把锁加外面,一把锁加里面:class Singleton(object): __instance = None def __new__(cls, age, name): # 加锁 ...
2018-10-07 21:26:33
1422
原创 如何将n个有序大文件,有序的存入一个磁盘?
如何将n个有序大文件,有序的存入一个磁盘?通常会给定一个内存空间(如2G),但是每个有序大文件都在10G以上,所以无法全部读取到内存中进行合并。这问题是一个归并排序的运用!为了方便解说,假设问题中的n=2,并且文件为升序。并设文件一为file_one,文件二为file_two。文件中的数据用1,2,3,4…来表示步骤如下:一、拿到file_one1放入内存。二、拿到file_two1与...
2018-10-06 22:29:43
556
转载 视图,存储过程,触发器
视图的特点视图只是一种逻辑对象,是一种虚拟表,它并不是物理对象,因为视图不占物理存储空间,在视图中被查询的表称为视图的基表,大多数的select语句都可以用在创建视图中优点:集中用户使用的数据,掩码数据的复杂性,简化权限管理以及为向其他应用程序输出而重新组织数据等等语法: create view view_name [(column[,…n])]with encryptionas se...
2018-10-01 16:48:55
138
转载 常见的开源分布式存储系统
系统整体对比开源协议说明GPL:不允许修改后和衍生的代码做为闭源的商业软件发布和销售,修改后该软件产品必须也采用GPL协议;GPLV2:修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社 会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制;GPLV3:要求用户公布修改的源代码,还要求公布相关硬件;LGPL:更宽松的GPLTFSTFS(Taobao File...
2018-10-01 15:26:46
1880
转载 Redis持久化保存方式
一.概念介绍redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Apend Only File)。RDB方式RDB方式是一种快照式的持久化方法,将某一时刻的数据持久化到磁盘中。•redis在进行数据持久化的过程中,会先将数据写入到一个临时文件中,待持久化过程都结束了,才会用这个临时文件替换上次持久化好的文件。正是这种特性,让我们可以随时来进行备份,因为快...
2018-10-01 10:50:47
181
原创 mysql去重,只留一个(id最小的)
今天爬了一堆数据,结果发现有些重复的,无奈之下只好写个sql把mysql里去重了。如果大家有一样的需求可以直接拿去改吧改吧用。表名:你自己数据库的表名字段名:根据什么字段去重delete from 表名 where 字段名 in (select 字段名from (select 字段名 from 表名 group by 字段名 having count(字段名)>1)a) and...
2018-09-27 18:21:45
2907
原创 python用协程池异步爬取音乐的json数据
# -*- coding: utf-8 -*-# @Author : Acmimport gevent.monkeygevent.monkey.patch_all()from gevent.pool import Poolfrom Queue import Queueimport jsonimport jsonpathimport requestsimport timei...
2018-09-22 15:59:33
514
原创 用python2.7的requests模块下载图片(案例是200张)
用python2.7的requests模块下载图片(案例是200张)想要增加数据量自己改参数就行了。其中是有些数据重复,可能不到200,但是不会差太远。# -*- coding: utf-8 -*-# @Author : Acmimport jsonimport jsonpathimport requestsbase_url = "https://unsplash.com/...
2018-09-20 19:37:22
883
原创 用python爬虫下载20张图片到本地
数据全都是写死的,有需要可以自行修改。import requestsfrom lxml import etreebase_url = "https://unsplash.com/search/photos/flower"headers = {"User-Agent": "Mozilla/5.0 (Linux; Android
2018-09-20 17:47:50
1080
转载 Response.iter_content的用法
Response.iter_content原始响应内容在罕见的情况下,你可能想获取来自服务器的原始套接字响应,那么你可以访问 r.raw。 如果你确实想这么干,那请你确保在初始请求中设置了 stream=True。具体你可以这么做:>>> r = requests.get('https://github.com/timeline.json', stream=True)&g...
2018-09-20 16:53:10
4665
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人