自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python操作mysql数据库cursor导致oom处理方法

    当使用sql查询的结果有非常多行时,如果使用默认的cursor,你的程序在接受数据的的时候很可能卡住或者被杀死,原因是mysql客户端(Java,Pyhton)默认在内存里缓存下所有行然后再处理,如果内存溢出后,你的程序就会被杀死。解决方式是实用流式游标,在Python中,你可以使用pymysql.cursors.SSCursor(或者SSDictCursor)来解决这个问题import ...

2018-06-20 16:05:35 1770

原创 linux给文件增加一列行号

awk '$0=NR"\t"$0' file_name$0=NR表示给文件赋值行号"\t" 标识行号和其他文件用\t分隔结尾$0代表文件的其他内容

2019-07-15 14:39:11 7920

原创 git指定自己的origin,解决在别人git目录下不能拉代码

1. git remote -v 查看remote地址2. git remote add aaahttps://用户名:密码@github.com/xxxx/helloworld.git aaa是仓库名3. git pull aaa master:master

2019-06-27 18:43:54 640

原创 python写入mysql转移字符消失的问题

写入数据之前,使用pymysql或者mysqlDb 提供的内置方法scape_string()格式化一下字符串即可;

2019-05-15 15:35:51 877

原创 撤销 git pull

1.git reflog 查看历史变更记录 或者git log看最新一次记录(目的是要拿到要回滚的那一版的提交id)2.git reset --hard 提交id

2019-01-09 11:03:10 2191

原创 设计模式--抽象工厂模式

工程模式一次只能生产一个产品,抽象工厂模式则是一次生产一组产品;角色:抽象工厂 具体工厂 抽象产品 具体产品class Fruit //抽象产品{ public: virtual void show() { cout<<"Fruit"<<endl; }};class ...

2018-12-06 00:59:09 151

原创 设计模式--工厂模式

工厂模式有四个角色:抽象工厂 具体工厂 抽象产品 具体产品当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好的符合了“开放-封闭”原则。而简单工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。工厂方法模式退化后可以演变成简单工厂模式。代码示例:class Fruit //抽象一...

2018-12-05 08:39:28 128

原创 设计模式---简单工厂模式

简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。优点:不需要知道底层类的结构,只需根据外界给定的信息,直接通过工厂类创建实例 适用于不同情况创建不同的类时缺点...

2018-12-04 01:16:55 123

原创 设计模式---单例模式

概念: 单例模式是一种对象创建型的模式,使用单例模式可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。(程序运行期间,只初始化一次) 一般需要提供一个全局访问的接口,通常是静态方法GetInstance() 来获取指针句柄 特点: 1.构造函数私有化,这样在初始化对象时不会主动调用构造函数 2.提供一个全局的静态方法GetIns...

2018-11-28 08:27:55 120

原创 redis命令行导出val到文件

由于本人一直习惯在linux命令行进行开发,最近遇到一个问题:想看一下redis的值,但是值比较大,直接刷屏了,即命令行情况是:链接redis:redis-cli -h x:x:x:x -p xxxx -a xxxx执行命令:get a然后val巨大,刷屏了,查了下资料,可以这么导出到val文件linux命令行执行:echo "get a" | redis-cli -h...

2018-11-01 18:40:48 2463

原创 rabbitmq无法启动的问题

rabbitmq服务拒绝链接的问题总结:现象:1.5672端口直连mq,连接失败2.15672端口进入web管理界面,500错误码被拒绝3.mq机器服务运行正常4.df -h 看了一下/var/lib/rabbitmq/mnesia/xxxx/下面的msg_strore_transient 的文件夹大小14G,将var目录磁盘占满了,这个文件是因为内存吃紧引起,mq把消息写入到...

2018-10-30 14:25:22 3295

原创 sort命令去重无效的分析

有如下一个文件1 北京 aa dd2 南京 bb ad3 东京 cc as4 巴黎 aa asd现在想根据第三列进行去重,命令是sort -t " " -k 3 -u 文件名却发现无效,原因是第三列相同,sort会根据第一个域重新排,如果相同,继续后推所以需要改为:sort -t  " " -k 3,3 -u 文件名 上面的命令代表只针对第三列排序去重 拓展...

2018-10-27 11:19:12 1023

原创 排序算法----快速排序

排序算法的思路是通过一趟排序将数组分为两部分,一部分比另一部分都要小,以此递归即可得到最终的排序。复杂度nlognvoid Qsort(int a[], int low, int high)//low high代表最低的下标和最高的下标{ if(low >= high) { return; } int first = low;//将fi...

2018-10-24 23:58:45 122

转载 c++常用源代码以及常用库查找

我平时看代码主要是C和C++代码为主,Java代码也会偶尔看一下。平时除了自己积累一些代码之外,也会主动去寻找一些代码,比如说,(1)到sourceforge上查找相关代码;(2)到google code上面查找具体的代码;(3)到apache网站上寻找java的相关代码;(4)直接到开源项目网站上面寻找代码;(5)到csdn等网站下载代码,偶尔会有意外的收获;(6)到图书...

2018-10-17 12:23:48 3551 1

原创 排序算法---简单插入排序(Simple insertion sort)

简单插入排序是由n-1趟排序组成,简单来说,就是假定一个长度为n的数组,把第0位作为起始位,并认为有序(只有一个元素嘛),然后遍历从1到n-1下标的元素,每次遍历一个进行一次排序,直到n-1趟排序完成,这个排序的算法复杂度最优的情况下,为O(n),最坏的情况下还是O(n的平方);代码如下:void InsertionSort(int a[]){ int j; int s...

2018-09-28 01:19:37 482

原创 排序算法--冒泡排序(bubble sort)

冒泡排序是一个简单的排序算法,算法复杂度n的平方,特点是两两比较,每次遍历会将最大值或最小值放在最后,像冒泡一样,每次的最大值或最小值,逐渐冒出,故名冒泡排序;代码如下void swap( int& a,int& b){//数据交换的函数,这里另类了一点,没有定义中间变量交换值 a=a+b; b=a-b; a=a-b;}void bubble...

2018-09-27 02:02:12 273

原创 排序算法--选择排序

选择排序是一个比较直观的排序算法,算法复杂度是n的平方,工作原理也比较容易理解:开始是在序列中寻找最大或最小值,放在序列的起始位置,然后在找次小或者次大值放在最大或最小值之后,直至排序完毕。其实主要容易和冒泡排序混淆:最主要的区别是冒泡排序是交换相邻两个元素,来实现排序目的,而选择排序是直接遍历一次,来获取最大或者最小值来进行排序,选择排序代码如下:void select_sort(...

2018-09-27 01:40:27 141

原创 git revert 撤销中间的某次提交

使用场景如下:首先看一下我的提交(commit1这种都是指的是提交的commit-id)commit1commit2commit3commit4commit5commit6现在想把commit4扔掉,只需git log 从这里拿到commit4的id(当然咱们这里已经拿到了,coomit4就是)git revert commit4 正常情况下就撤销成功了...

2018-09-26 10:01:08 5930

原创 git拷贝指定分支到新分支

有时候有这样一种需求:远程分支有两个:(当然本地也是这两个)master分支  线上正在使用 develop分支 开发新功能的分支这个时候产品说,我要在master加个新功能,开始搞,我们都知道要创建一个新的分支,因为master分支一般是保护分支,不能随便提交的,这时候会发现问题,为啥我新分支merge了master还是有develop的代码啊,其实问题的原因很简单:你从deve...

2018-09-06 10:48:47 18099

原创 mac下安装包损坏,打不开解决方法

问题如下:或者这样或者这样:相信伙伴们在遇到以上的情况是不是觉得是软件包坏了呢?N0,非常肯定加确定的告诉您不是我们软件包坏了,而是Mac用户在第一时间升级mac10.12_10.13最新版本的系统后,系统中的"安全性与隐私"中没有"任何来源"这个选项.没有“任何来源”这个选项安装本站任何软件都会提示软件包来自不安全的开发者,包括提示软件包损坏。那么mac10.12...

2018-08-30 21:13:04 7347

原创 redis mac下可视化工具redis-desktop-manager

不多说了,直接放链接了https://pan.baidu.com/s/1aul9sRw5hqulbXwFxOaBaw

2018-08-30 21:05:58 1319 1

原创 rsync的配置文件(可以两端互传文件了,不限ip)

use chroot = no pid file = /var/run/rsyncd.pidlog file = /v...

2018-08-30 20:57:22 562

转载 sql 优化策略或者避免索引失效的策略

1.’对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is...

2018-08-28 18:00:37 142

原创 c/c++ strcat追加函数的实现

char * strcat (char *dest, const char *src) { //通过strcpy来实现strcat函数,这个函数的前提是dest分配的空间要能容纳src strcpy (dest + strlen (dest), src); return dest; } ...

2018-08-07 00:34:41 1035

原创 c/c++ strcmp函数的源码

int _cdecl strcmp(const char* src,const char* dst) { int ret=0; while(!(ret=*(unsigned char*)src-*(unsigned char*)dst)&&*dst) ++src,++dst; if(ret<0) ...

2018-08-07 00:27:34 3200

转载 git cherry-pick的用法

场景:在branch1开发,进行多个提交,这是切换到branch2,想把之前branch1分支提交的commit都【复制】过来,怎么办? 首先切换到branch1分支,然后查看提交历史记录,也可以用sourceTree查看,也可以用命令git log 例如我的git log 如下:commit 023sb6f299849a1fec3bbe72baaf315482522cb6...

2018-08-01 18:35:21 1812

原创 c++ vector的迭代器倒序遍历代码实现

//set或者vector的变量名是myvec//第一个元素是从end-1开始的,end指向的不是最后一个元素for(std::vector<int>::iterator it=myvec.end()-1;it>=myvec.begin();it--){ //处理逻辑自己定义,我这里自己直接输出了 cout<<*it<<end...

2018-07-30 11:50:15 17867 4

转载 python 操作mongodb

from pymongo import MongoClientclient = MongoClient('localhost', 27017)#建立和数据库系统的连接,创建Connection时,指定host及port参数db_auth = client.admindb_auth.authenticate("account", "password")#admin 数据库有帐号,连接-认...

2018-07-23 16:33:03 151

原创 linux &和nohup的区别

简单说,&就是把当前进程放置到该终端的后台运行,但是会依赖于终端,终端关闭,进程关闭,但是ctrl+c是不能杀死该进程了!而nohup就是忽略SIGHUP信号,即会脱离当前终端,当前终端关闭,该进程还会运行;所以应用场景就很明显了,如果某个进程需要跑很长时间,而终端会因心跳而断开,这时候呢,这么用:nohup python 进程名 2>&1  &   第一...

2018-07-23 16:27:00 231

原创 python json模块出现Invalid control character这个异常的原因

有些字符串,比如strings='{"key":"valaaaaabb"}'中间包含了一个换行,我们在使用json.loads(strings),就会报这个错误这个原因是默认只转化json的标准格式,像这种不标准的格式怎么办呢,很简单json.loads(strings,strict=False)#有这个参数就可以转换不标准的json格式了!...

2018-07-23 16:14:08 7025

转载 python列表中位数的获取

中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数。在这个任务里,你将得到一个含有自然数的非空数组(X)。你必须把它分成上下两部分,找到中位数。 输入: 一个作为数组的整数(int)列表(list)的。输出: 数组的中位数(int, f...

2018-07-20 15:55:10 4995

原创 linxu awk中的$NF

$NF 表示的最后一个Field(列),即输出最后一个字段的内容,当然可以用$(NF-1),来获取倒数第二列的内容,以此类推 使用语法:awk -F"\t" '{print $NF}  a.txt'...

2018-07-19 15:36:01 1442

原创 python datetime,时间戳,string的互相转换

import datetimeimport time#datetime转成字符串,#strftime函数就是接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定def datetime_to_string(dt): return dt.strftime("%Y-%m-%d-%H") #字符串需要不需要"-",自己定#字符串转成datetime...

2018-07-19 11:57:52 551

原创 python 进程锁

1 2 3 4 5 6 7 8 9 10 11 12 13 14 from multiprocessing import Process, Lock   def func(lock, i):     lock.acquire()#加锁 ...

2018-07-18 11:54:35 801

原创 c/c++ 标准库函数实现 ------strcpy

如有错误,欢迎指正#include <stdio.h>#include <string.h>#include <stdlib.h>//先把大家都能考虑到的实现写一下吧char* strcpy1(char* dest,char* origin){if(dest==NULL ||origin==NULL)               ...

2018-07-17 00:25:55 842

原创 c/c++ 常见的标准库函数实现------strlen

int strlen(char *t){    int length = 0;    if(t == NULL)        return -1;     while (*t != '\0') {        t++;        length++;    }    return length;} size_t strlen(const cha...

2018-07-16 23:49:02 714

原创 python 导入上级目录中的模块

开始使用    from ../* import 模块名   直接报错了;后来查了查资料原来python解释器会从当前模块所在目录和sys.path指定的路径取查找模块,所以解决也就很简单了解决方法:sys.path.append('../')from 上级目录名 import 模块名   #不需要../,这样就可以了 ...

2018-07-16 20:34:32 13337

原创 linux sort命令小结

sort的工作原理:将每一行作为一个单位,逐行比较,原则是首字符向后按照ask码比较,最终默认情况下是升序输出[root@********make_urls_of_img]# cat cc497c2c3265be257599d9668eb404c9e5ea26e66972f6e89d323bd823b53ca389fa31adbb9ac84b002e9789bab89023186ca3...

2018-07-16 20:17:12 172

原创 python 获取昨天和明天的八位日期

import timeimport datetimetoday=datetime.date.today()oneday=datetime.timedelta(days=1)yesterday=(today-oneday).strftime("%Y%m%d")#昨天的日期tomorrow=(today+oneday).strftime("%Y%m%d")#明天日期...

2018-07-13 17:51:20 3085

原创 C++STL(Standard Template Library) 标准模板库----2容器介绍

容器的主要头文件是<vector>,<list>,<deque>,<set>,<map>,<stack>和<queue>,分别对应七种容器;可能直接说容器,有点茫然,简单来说:容器就是放东西的,只不过是存放某种特定(自己指定)的类型的数据;容器分为序列化容器:每个元素位置固定,取决于插入时间(vector,dequ

2018-07-12 23:36:41 113

空空如也

空空如也

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

TA关注的人

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