- 博客(125)
- 资源 (5)
- 收藏
- 关注
原创 1. 两个数相加(Two Sum)
输入一个整形数组,返回数组中两个数A,B的下标,并且A和B加起来为一个指定的数值。比如:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1]. 解法一:暴力法vector<int> twoSum(vector<int>&...
2018-12-24 11:30:59
1127
原创 java多线程编程---Executor 技术学习
Executor技术UML图:说明:Executor: 最基础的父类,定义了一个接收Runnable对象的方法executor,其方法签名为executor(Runnable command)ExecutorService: 比Executor使用更广泛的子类接口,其提供了生命周期管理的方法(运行,关闭,终止)。还提供可跟踪一个或多个异步任务执行状况返回Future的方法。
2017-07-04 17:10:05
643
原创 docker技术学习-安装和入门基本操作
1. 安装centos 安装:#1)更新现有的yum包yum update#2) 执行docker安装脚本curl -sSL https://get.docker.com/ | sh#3)启动docker服务service docker start#4)确认docker安装成功docker run hello-world其他的安装请参考:ht
2017-06-23 14:47:38
610
原创 http2.0协议的特点
http2.0协议再http1.1 http1.0及以前的版本基础上,进行相应的修改。主要的特性有:1。 二进制协议http1.0之前都是文本协议,http1.1版本的头信息是文本,数据体可以是文本或者二进制数据。http2.0协议整个都是二进制数据,协议头和数据体都是二进制协议。协议头和数据体,都被称为“帧”(frame):头信息帧和数据帧。2. 多工
2017-06-21 11:37:01
2689
原创 java读取配置文件的方法
java读取配置文件的方法在编写java工程中,经常会用到配置文件,那如何读取配置文件呢,下面是两种常用的办法。1. 使用Properties类,通过数据流来读取。 2. 使用spring框架 第一种,使用Properties类读取配置方法。一般都会使用一个PropertiesUtil类来管理配置相关信息,比如:public class Prope
2017-06-15 17:27:23
2839
原创 TiDB 资料整理
Tidb是个优秀的分布式关系数据库,最近B轮融资1500万美元,目前只有开源的产品能容这么多钱,可以看出他的商业价值有多大。Tidb的开源的地址:https://github.com/pingcap/tidb主要特性:1) 完全开源的2) 能完全兼容SQL协议3) 故障自动恢复4) 水平扩展mysql不支持水平扩展的,除非是业务层面的拆分5)
2017-06-14 10:17:59
3702
1
原创 python 连接C++库出现的问题解决办法
Python加载.so库文件时出现的问题,及解决办法:1) ucs undefined symbol问题解决办法: ucs2or4统一环境 2) AddrSeg.so的一些方法识别不到 解决办法: 需要加 --export-dynamic 3) so连接 .a文件 解决办法:改成直接使用.o文件
2017-06-09 15:13:53
506
转载 CentOS yum 源的配置与使用
一、yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗
2015-08-16 11:25:03
562
原创 python 基础数据结构-学习笔记之list
list主要的函数:创建List>>> l = [1,(1,2),2,"3"] >>> print l [1, (1, 2), 2, '3'] 添加list.append(x) #增加一个元素到列表中,等同于list[len(list):] = [x]list.extend(L) #增加一个list到列表中
2015-08-02 17:41:48
1153
原创 undefined reference to `libiconv_open'
程序中使用iconv库,编译会报错,如下:/home/*/include/util.h:68: undefined reference to `libiconv_open'/home/*/include/util.h:79: undefined reference to `libiconv'/home/*/include/util.h:84: undefined reference t
2015-07-27 11:39:39
3088
1
转载 ssh 无密码登录(转载加上我发现个小问题处理)
ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。1.在A机下生成公钥/私钥对。[chenlb@A ~]$ ssh-keygen -t rsa -P ''-P表示密码,-P '' 就表示空
2015-07-23 20:52:13
489
转载 Python 模块-操作Redis
1. 安装pyredis首先安装pip12345678SHELL># apt-get install python-pip......SHELL># pip install --proxy=http://172.1.2.6:8080 redis Downloading redis-2.9.1.tar.gz (62kB): 62kB downloaded Running se
2015-07-20 17:42:53
2397
原创 编程之美2: 重建二叉树
#include#includeusing namespace std;typedef struct tagNode{ tagNode* left; tagNode* right; char value;} Node;void rebuildtr
2015-03-13 23:21:19
838
原创 编程之美题之电话号码对应英文单词
题目:电话的号码盘一般可以用于输入字母,如用2可以输入A,B,C,用3可以输入D,E,F等,对于号码5869872可以依次输出其代表的所有的字母组合。解法一:直接循环法:#include#includeusing namespace std;#define TelLength 3int main(){ char c[10][10]= { "",
2015-02-20 13:43:39
1272
转载 MySQL数据库MyISAM和InnoDB存储引擎的比较
MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData);索引文件是MYI (MYIndex)。InnoDB是
2015-02-17 16:25:59
589
原创 微信群红包算法
今天是春节的最后一天上班,没什么事情,正好群里面的同学再讨论群红包的算法。特写了个算法。大致思路是找发过的红包,寻找它的随机震动坡度。下面来看看算法吧:#coding=gbkimport randomimport sys#print random.randint(0, 99)#print "====", random.uniform(0, 0.99)def ca
2015-02-17 14:51:52
3671
转载 MYSQL 浅谈MyISAM 存储引擎
思维导图 介绍 mysql中用的最多存储引擎就是innodb和myisam。做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教。 特点 > 不支持事务 证明如下: >> 表记录
2015-02-16 12:03:42
590
转载 各种字符串hash函数的效果对比
转载地址:https://www.byvoid.com/zhs/blog/string-hash-compare各种字符串Hash函数比较常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。常用字
2015-02-15 12:00:11
531
转载 Linux命令之ar
用途说明创建静态库.a文件。用C/C++开发程序时经常用到,但我很少单独在命令行中使用ar命令,一般写在makefile中,有时也会在shell脚 本中用到。关于Linux下的库文件、静态库、动态库以及怎样创建和使用等相关知识,参见本文后面的相关资料【3】《关于Linux静态库和动态库的分析》。 常用参数格式:ar rcs libxxx.a xx1.o xx2.o
2015-02-10 20:38:34
631
转载 MapReduce工作原理讲解
有时候我们在用,但是却不知道为什么。就像苹果砸到我们头上,这或许已经是很自然的事情了,但是牛顿却发现了地球的万有引力。ok了,希望通过了解MapReduce,我们能够写出更好的MapReduce例子。第一部分:MapReduce工作原理 MapReduce 角色•Client :作业提交发起者。•JobTracker: 初始化作业,分配作业,与Tas
2015-02-07 21:57:14
708
原创 cmake的语法及使用用例
cmake是个跨平台编译工具,类似于autoconf。通过编译本地环境的makefile或者workplace来编译程序。它的优点是简单高效。语法:CMakeList.txt文件是由注释、命令和空白字符组成。注释是由 # 开始,到行结尾。命令是由:命令名(空格分隔的参数)组成。例如:command (args….)args是以空格分隔
2015-02-04 20:41:16
1125
原创 Linux core dump 分析及相关调试
core是core dump文件,是linux服务器的一种机制。core是个程序的严重问题,会致使程序直接挂掉,需要恢复。需要注意的东西在程序挂掉的过程中,会纪录程序的内存信息和cpu调用堆栈信息,当程序占用大量内存的时候,比如40G,那core文件可能会达到60G多,那写文件会持续数十分钟,这么长时间流量都会损失,并且写大文件对wio的占用特别大,严重影响本台服务器的其他服务,对
2015-02-02 23:25:08
1851
原创 redis源码学习(集群)
1. 集群是怎么创建的2. 集群是如何工作的,但一个命令过来,集群是如何执行命令的? 这个涉及到数据库分片原理,槽的设计。3. 故障转移 集群中的节点可以设置为主从模式,这样实现了重要数据的备份,单一个节点发生故障的时候,可以把此节点下线,使用它的备份节点(从节点)继续工作,不影响集群的操作。
2015-01-29 23:26:02
1132
原创 redis源码学习(客户端)
大概介绍redis 客户端设计主要是存储客户的链接,请求,请求解析的命令,执行结果。先看server的结构和client的结构,server里面有多个client,相当于一个服务端可以连多个客户端,服务端根据事件触发模式依次处理客户端的请求。server结构struct redisServer { /* General */ // 配置文件的绝对路径 cha
2015-01-27 22:38:44
5478
转载 linux之cut用法
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。(1)其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]使用说明cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 Fi
2015-01-26 17:09:36
569
转载 IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
题记:最近再看网络IO的资料,看到大牛的一篇问题,醍醐灌顶啊,文章:http://blog.csdn.net/historyasamirror/article/details/5778378当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要
2015-01-21 17:28:40
483
原创 linux的IO复用技术:select、poll、epoll的区别以及epoll的原理和使用
select、poll、epoll都是IO多路复用的机制,但是他们的机制有很大的区别1、select select机制刚开始的时候,需要把fd_set从用户空间拷贝到内核空间,并且检测的fd数是有限制的,由FD_SETSIZE设置,一般是1024。检测的时候,根据timeout,遍历fd_set表,把活跃的fd(可读写或者错误),拷贝到用户空间,再在用户空间依次处理相关的fd。
2015-01-20 18:45:15
1406
原创 redis 源码学习(复制 Replication)
redis 复制(Replication)功能,是实现主从数据库。如果想提高请求效率,可以使用主数据库用于写操作,从数据库用于读操作。并且可以使用一个主,多个从。redis是个单线程的程序,所有的事件(文件事件和时间事件)都是在一个线程中完成的。没有什么读写锁,可以释放程序的执行效率。从另一个角度来说,单线程只可能在一个CPU里面跑,没有利用多核CPU的处理能力,可以使用主从数据库来解决处
2015-01-14 23:47:15
770
原创 redis 源码学习(RDB 持久化)
redis是个内存数据库,所有的操作都是在内存中进行,但是内存有个特点是,程序出问题或者系统出问题、重启,关机都会造成内存数据丢失。所以需要把内存中的数据dump到硬盘中备份起来。RDB持久化,是内存数据库dump到硬盘的过程,其中RDB是个文件格式,待会介绍。本文从两个方向剖析,1)加载dump.rdb文件到内存中。2)内存数据库dump到硬盘中dump.rdb文件。
2015-01-13 23:15:50
1839
原创 redis 源码学习(核心数据结构剖析)
redis是个key, value数据库,是个内存数据库。目前是个互联网公司的架构标配。支持的数据对象有string, list, set, zest和hash object。数据结构:数据库的核心结构是dict(实现是使用hashmap):key: stringvalue: string或者list或者set或者zest或者hash object。dict数据结构
2015-01-12 23:18:38
1040
原创 辞旧迎新:2015年我来了
2014年已经过去了,回顾过去,看走过来的路,歪歪扭扭,但是总的方向还是向前的。这一年,收获了宝贝女孩,生命中多了一层意义,感觉有了生命的延续,有了一份责任。这一年,努力挣扎在未来的惶恐中,公司动荡,很多高层和中层领导离职,新的同事和领导融合,镇痛一直延续。。。但是也是这一年,花更多的时间泡在csdn中,做面试题,看技术博文,也在努力经营自己的博客。这一年,
2015-01-05 22:06:24
606
转载 设计模式大全
Longronglin之设计模式:Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。阅读类图和对象图请先学习UML创建模式 结构模式 行为模式创建模式:对类的实
2014-12-31 23:28:36
617
原创 hash_map的数据结构剖析及相关方法
hash_map是个很有用的索引结构,对于大规模数据检索的时候,用处大大的。本文基于源码的基础上,从数据结构开始剖析,进而介绍一些常用的方法。hash_map是基于hash_table基础上封装的方法类,下面看看hash_table的数据结构:template, class _EqualKey = equal_to, class _Alloc =
2014-12-30 18:03:30
590
转载 抽象工厂模式
一、 抽象工厂(Abstract Factory)模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图: 图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属
2014-12-26 22:58:59
667
转载 Linux iostat监测IO状态
转载地址:http://www.orczhou.com/index.php/2010/03/iostat-detail/Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。1. 基本使用$iostat -d -k 1 10参数 -d 表示,显示设备(磁盘
2014-12-26 16:32:05
436
转载 Python 函数-xrange和range区别
这两个基本上都是在循环的时候用。for i in range(0, 100):print i for i in xrange(0, 100):print i这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:a = range(0,100)print type(a)
2014-12-26 15:34:44
752
转载 python 函数-enumerate的用法
在python中enumerate的用法多用于在for循环中得到计数,本文即以实例形式向大家展现python中enumerate的用法。具体如下:enumerate参数为可遍历的变量,如 字符串,列表等; 返回值为enumerate类。示例代码如下所示:import strings = string.ascii_lowercasee = enumerate(s)pri
2014-12-26 15:11:33
660
原创 Linux 内存的查看及理解
可以使用free,top查看内存的使用情况。free(默认内存显示大小为kb)free total used free shared buffers cachedMem: 65923008 51864508 14058500 0 368744 4166828
2014-12-25 18:23:28
938
转载 linux查看虚拟内存和cpu占用率
top free cat /proc/meminfo cat /proc/cpuinfo======================================================================================== top的基本视图,我们来结合这个视图讲解各个数据的含义。 第一行: 10:01:23 — 当前系统时
2014-12-25 18:10:11
11924
转载 Linux中关于swap、虚拟内存和page的区别
最近看了Linux的一些内存管理知识,发现一些既熟悉又陌生的几个名词,swap、虚拟内存、page分页,都是与内存相关的一些信息,但他们之间有什么区别呢?要明白这个首先要知道什么是保护模式和实模式。 以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。 后来发展到保护模式,分时多进程。一个CPU上跑多个进程, 但进程不知道到底有多少内存可以
2014-12-25 18:07:51
5198
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人