摘要:
IPC 机制简介概述在Unix早期发展中,做出重大贡献的两大主力Bell实验室和伯克利大学(BSD)在IPC(InterProcess Communication)方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“System V IPC”,通信进程局限在单个计... 阅读全文
摘要:
字符串常见算法题 左旋转字符串 在字符串上定义反转的操作XT,即把X的所有字符反转(如X="abc",那么XT="cba")。如果将一个字符串分成两部分,X和Y两个部分,那么我们可以得到下面的结论:(XTYT)T=YX。 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符 阅读全文
摘要:
变长结构体变长结构体是由gcc扩展的一种技术,它是指其最后一个成员的长度不固定(flexible array member,也叫柔性数组),先来看一个简单的例子:#include #include #pragma pack(1)typedef struct { int a; char b[10]; char *vector; } cq; #pragma pack()int main(){ cq *a = malloc(sizeof(cq)); char str[] = "hello"; a->vector = malloc(sizeof(st... 阅读全文
摘要:
MySQL默认数据目录修改本文主要介绍在CentOS下通过yum命令安装mysql之后,如何移动默认数据目录到指定位置。安装mysql:yum -y install mysql-server mysql-clientMysql 安装之后默认的数据文件存储目录为/var/lib/mysql。假如要把目... 阅读全文
摘要:
Nginx一致性哈希模块的Lua重新实现技术背景:最近在工作中使用了nginx+redis 的架构,redis在后台做分布式存储,每个redis都存放不同的数据,这些数据都是某门户网站通过Hadoop分析出来的用户行为日志,key是uid,value是user profile,每小时更新量在500-800万条记录,而这些记录一旦生成,我需要在5分钟左右的时间完成所有导入过程。首先,我在nginx中使用了第三方模块HttpUpstreamConsistent来做负载均衡策略,针对不同用户(uid)选取不同的backend redis: upstream somestream { c... 阅读全文
摘要:
Lua协程协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆栈、局部变量、指令指针,但与其它协程共享全局变量等很多信息。协程类似一种多线程,但与多线程还有很多区别: 1. 协程并非os线程,所以创建、切换开销比线程相对要小。 2. 协程与线程一样有自己的栈、局部变量... 阅读全文
摘要:
Lua的环境、编译等Lua命令行lua命令行选项:-i:进入交互式-e:执行lua代码-l:加载库文件例如使用下面的命令启动lua解释器,可以重新定义lua提示符。lua -i -e "_PROMPT=' try>'"在交互模式下,如果要打印任何表达式的值,可以用等号开头,并跟随一个表达式,例如:>... 阅读全文
摘要:
Lua函数之二Lua中函数的两个重要特性:1、函数和其他类型(如number、string)一样,可以存放在变量中,也可以存放在table中,可以作为函数的参数,还可以作为函数的返回值。2、嵌套的函数可以访问其外部函数中的局部变量——闭包。例如:local foo = function(x) ret... 阅读全文
摘要:
LUA函数之一函数声明:function foo(arguments) statementsend1、函数调用调用函数的时候,如果参数列表为空,必须使用()表明是函数调用,例如:os.date()当函数只有一个参数并且这个参数是字符串或者table构造器的时候,可以省略函数调用操作符"()",例如... 阅读全文
摘要:
&&,||,(),{},& 五个符号的运用shell脚本执行命令的时候,有时候会依赖于前一个命令是否执行成功。而&&和||就是用来判断前一个命令执行效果的。1&& 使用方法:cmd1 && cmd2 这个方式简单明了,cmd1如果返回结果为真(即执行返回为0,成功执行)后,cmd2才被执行 换句话说,如果cmd1执行成功&&那么执行cmd2 这里有个命令 [ -f /home/dellogs.sh ] && echo "清除日至脚本存在" 总之,&&符号代 阅读全文