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

原创 python操作mysql数据库cursor导致oom处理方法
当使用sql查询的结果有非常多行时,如果使用默认的cursor,你的程序在接受数据的的时候很可能卡住或者被杀死,原因是mysql客户端(Java,Pyhton)默认在内存里缓存下所有行然后再处理,如果内存溢出后,你的程序就会被杀死。解决方式是实用流式游标,在Python中,你可以使用pymysql.cursors.SSCursor(或者SSDictCursor)来解决这个问题import ...
2018-06-20 16:05:35
1911
原创 linux给文件增加一列行号
awk '$0=NR"\t"$0' file_name$0=NR表示给文件赋值行号"\t" 标识行号和其他文件用\t分隔结尾$0代表文件的其他内容
2019-07-15 14:39:11
8204
原创 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
716
原创 python写入mysql转移字符消失的问题
写入数据之前,使用pymysql或者mysqlDb 提供的内置方法scape_string()格式化一下字符串即可;
2019-05-15 15:35:51
967
原创 撤销 git pull
1.git reflog 查看历史变更记录 或者git log看最新一次记录(目的是要拿到要回滚的那一版的提交id)2.git reset --hard 提交id
2019-01-09 11:03:10
2254
原创 设计模式--抽象工厂模式
工程模式一次只能生产一个产品,抽象工厂模式则是一次生产一组产品;角色:抽象工厂 具体工厂 抽象产品 具体产品class Fruit //抽象产品{ public: virtual void show() { cout<<"Fruit"<<endl; }};class ...
2018-12-06 00:59:09
184
原创 设计模式--工厂模式
工厂模式有四个角色:抽象工厂 具体工厂 抽象产品 具体产品当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好的符合了“开放-封闭”原则。而简单工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。工厂方法模式退化后可以演变成简单工厂模式。代码示例:class Fruit //抽象一...
2018-12-05 08:39:28
159
原创 设计模式---简单工厂模式
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。优点:不需要知道底层类的结构,只需根据外界给定的信息,直接通过工厂类创建实例 适用于不同情况创建不同的类时缺点...
2018-12-04 01:16:55
152
原创 设计模式---单例模式
概念: 单例模式是一种对象创建型的模式,使用单例模式可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。(程序运行期间,只初始化一次) 一般需要提供一个全局访问的接口,通常是静态方法GetInstance() 来获取指针句柄 特点: 1.构造函数私有化,这样在初始化对象时不会主动调用构造函数 2.提供一个全局的静态方法GetIns...
2018-11-28 08:27:55
160
原创 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
2600
原创 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
3484
原创 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
1103
原创 排序算法----快速排序
排序算法的思路是通过一趟排序将数组分为两部分,一部分比另一部分都要小,以此递归即可得到最终的排序。复杂度nlognvoid Qsort(int a[], int low, int high)//low high代表最低的下标和最高的下标{ if(low >= high) { return; } int first = low;//将fi...
2018-10-24 23:58:45
186
转载 c++常用源代码以及常用库查找
我平时看代码主要是C和C++代码为主,Java代码也会偶尔看一下。平时除了自己积累一些代码之外,也会主动去寻找一些代码,比如说,(1)到sourceforge上查找相关代码;(2)到google code上面查找具体的代码;(3)到apache网站上寻找java的相关代码;(4)直接到开源项目网站上面寻找代码;(5)到csdn等网站下载代码,偶尔会有意外的收获;(6)到图书...
2018-10-17 12:23:48
3775
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
551
原创 排序算法--冒泡排序(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
313
原创 排序算法--选择排序
选择排序是一个比较直观的排序算法,算法复杂度是n的平方,工作原理也比较容易理解:开始是在序列中寻找最大或最小值,放在序列的起始位置,然后在找次小或者次大值放在最大或最小值之后,直至排序完毕。其实主要容易和冒泡排序混淆:最主要的区别是冒泡排序是交换相邻两个元素,来实现排序目的,而选择排序是直接遍历一次,来获取最大或者最小值来进行排序,选择排序代码如下:void select_sort(...
2018-09-27 01:40:27
190
原创 git revert 撤销中间的某次提交
使用场景如下:首先看一下我的提交(commit1这种都是指的是提交的commit-id)commit1commit2commit3commit4commit5commit6现在想把commit4扔掉,只需git log 从这里拿到commit4的id(当然咱们这里已经拿到了,coomit4就是)git revert commit4 正常情况下就撤销成功了...
2018-09-26 10:01:08
6265
原创 git拷贝指定分支到新分支
有时候有这样一种需求:远程分支有两个:(当然本地也是这两个)master分支 线上正在使用 develop分支 开发新功能的分支这个时候产品说,我要在master加个新功能,开始搞,我们都知道要创建一个新的分支,因为master分支一般是保护分支,不能随便提交的,这时候会发现问题,为啥我新分支merge了master还是有develop的代码啊,其实问题的原因很简单:你从deve...
2018-09-06 10:48:47
18242
原创 mac下安装包损坏,打不开解决方法
问题如下:或者这样或者这样:相信伙伴们在遇到以上的情况是不是觉得是软件包坏了呢?N0,非常肯定加确定的告诉您不是我们软件包坏了,而是Mac用户在第一时间升级mac10.12_10.13最新版本的系统后,系统中的"安全性与隐私"中没有"任何来源"这个选项.没有“任何来源”这个选项安装本站任何软件都会提示软件包来自不安全的开发者,包括提示软件包损坏。那么mac10.12...
2018-08-30 21:13:04
7517
原创 redis mac下可视化工具redis-desktop-manager
不多说了,直接放链接了https://pan.baidu.com/s/1aul9sRw5hqulbXwFxOaBaw
2018-08-30 21:05:58
1364
1
原创 rsync的配置文件(可以两端互传文件了,不限ip)
use chroot = no pid file = /var/run/rsyncd.pidlog file = /v...
2018-08-30 20:57:22
595
转载 sql 优化策略或者避免索引失效的策略
1.’对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is...
2018-08-28 18:00:37
178
原创 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
1068
原创 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
3278
转载 git cherry-pick的用法
场景:在branch1开发,进行多个提交,这是切换到branch2,想把之前branch1分支提交的commit都【复制】过来,怎么办? 首先切换到branch1分支,然后查看提交历史记录,也可以用sourceTree查看,也可以用命令git log 例如我的git log 如下:commit 023sb6f299849a1fec3bbe72baaf315482522cb6...
2018-08-01 18:35:21
1847
原创 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
18907
2
转载 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
189
原创 linux &和nohup的区别
简单说,&就是把当前进程放置到该终端的后台运行,但是会依赖于终端,终端关闭,进程关闭,但是ctrl+c是不能杀死该进程了!而nohup就是忽略SIGHUP信号,即会脱离当前终端,当前终端关闭,该进程还会运行;所以应用场景就很明显了,如果某个进程需要跑很长时间,而终端会因心跳而断开,这时候呢,这么用:nohup python 进程名 2>&1 & 第一...
2018-07-23 16:27:00
279
原创 python json模块出现Invalid control character这个异常的原因
有些字符串,比如strings='{"key":"valaaaaabb"}'中间包含了一个换行,我们在使用json.loads(strings),就会报这个错误这个原因是默认只转化json的标准格式,像这种不标准的格式怎么办呢,很简单json.loads(strings,strict=False)#有这个参数就可以转换不标准的json格式了!...
2018-07-23 16:14:08
7792
转载 python列表中位数的获取
中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数。在这个任务里,你将得到一个含有自然数的非空数组(X)。你必须把它分成上下两部分,找到中位数。 输入: 一个作为数组的整数(int)列表(list)的。输出: 数组的中位数(int, f...
2018-07-20 15:55:10
5315
原创 linxu awk中的$NF
$NF 表示的最后一个Field(列),即输出最后一个字段的内容,当然可以用$(NF-1),来获取倒数第二列的内容,以此类推 使用语法:awk -F"\t" '{print $NF} a.txt'...
2018-07-19 15:36:01
1586
原创 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
624
原创 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
838
原创 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
896
原创 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
753
原创 python 导入上级目录中的模块
开始使用 from ../* import 模块名 直接报错了;后来查了查资料原来python解释器会从当前模块所在目录和sys.path指定的路径取查找模块,所以解决也就很简单了解决方法:sys.path.append('../')from 上级目录名 import 模块名 #不需要../,这样就可以了 ...
2018-07-16 20:34:32
13398
原创 linux sort命令小结
sort的工作原理:将每一行作为一个单位,逐行比较,原则是首字符向后按照ask码比较,最终默认情况下是升序输出[root@********make_urls_of_img]# cat cc497c2c3265be257599d9668eb404c9e5ea26e66972f6e89d323bd823b53ca389fa31adbb9ac84b002e9789bab89023186ca3...
2018-07-16 20:17:12
204
原创 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
3171
原创 C++STL(Standard Template Library) 标准模板库----2容器介绍
容器的主要头文件是<vector>,<list>,<deque>,<set>,<map>,<stack>和<queue>,分别对应七种容器;可能直接说容器,有点茫然,简单来说:容器就是放东西的,只不过是存放某种特定(自己指定)的类型的数据;容器分为序列化容器:每个元素位置固定,取决于插入时间(vector,dequ
2018-07-12 23:36:41
148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人