一张图搞懂head -n和tail -n
https://www.aliyun.com/jiaocheng/135094.html
C语言学习笔记 – 编程基础
1、什么是编程语言?
- 通过“语言”来控制计算机,让计算机来为我们做事情,这样的语言叫编程语言(programming language)。
- 编程语言是用来控制计算机的一系列的指令(instruction),有固定的格式和词汇(不同语言的格式和词汇不一样),我们必须要遵守,否则会出错,达不到我们的目的。
C语言学习笔记(一)
一、2进制、8进制、10进制、16进制之间的转换
1)2进制、8进制、16进制 => 10进制 = 按权相加
2)10进制 => 2进制、8进制、16进制 = 除N取余 逆序排列
3)2进制、8进制、16进制间的转换
4)10进制小数 => 2进制小数 = 乘2取整、顺序排列
Yaf可选的配置项
Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置项都以ap开头. Yaf的核心必不可少的配置项只有一个(其实, 这个也可以有默认参数, 但是作者觉得完全没有配置, 显得太寒酸了).
Yaf通过在不同的环境中, 选取不同的配置节, 再结合配置可继承, 来实现一套配置适应多种环境 (线上,测试,开发).
Yaf运行时配置
Yaf运行时的环境配置:
PHP配置指令作用域说明
PHP总共有4个配置指令作用域:(PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的)
- PHP_INI_PERDIR:指令可以在php.ini、httpd.conf或.htaccess文件中修改
- PHP_INI_SYSTEM:指令可以在php.ini 和 httpd.conf 文件中修改
- PHP_INI_USER:指令可以在用户脚本中修改
- PHP_INI_ALL:指令可以在任何地方修改
下面举例子说明:
1、在用户脚本中修改(即在php文件中修改)
ini_set("yaf.library","/usr/local/php7/lib"); echo ini_get("yaf.library");
2、在php.ini中修改
yaf.library="/usr/local/php7/lib"
Yaf的安装
常见数据结构与算法整理总结(下)
这篇文章是常见数据结构与算法整理总结的下篇,上一篇主要是对常见的数据结构进行集中总结,这篇主要是总结一些常见的算法相关内容,文章中如有错误,欢迎指出。
一、概述 二、查找算法 三、排序算法 四、其它算法 五、常见算法题 六、总结
常见数据结构与算法整理总结(上)
文章来源:https://www.jianshu.com/p/230e6fde9c75
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是自己整理的常用数据结构与算法相关内容,如有错误,欢迎指出。
为了便于描述,文中涉及到的代码部分都是用Java语言编写的,其实Java本身对常见的几种数据结构,线性表、栈、队列等都提供了较好的实现,就是我们经常用到的Java集合框架,有需要的可以阅读这篇文章。Java – 集合框架完全解析
Nginx、LVS、HAProxy负载均衡软件的优缺点详解
Nginx、LVS、HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。
一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。
一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于Nginx、LVS、HAProxy的基于Linux的开源免费的负载均衡软件,这些都是通过软件级别来实现,所以费用非常低廉。
目前关于网站架构一般比较合理流行的架构方案:Web前端采用Nginx、HAProxy+Keepalived作负载均衡器;后端采用MySQL数据库一主多从和读写分离,采用LVS+Keepalived的架构。当然要根据项目具体需求制定方案。
TCP和UDP的区别[经典]
TCP与UDP基本区别
- 基于连接与无连接
- TCP要求系统资源较多,UDP较少;
- UDP程序结构较简单
- 流模式(TCP)与数据报模式(UDP);
- TCP保证数据正确性,UDP可能丢包
- TCP保证数据顺序,UDP不保证
保证分布式系统数据一致性的6种方案
问题的起源:在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性?
具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。 A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。
在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理论。
系统架构设计理论与原则
这里主要介绍几种常见的架构设计理论和原则,常见于大中型互联系统架构设计。
一、CAP理论
1.1、什么是CAP?
著名的CAP理论是由Brewer提出的,所谓CAP,即一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。
- Consistency(一致性):更新操作成功并返回客户端完成后,分布式的所有节点在同一时间的数据完全一致(All nodes see the same data at the same time)。这里的一致性,一定要和传统的RDBMS中的事务一致性区分开。
在传统的RDBMS中,事务具有ACID4个属性,即原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持久性(Durable)。
如何选择并落地架构方案的?
如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软件开发者,特别是架构师,都需要深入思考的问题。
无架构,不系统,架构是大型系统的关键。从形上看,架构是系统的骨架,支撑和链接各个部分;从神上看,架构是系统的灵魂,深刻体现业务本质。
架构可细分为业务架构、应用架构、技术架构,业务架构是战略,应用架构是战术,技术架构是装备。其中应用架构承上启下,一方面承接业务架构的落地,另一方面影响技术选型。
float与double的范围和精度
一、范围
float 和 double 的范围是由指数的位数来决定的。
float 的指数位有8位,而 double 的指数位有11位,分布如下:
float:
1bit(符号位) | 8bits(指数位) | 23bits(尾数位) |
double:
1bit(符号位) | 11bits(指数位) | 52bits(尾数位) |
C代码到可执行文件的过程
使用C语言的7个步骤
- 定义程序的目标
- 设计程序
- 编写代码
- 编译
- 运行程序
- 测试和调试程序
- 维护和修改程序
openResty中ngx.shared.DICT的用法
ngx_lua 提供了一系列共享内存相关的 API (ngx.shared.DICT),可以很方便地通过设置过期时间来使得缓存被动过期,值得一提的是,当缓存的容量超过预先申请的内存池大小的时候,ngx.shared.DICT.set 方法则会尝试以 LRU 的形式淘汰一部分内容。
openResty中cosocket的控制
cosocket 是 OpenResty 世界中技术、实用价值最高的部分。让我们可以用非常低廉的成本,优雅的姿势,比传统 socket 编程效率高好几倍的方式进行网络编程。无论资源占用、执行效率、并发数等都非常出色。
cosocket = coroutine + socket coroutine:协同程序(后面简称:协程) socket:网络套接字