- 博客(115)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 C++ thread.join 与 terminate
C++11 std::thread join主要函数注意事项原因解决方案std::thread 是C++11的新特性,对于windows来说,取代了原来的静态方法的创建方式DWORD WINAPI ThreadUtil::ThreadProc(LPVOID lpParameter)主要函数joinable():用于检测线程是否有效。joinable : 代表该线程是可执行线程。not...
2020-01-07 11:01:40
1506
原创 VS以管理员权限打开
描述在VS进行debug的时候,会提示使用管理员的权限进行调试。经常出现重新打开程序的问题,所以干脆将VS直接设置为默认管理员的角色运行1. 找到程序目录C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE右击文件devenv.exe2.选择兼容性疑难解答这里可能需要稍微等待一会,出现的...
2018-12-27 14:54:59
1467
原创 注册表
1.概述是微软的一个数据库,用于存储系统和应用程序的设置信息。参数包括控制windows的启动,硬件驱动及windows应用程序的运行。非常重要,谨慎操作数据结构注册表由键,子键,值项构成。键:分支中的一个文件夹。可以有一个或多个值,每个值名称不相同。子键:文件夹中的子文件夹值:键的当前定义。包括名称、数据类型及分配的值组成。数据类型REG_SZ:字符串 ,文本字符串RE...
2018-12-27 14:30:42
1227
原创 VSCode中调试nodejs
VSCode中调试nodejs项目中用node去编译脚本,尝试调试1.下载nodejs下载网址:https://nodejs.org/zh-cn/我是安装在windows环境中,所以选择2.启动VS选择debug,会提示选择 Open launch.json编辑调试信息3.加入配置信息在lanch.json页面的右下角有个Add Configuration填入信息"co...
2018-12-13 19:56:50
5301
2
原创 查找最长不重复子串
查找最长字串功能:在一个由[’a-z’][‘A-Z’][‘0-1’]组成的字符串中查找字母不重复的最长字串要求:空间与时间复杂度最低思路:在题目明确指出字母确定的情况下,一般这个题目会考虑使用位图或者map之类的结构体辅助解题。暴力法的时间复杂度会很高,数据只访问一次是最理想的结果,比较当前找到的字符串长度与最大的长度-》cur_len,max_len;采用额外的空间,分别比较li...
2018-09-21 10:56:21
853
原创 Python爬虫开发与项目实战--分布式进程
分布式的开发现在应该是炙手可热。消息队列是实现分布式的一个方法。 Queue的整个使用过程 管理进程: 1) 创建队列,声明队列中的元素个数 2) 定义队列的回调函数 3) 注册队列的回调函数方法 4) 为QueueManager绑定地址及端口,设置authkey 5) 获取队列,入队与出队 任务进程: 1) 注册用于获取queue...
2018-07-31 09:19:39
448
原创 利用pycharm创建第一个django项目
利用pycharm创建第一个django项目虽然这份工作是个很大的坑,但是我还是要继续学习。最近把python的基本语法还有一些绘图chart学习完了,开始django学习之路,它是个免费的强大的开源web框架. 安装好python,下载pycharm之后,New project创建一个新的项目。因为已经存在了mySite2,所以create已经无法使用,这里只要create,会在后台创建基...
2018-07-24 22:48:19
53728
12
原创 双指针 创建内存
双指针指针的指针,如果利用好指针去创建内存 比如下面的一个例子。通过指针来申请内存。 如果不采用双指针,直接demo*,在传递变量时,会有一个临时变量,叫做_s, 创建内存后,将内存的首地址给了_s.在函数返回时, second_level_pointer依旧是原来的NULL值,不会有任何的改变void malloc_method(demo * second_level_poi...
2018-07-10 14:13:18
731
原创 STL常见问题
STL常见问题Map 与unordermap如果需要元素内部自动排序,使用map,否则使用unordermap 在实现方式上面,map使用的是红黑树,unordermap使用的是哈希表 在时间复杂度上面 map 插入 O(logn) 查看 O(logn) 删除 O(logn) Unordermap 插入 O(1),最坏为O(n) 查看 O(1),最坏为O...
2018-07-09 10:58:32
392
转载 扭转有序数组 查找指定元素
扭转数组查找元素面试题: //扭转后的有序数组,找到指定的数,返回下标,找不到时返回-1 //样例输入:3,4,5,6,7,1,2 查找数字7 //样例输出:4 审题:有序,扭转,那么一部分是有序的,一部分是无序的 思路:二分查找,必须找到#include<stdio.h>int BinSearch(int *arr,int len,int key){ ...
2018-07-08 11:51:03
724
原创 算法导论-快速排序
快速排序昨天阿里3面,被问了快速排序,我看看之前的博客,这个排序漏了快排的基本思想: 1.分而治之的思路,选取一个哨兵节点 2.将小于key的元素放在哨兵的左边,将大于key的元素放在右边快排的时间复杂度为On(logn),最差的情况为O(n2),即所有元素都是有序的。每次只能走一位元素。 快排是不稳定的算法,无法保证相等两个元素的位置是原来的先后顺序代码如下...
2018-07-08 11:24:29
429
原创 删除镜像
因为尝试使用新的镜像,对原来的镜像进行删除,报错如下:Error response from daemon: conflict: unable to delete 037c233c605c (must be forced) - image is being used by stopped container 65e94723f0ed意思就是在删除镜像之前,要先删除对应的docker.因为该image
2017-12-26 09:25:32
10815
原创 docker创建redis镜像
直接pull redis 镜像创建redis的镜像有几种方式,可以直接从仓库中拉取。 首先说说docker的生命周期 1.docker的创建方式,有两种方式: 1)可以直接run ,跳过上面的步骤。举个栗子: 在构建镜像,要提供访问的端口,-p为端口映射的 1.创建并启动,设置端口映射docker run -p 127.0.0.1:6379:6379 redisdocker run 备
2017-12-24 21:35:45
4707
原创 下载与配置docker
下载与设置docker在CentOS中下载docker,直接运行 yum install -y docke-io 因为使用代理,所以一直无法连接网络 1.在虚拟机上面使用代理上网,无法连接网络 首先需要配置 /etc/profile 设置其Http_proxy=”http://your_proxy_ip:porxy_port” Https_proxy=”http://your_prox
2017-12-21 11:02:43
760
1
原创 基于Centos7 创建一个lxc
创建lxc1.首先需要安装epel-release。 Yum install -y epel-release 因为在LXC virtualization是在epel中提供的。2.在安装LXC之前,要确保perl和debootrap包已经安装完毕。 Yum install -y deboostrap perl libvirt 1)一般在linux系统上面有perl解释器,可以使用which p
2017-12-21 09:27:17
2357
转载 lxc常见命令
lxc-version 用于显示系统LXC的版本号(可以通过此命令判断系统是否安装了lxc) 用法:lxc-version 例如: 代码如下:lxc-versionlxc-checkconfig 用于判断linux内核是否支持LXC 用法:lxc-checkconfig 例如: 代码如下:lxc-checkconfiglxc-create 用于创建一个容器 用法:lxc-c
2017-12-21 08:51:11
2657
原创 Mongodb 尝试去balancer
Mongodb 去平衡器从zh到hz,这真是一个大跨度,我发现mongodb在hz这个城市可能只有大企业会比较规模的使用,大部分还是mySQL,可惜,mySQL了解的并不深,心心念希望走大数据,走数据库,还是落空了,还是要走C++这条路的,至少目前是这样子的。自己的起点还是有点低了,想起之前处理的mongodb平衡化的过程最后一步,记下来,以免后续忘记了。由于我们的数据库原来的数据量问题,还有不断写
2017-10-10 22:24:12
947
原创 mongodb -moveChunk
Move Chunk1. 基本概念在了解平衡之前,或许有必要好好的了解下分裂与迁移写入数据时,会先创建一个min,max的chunk,随着数据量不断增加,超过分裂阈值,就会触发chunk分裂,当各个分片的chunk分布不均衡,会触发移动过程。Balancer在工作时,会根据shardtag,集合的chunk数量,shard间的chunk数量差值来决定是否需要迁移。如果两个shardchunk数超过某
2017-07-11 10:59:31
3575
原创 Mongodb movePrimary
move Primary首先根据上一篇来短暂的回忆一下平衡器。Mongodb会开启一个线程balance专门负责数据的平衡工作,查看系统中所有的shard,发现不平衡的情况就选择将其中shard服务器的chunk迁移到其它服务器,让整个系统达到平衡Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markd
2017-07-11 10:24:48
1687
原创 mongodb --平衡器
Mongodb 平衡器 1. 概念 均衡器会周期的检查分片是否存在不平衡,每隔几秒,mongos就会尝试成为平衡器,s会对整个集群加锁,以防止配置服务器对集群进行修改。均衡并不会影响Mongos的正常路由,使用Mongos的客户端不会受到影响.当Mongos成为均衡器之后,判断各个分片中使用块的数量,不关心数据量的大小。只有在分片数量不对称
2017-04-18 19:04:08
2170
1
原创 Mongodb -副本集与读写分离(一)
Mongodb 副本集深入(一)采用读写分离技术可以减轻主库的压力,使主库提供写操作,从库提供读操作。如果所有的操作都放在主库中,那么当大量的读操作,将会锁住数据库。很多架构采用的是一主多从的方式。副本集在某种程度上可以支持读写分离,其优势为:1、 在实际生产环境中,一个Mongod风险会很高,在某段时间内,数据库发生了奔溃,会有一段时间内数据库不可用。硬件出
2017-04-18 10:08:25
6792
翻译 Mongodb锁机制
Mongodb锁机制Mongodb使用读写锁来允许很多用户同时去读一个资源,比如数据库或者集合。读采用的是共享锁,写采用的是排它锁。对于大部分的读写操作,WiredTiger使用的都是乐观锁,在全局、数据库、集合级别,WiredTiger使用的是意向锁。当引擎探测到两个操作之间发生了冲突,将会产生一个写冲突,mongodb将会重新执行操作。只有如删除集合等操作需要排它锁。查看lock情况如果查看在M
2017-03-10 10:03:15
20942
原创 Mongodb日志定时切换
Mongodb日志切割在最初设计mongodb数据库的时候,依据客户端查询来设计集合的片键及索引,最近几天突然需要查询历史数据进行分析,我们的有些集合count达到亿条以上,每个文档几百个字段。突如其来的查询分析,数据库非常的卡,尤其这几天刚刚加入一个新的分片。前天上午来看,发现主分片竟然奔溃了,至于为什么查询量大,数据库会奔溃,需要后续进行分析。遇到问题第一反应是看日志文件,拿到note
2017-02-22 11:34:34
2650
原创 mongodb_导入导出数据
Mongodb 导入导出数据 Mongodb的数据导入导出,可以使用两种方式:1.mongoexport,mongoimport这是一种导成json格式的方式。Json可以导入多种数据库,也可以在mongodb的不同版本之间进行操作 mongoexport 可以导成json及csv格式,但是csv格式必须使用-f 来表明需要导出的字段,如果是一个比较大的集合,那么需要指明每一个字段,针对
2017-02-12 10:30:35
5364
原创 mongodb 启动警告
Mongodb 启动警告Mongodb在启动时会发出若干的警告,今天好好看了下网上大牛们的讨论,发现这些警告很可能会是以后问题的导火索。遂,一个个慢慢解决。在没有完全进行任何处理的情况下,启动mongo,提示如下:Server has startup warnings: 2016-09-17T18:28:05.646+0800 I CONTROL [initand
2017-01-20 09:54:22
4966
1
原创 boost_处理时间
Boost 时间处理1、 引入的库文件要使用C++boost 中的时间处理函数需要引入库target_link_libraries(saveParm boost_date_time) 2、 需要引用的头文件及命名空间为#include #include using namespace boost::gregorian;using namespace boo
2016-12-09 16:44:04
1118
原创 mongodb GridFS
MongoDB GridFS因为业务的原因,会存储到图片数据,以往在SQL中,都是利用文件系统来存放图片。但是文件系统存在的问题是,不可以备份,无法容灾。优势:那么使用GridFS的理由,好处具体有哪些:1)不再受文件目录下文件数目大小的限制,无论在linux还是windows中,某一个文件夹中下的文件数目是有限制的,分不同的文件系统。2)文件在访问的时候必须从磁盘中掉出整个文件以访问,如
2016-12-03 09:54:04
1775
1
原创 mongodb-存储过程
mongodb 存储过程存储过程可以说是在SQL中非常的关键,突然换到mongodb,尽管有很多的优势,但是在表间的关联是的确不如从前了,JS可以说在某种程度上弥补了这一遗憾。比如函数:db.system.js.save({_id:"add",value:function(x,y){pint(x+y);}}); 调用方式:db.eval('add(3,4)')
2016-11-14 15:43:23
3644
原创 kafka 的 zookeeper 初识
初识kafka的zookeeper 最近项目中,使用redis进行消息的分发与订阅。这种模式就是一种多播的方式,但是随着消息的不断增加,消费端来不及处理所有的数据。在没有持久化的功能下,很多数据丢失了。当然,也可以使用redis的list,的确这是一个好主意,但是我们的list需要给不同的用户,list中一旦pop之后,数据就没有了,它针对的是单一的用户。且,因为队列中的数
2016-11-01 14:16:30
8656
转载 无法打开kernel32.lib
VS2012 无法打开文件“kernel32.lib”问题的解决在编译C++代码时候提示:无法打开kernel32.lib解决办法:添加路径 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin 到项目属性->配置属性->VC++目录->可执行文件目录添加路径 C:\Program F
2016-10-21 09:14:00
20442
3
原创 mongodb 副本集+分片
Mongodb 副本集+分片 1.本地磁盘不足,将数据分散到其它的机器,实现大数据的存储,处理负载,->shard,2.故障恢复与冗余,读写分离->replica set本文尝试多种不同的架构:1. 副本集+分片1) 其架构图为:3台服务器,Server1作为主节点,3个分片,server2,server3作为副本集,对server1的
2016-09-17 18:00:07
7769
原创 mongodb副本集
Mongodb 副本集mongodb支持副本集,通过异步复制 来达到故障转移和冗余,以保证一台服务器挂了以后数据依旧有备份。mongodb的高可用采用两种策略:1、主从复制某一个服务启动加上-master参数,另一个服务加上-slave及-source选项2、副本集 为mongodb推荐使用方式,能够实现故障自动切换。通过oplog实现数据复制,oplog是个固定
2016-09-16 16:58:29
2084
原创 boost程序库学习-lexical_cast
程序中,数据的强制转换很多,作为C++程序员,不能拥有像Convert.ToInt16()这么便捷的操作,往往我们使用std::atoi,atof,但是这种转换缺少异常捕获,有时候,我们还必须自己写很多检测的代码。boost提供一个lexical_cast#include #include using namespace boost;const int bit_field = 1;c
2016-09-12 15:39:47
739
原创 Boost程序库学习-bind与function
平时我们使用函数指针与函数对象的时候,需要定义:typedef void (*Func)(int,int);代码的可读性很差,boost::bind有如一个适配器,可以调用普通函数、成员函数、函数对象。而结合function可以作为一个回调函数。 所谓函数对象就是一个重载了operator()操作符的对象 。1.bind先见一个简单的例子:#include <boost/assign.hpp>#
2016-09-05 16:03:50
522
原创 Boost程序库学习-fileSystem
文件操作对文件的操作是代码中经常遇到的问题。尤其是常用的判断文件对否存在等。boost提供部分操作接口,极大的方便了需求。首先需要加入system与filesystem库:target_link_libraries(boostTest boost_filesystem boost_system)1.路径基本路径操作 父路径:parent_path(),文件名称:filename(),文件系统的路
2016-09-02 14:48:38
892
原创 Boost程序库学习-foreach
foreachC#,java等对容器中的元素遍历都进行了较好的支持,一个foreach,C++的新标准也采用了for(auto &),但是对于旧的标准我们依旧无法进行简便 的处理。 boost的foreach应运而生。1.使用foreach提供宏:BOOST_FOREACH,实现正向遍历。void foreachTest(){ using namespace boost:
2016-09-01 14:22:12
673
原创 shared_ptr
Shared_ptr使用编写C++程序中最头疼的事情莫过于内存的管理,有时候很羡慕隔壁写C#的,只需要关心功能是否实现,当然现在也有很多C++内存泄露的检测工具,等对STL,boost有了一定的了解,要开始去了解那部分知识。 裸指针固然效率很高,但是如果不够严谨的话,容易出现问题。不好管理的地方:创建对象,函数中有if或者switch语句,在异常处理的时候直接return,忘记释放需要多处调用
2016-08-26 14:50:26
656
原创 mongodb固定集合、TTL集合
mongodb固定集合、TTL集合在数据量较少的情况下,或者只需要保存部分的数据,使用固定集合不失为一个比较好的选择。插入、查询的速度非常快。创建固定集合有点类似数据结构中的循坏队列,先进先出方式。满队列删除原来的元素。固定集合与普通集合有所不同,需要显示的创建,指定size,max参数。当其中某个条件满足,将会删除最先进来的元素。 db.createCollection(“test_lo
2016-08-17 15:27:21
1932
转载 mongodb.conf配置文件详解
摘要mongodb.conf配置文件详解启动MongoDB有2种方式,一是直接指定配置参数,二是指定配置文件。这里先介绍配置文件,启动方式如下:1.mongod --config /etc/mongodb.conf配置如下:verbose:日志信息冗余。默认false。提高内部报告标准输出或记录到logpath配置的日志文件中。要启用verbose或启用verbos
2016-07-14 16:57:18
10290
原创 mongodb分片
最近在测试mongodb分片,边看深入学习mongodb,边结合项目在测试,遇到部分问题,写下来作为参考。创建分片首先创建文件夹,为配置服务器、路由服务器创建配置文件,本文在本地创建3个分片: db.runCommand({addshard:”localhost:20000”}) db.runCommand({addshard:”localhost:20001”}) db.runCo
2016-07-14 10:56:32
3391
1
SQL删除数据如何保证不写日志,并释放空间
2016-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人