- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 redis 一主二从 三哨兵
最近项目需要,先搭建个环境,没环境就在一台服务器上折腾了。。 下载redis-3.2.8.tar.gz,由于不能直接下载,我到官网下载的,放在这个目录下。然后分出三个目录,redis1、redis2、redis3下面这个命令在redis2、redis3目录下的redis解压目录里各执行一遍,编译安装redis就完毕了。其实不用make test也一样,不过对我这样一个强迫症患者来...
2019-08-02 16:50:48 693
转载 redis常用命令总结
通用命令:keys *[pattern] --- 遍历当前reids所有的key O(n)dbsize--- 计算key的总数O(1)exists[key]--- 判断key是否存在O(1)del[key...] --- 删除一个或多个指定的keyO(1)expirekey [seconds] --- key在seconds秒后过期O(1)ttl[...
2019-08-01 13:20:33 471
原创 红黑树
可以理解成是一种特殊的二叉树/** coding-utf8* title: rb tree* auth: zwang* date:2019-07-23*/#include <string.h>#include <stdlib.h>#include <stdio.h>#include <assert.h>#define...
2019-07-23 17:29:37 162
原创 二叉树
直接撸代码!#include <string.h>#include <stdlib.h>#include <stdio.h>#include <assert.h>typedef int KEY_VALUE;#define BSTREE_ENTRY(name,type) struct name { struct type* le...
2019-07-23 17:28:45 132
原创 两个有序的链表合并
typedef struct Node{ int data; struct Node* next;}Node, *PLinkList;Node* MergeList(PLinkList p1, PLinkList p2){ PLinkList newhead = NULL; PLinkList end = newhead; ...
2018-12-11 17:47:32 148
原创 链表中环的检测
直接上代码 typedef struct node{ char data; node* next;}Node;bool exitLoop(Node* head){ Node* fast, *slow; slow = fast = head; while(slow != NULL && fas...
2018-12-11 17:26:24 376
翻译 单链表反转
直接上代码typedef struct node_s{ int item; struct node_s* next;}node_t;node_t* reverse_list(node_t* head){ node_t* n = head; head = NULL; while(n){ ...
2018-12-11 17:14:53 206
原创 RocketMQ
目前项目中用到了mq,内部使用它做消息中间件。查阅了一些资料做一个简单的笔记,方便以后查阅 发布和订阅这是最基本的功能了。查看官方文档说是消息严格有序,目前工作中没有那么高的并发量暂时没遇到什么坑。 mq 考虑性能问题没有特意支持消息优先级,是可以通过变通的方式去操作,比如创建一个优先级高的主题和一个优先级低的主题 mq充分利用了linux 的cach...
2018-11-05 14:41:55 158
转载 CentOS 7从Python 2.7升级至Python3.6.1
引言: Centos是目前最为流行的Linux服务器系统,其默认的Python 2.x,但是根据python社区的规划,在不久之后,整个社区将向Python3迁移,且将不在支持Python2, 那该如何平滑迁移至Python3 呢?1. 环境介绍 Centos 7, 当前的Python版本2.7.12 >> uname -a >> cat...
2018-10-14 16:19:37 202
原创 idea spark scala maven环境搭建
1.Windows开发环境配置与安装下载IDEA并安装,可以百度一下免费文档。2.IDEA Maven工程创建与配置1)配置maven2)新建Project项目3)选择maven骨架4)创建项目名称5)选择maven地址6)生成maven项目7)选择scala版本8)新建Java 和scala目录9)编辑pom.xml文件3.开发Spark Application程序并进行本地测试1)idea编写...
2018-04-19 00:00:22 4713
转载 source insight 主题 monokia
本人是一个十分爱折腾的编程爱好者,自己花了很长时间DIY出来的主题,颜色基本完全按照sublime默认的monokia主题来弄得,有点儿小小的优化,有图有真相,看起来对比之前默认的,完全是一个天上一个地下的感觉,有木有。。。颜色上有讲究,自己去研究哈~我就不一一说明了。下载地址:http://download.csdn.net/download/u013
2018-01-31 13:19:13 6314
原创 storm 中 work executor task关系
先来一个图,看看storm的架构 这个架构很明显能看出来,有主有从,中间靠着zk进行一些联系和调度,然后主它主要的工作就是用一个资源分配进行任务的调度,然后从呢就是接收nimbus分配的任务,当接收到任务以后supervisor在它内部会启动和暂停属于自己管理的进程,这个进程在整个storm架构里面叫做worker,然后nimbus和supervisor分别代表不同的机器。
2018-01-10 18:31:06 712
原创 strom--理论
为啥需要storm,主要是mapreduce这个东西只有跑完才能给你传出结果。而且数据是你启动那一刻的数据,如果想着边算边传文件,mapreduce表示臣妾做不到。流式处理具有时效性高,可以逐条处理数据,处理的快延时也低,类似pipe之类。在storm中一个topology的概念,英文说法就是网络拓扑。也就是说一个网络里面包含了很多个节点,这节点和节点之间室友一个相互的依赖关系和互助数据传
2018-01-10 18:09:59 246
原创 hdfs---理论
首先说明: HDFS就是一个分布式文件系统一般讲集群都是主从结构,不管你是hdfs还是mapreduce集群框架,都是有一个主多个从。在hdfs里面,namenode就是主,datanode就是从,hdfs还有一个secondarynamenode,这个就是一个镜像文件可以做数据的备份。 缕缕流程 client提交了一个任务,首先呢namenod
2018-01-09 21:28:01 156
原创 mapreduce--理论
mapreduce的思想:分治思想 通过字母就可以很清晰的看出来,分成了两部分,map和reduce,也就是两个阶段:第一个阶段:把一个大数据拆解成多个小文件;第二个阶段:对拆解后的数据进行求解然后再合并。 来一个经典的图。数据流转一目了然。 大概的流程是这样: 数据存在hdfs中,通过inputformat接口,会吧hdfs里面的大数据切分成若干个split,
2018-01-08 17:21:54 221
转载 centos6.7 升级vim8
参考网址1、https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source源码编译安装Python-2.7.14、Python-3.3.7wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgzhttps://www.py
2017-12-27 17:03:33 2993
原创 hadoop2.x --- yarn 概念 笔记
hadoop的由来,发展历程就不bbbbbb啦。网上随便一下,比较多。hadoop2.x 为什么会有yarn?要追溯到hadoop1.0时代。可以做一个总结: 下面给出hadoop1.0和hadoop2.x之间的一个形象图 可以看出,hadoop2.x 发生了比较大的变化,hadoop通过一个zookeeper的方式对namenode做了一个故障转移,可以规避namenode挂掉之后导致的数据
2017-12-21 09:25:53 265
原创 python yield
先上一个简单的demo 这个demo里面最主要的就是yield 你能想到结果吗 这个例子很好的说明的yield的用法,我们可以知道createNum()生成的是一个生成器。核心:当调用这个函数的时候,其实这个函数里面的代码是么有真正的去运行的,只是返回一个生成器对象。然后呢只有当你代码for使用生成器的时候run跑起来的时候才会真正的去调用。高级语言。。。。。66666 可以这样理解
2017-12-20 15:51:51 172
原创 hadoop 环境集群安装
版本:centos7 hadoop2.6.1设备: 三台虚拟机单机版本的和伪集群方式就不搭建了。直接在本机上面搭载集群。 由于是新弄得centos7系统,上面是空的,gcc也没有。需要yum安装一些常用的东西。
2017-12-17 15:12:57 215
原创 nginx lua
最近有点跟nginx 杠上了。遇到了一些线上问题,苦逼的乙方,帝都出差半个月。回来还要做监控。不想吐槽公司的架构了,监控完全零基础,需要自己定方案,弄架构。看了一些,根据现状,选用了嵌入lua脚本去做这个流量统计。网上zb 之类比较大。我们只需监控nginx 的部分功能。在配置文件里面需要配置:lua_shared_dict 是共享字典,定义一个字典项对象语法:lua_shared
2017-09-29 09:38:12 339
转载 tbnet 源码分析
今天下午看了看tbnet的框架,封装的很好,使用起来也比较方便。这个队列本质上是一个消费者生产者模型,两线程去工作,一个是网络读写,一个是用来进行超时检查的。顾名思义 网络读写执行事件循环,当服务器端有可读事件时,调用回调函数读取请求数据,生产请求任务,并加入到任务队列里面去。工作线程从任务队列中获取任务,处理完成以后呢就要出发可读可写事件,,然后这个读写线程就会将处理的结果再返回给客户端。
2017-07-05 17:59:16 848
翻译 tair用ldb做分布式存储
最近的日子就像外面的阴雨绵绵的天气一样。总监让搞tair,搜索了一下,这个东西是tb 开源了小十年的一个东西,是tb早期大神写的一个KV结构的分布式存储引擎。(真想吐槽下国内开源的,文档简直。。。。) tair的安装就自行百度吧 项目中用的是ldb这种nosql存储模式。leveldb的基本特性:提供key/value支持,key和value是任意的字节数组
2017-06-20 14:31:55 684
原创 尝鲜 vim8 centos
centos 6和7通过yum安装的vim版本仍为7.4,若想尝鲜,可获取源码包编译安装。准备工作 1.检查vim旧版本,若已存在,将其卸载。$ vim$ yum remove vim* -y2.安装终端字符处理库nucrses$ yum install ncurses-devel -y编译安装$ cd /usr/local/src/$ wget htt
2017-05-27 13:19:46 5397 2
原创 观察者模式
今天看设计模式读到了这里,记录下。解释下什么是观察者模式: 俗话就是一个对象发生了事情,依赖于它的对象都会被通知到并且自动更新。就是pub-sub这样子。这个目标pub,它只管负责发出通知,这个sub就是它的观察者。md 图片还传不上 就直接上代码了#include <iostream>#include <list>using namespace std;class obServer{pu
2017-05-24 13:32:54 287
原创 epoll et lt
在libevent中,用到了epoll,看了epoll的LT和ET的不一样。 在linux2.6以后。内核就支持了epoll这种模式。相对雨select和poll,在高连接的时候,还是有优势的。 epoll 内置了两种工作模式,默认的是LT。但是相对来说ET是更高效的一种工作方式。 对于二者的区别,可以这么理解,LT模式状态时,主线程在epoll_wait等待事件时,当接收到请求的时候,ep...
2017-05-17 15:29:44 250
原创 libevent 中用到的epoll
在libevent中,用到了epoll,看了epoll的LT和ET的不一样。在linux2.6以后。内核就支持了epoll这种模式。相对雨select和poll,在高连接的时候,还是有优势的。epoll 内置了两种工作模式,默认的是LT。但是相对来说ET是更高效的一种工作方式。对于二者的区别,可以这么理解,LT模式状态时,主线程在epoll_wait等待事件时,当接收到请求的时候,ep
2017-05-17 15:19:20 2418
原创 unix 3
一般在项目中,很少直接是用ip地址的。大部分都是域名,然后调用api,通过解析器读取配置文件,找到名字服务器所在的位置。这些对于程序员来说是透明的。只需要调用gethostbyname,把域名转换成ipv4地址。或者gethostbyaddr。目前有了升级版本的api getaddrinfo 能够同时处理ipv4和ipv6。获取在posix某一个版本gethostbyname就要撤销了。在这要
2017-05-11 17:32:39 377
原创 unix2
在字节操纵函数中: bcopy和memcpy 参数顺序是不一样的。当源字节串与目标字节重叠时,bcopy能够正确处理,但是memcpy结果却不可知。 read函数的升级版本readn、readline。在工程代码中是可以参考的。但是readline这样的会很慢。需要改良。主要思路是去操作缓冲区而不是去操作文本行。AF_XXX 表示地址族 PF_xxx表示协议
2017-05-09 18:17:22 296
原创 unix网络编程1
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-05-08 19:08:07 213
原创 github 本地代码上传到github上
一: 安装git和配置就不说了。二:进入到等下要push的代码的目录文件夹,打开bash进入到等下要push的代码的目录文件夹,打开bash初始化 git init初始化后在本地代码库会自动创建一个.git隐藏文件,这个就是本地代码库三: 加载文件 git add .. 是把文件夹里面的所有文件都加载进来还可以单
2017-04-18 19:41:17 322 1
原创 数据结构之hash
#1.Hash表 哈希表(Hash table,也叫散列表),是根据key而直接进行访问的数据结构。也就是说,它通过把key映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 以数据中每个元素的关键字K为自变量,通过散列函数H(k)计算出函数值,以该函数值作为一块连续存储空间的的单元地址,将该元素存储到函数值对应的单元中。
2017-03-28 08:49:15 314
原创 ACE 架构学习笔记
1 ACE[ 功能]ACE[ ADAPTIVE Cmmunication Environment,自适通信环境 ]是一种为通信软件实现核心并发性和分布性的面向对象架构。ACE为那些需要开发高性能、实时服务及跨操作系统平台等程序的开发者提供了丰富的可复用[是可在不同平台用的意思么?可重用组件:能被自定义去满足新软件、新平台的的性能需求]的C++包,所可跨的平台
2017-02-15 15:08:27 848
原创 ACE 的ACE_Acceptor类
最近在看一个腾讯开源的框架, c++ 的, 网上的资料少之又少,开源word写的那个,说实话按照word上都不如自行百度。折腾了两天才跑起来了。 在看代码的过程中,对于 这个typedef ACE_Acceptor ISGW_ACCEPTOR 可以说是ACE的一个很重要的类。是Acceptor参与者的实现体。 Acceptor参与者位于网络连接的服务端,它有两个主要的功能,一是
2017-02-15 10:19:28 1033
原创 libevent 笔记
libevent 轻量级开源网络库 是基于事件类型的 (1)事件驱动(event-driven),高性能; (2)轻量级,专注于网络,不如 ACE 那么臃肿庞大; (3)源代码相当精炼、易读; (4)跨平台,支持 Windows、Linux、*BSD和 Mac Os; (5)支持多种 I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等
2016-07-12 12:00:28 312
转载 linux 配置成路由器
设备:x86主机双网卡pc机子 win7配置:一: echo 1 > /proc/sys/net/ipv4/ip_forward 启动时失效或是修改/etc/sysctl.conf把net.ipv4.ip_forward = 0改为= 1二:如果eth0为192.168.10.123/255.255.255.
2016-02-22 17:45:22 493
原创 libevent 读书笔记
libevent 一个很好的底层网路库 事件库 libevent 就是reactor :事件处理程序、事件源、reactor 框架、多路复用机制 1 事件源: Linux上是文件描述符,Windows上就是Socket或者Handle了,这里统一称为“句柄集”;程序在指定的句柄上注册关心的事件,比如I/O事件。2 event demultiplexer——事件多路
2016-01-04 17:00:19 466
转载 liburl 的编译和安装问题
2016年第一天上班 因为一个静态库的编译安装,鼓捣到现在。也是醉了。 libcurl 是一个跨平台的网络协议库 安装 #x86./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disable-tftp --disable-telnet --d
2016-01-04 16:32:52 440
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人