0%


CentOS 下安装 Memcache 和 php memcache 扩展

下载安装

查看相关软件包

1
Yum search memcached 

有了,可以进行安装了

1
Yum -y install memcached
阅读全文 »


Apache

下载

Apache是一种b/s结构的软件,Apache属于s服务端

下载地址:http://httpd.apache.org/download.cgi 选择相应的版本下载

我这里下载的是 httpd-2.2.22-win32-x86-no_ssl.msi
解释一下下载的文件:
版本:2.2.22
操作系统:win32 x86
是否提供ssl: no_ssl 不提供

阅读全文 »


静态页访问

(1) 用户输入需要访问的地址或者具体的网页文件
(2) 开始域名解析,会先找到本地的 hosts 文件,然后再找网络上的 DNS 服务器,最终解析到 ip 地址
(3) ip 地址所在机器的 Web 服务器接收这个请求,获取请求文件 index.html
(4) web 服务器将这个文件的信息返回给用户所用的浏览器
(5) 浏览器解析 html 代码,显示出数据

1
2
3
4
5
6
Title: 静态网页资源的访问流程图
用户->浏览器:输入资源地址
浏览器->域名解析(DNS):解析 ip
域名解析(DNS)->web 服务器:根据 ip 找到服务器资源
web 服务器->浏览器:返回资源给浏览器
浏览器->用户:解析html显示
阅读全文 »


源码编译安装

需要下载Libmcrypt,mhash,mcrypt安装包

下载地址:http://www.sourceforge.net

  • libmcrypt(libmcrypt-2.5.8.tar.gz );
  • mcrypt(mcrypt-2.6.8.tar.gz );
  • mhash(mhash-0.9.9.9.tar.gz );
1
2
3
wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz"
wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz"
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz"
阅读全文 »


准备

配置防火墙,开启 80,3306 端口

打开iptables

1
vi /etc/sysconfig/iptables

允许80端口通过防火墙

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 

允许3306端口通过防火墙

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

允许21端口通过防火墙

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

阅读全文 »


配置网络信息

1
vim /etc/sysconfig/network-scripts/ifcfg-eth0

打开ifcfg-eth0这个文件

这里写图片描述

在这个文件中,保存了第一块网卡的配置信息

  • DEVICE :设备名
  • ONBOOT :当系统启动后是否自动启动网卡设备
  • BOOTPROTO :获取IP方式 static:静态获取
  • IPADDR :ip地址
  • NETMASK :子网掩码
  • GATEWAY :网关
阅读全文 »


go 相关的知识点总结

  • Go基本数据类型及占用的字节?
  • Go 值类型有哪些?
  • Go 引用类型有哪些?
  • 常量的声明?
  • 错误处理?(error, panic, recover)
  • 基本命令(build,get,run,test)
  • 除了 mutex 以外还有那些方式安全读写共享变量?
  • JSON 标准库对 nil slice 和 空 slice 的处理是一致的吗?
  • 1.9/1.10中,time.Now()返回的是什么时间?这样做的决定因素是什么?
  • golang的sync.atomic和C++11的atomic最显著的在golang doc里提到的差别在哪里,如何解决或者说规避?
  • 1.10为止,sync.RWMutex最主要的性能问题最容易在什么常见场景下暴露。有哪些解决或者规避方法?
  • 如何做一个逻辑正确但golang调度器(1.10)无法正确应对,进而导致无法产生预期结果的程序。调度器如何改进可以解决此问题?
  • 列出下面操作延迟数量级(1ms, 10us或100ns等),cgo调用c代码,c调用go代码,channel在单线程单case的select中被选中,high contention下对未满的buffered channel的写延迟。
  • 如何设计实现一个简单的goroutine leak检测库,可用于在测试运行结束后打印出所测试程序泄露的goroutine的stacktrace以及goroutine被创建的文件名和行号。
  • 选择三个常见golang组件(channel, goroutine, [], map, sync.Map等),列举它们常见的严重伤害性能的anti-pattern。
  • 一个C/C++程序需要调用一个go库,某一export了的go函数需高频率调用,且调用间隔需要调用根据go函数的返回调用其它C/C++函数处理,无法改变调用次序、相互依赖关系的前提下,如何最小化这样高频调用的性能损耗?
  • 不考虑调度器修改本身,仅考虑runtime库的API扩展,如果要给调度器添加NUMA awareness且需要支持不同拓扑,runtime库需要添加哪些函数,哪些函数接口必须改动。
  • stw的pause绝大多数情况下在100us量级,但有时跳增一个数量级。描述几种可能引起这一现象的触发因素和他们的解决方法。
  • 已经对GC做了较充分优化的程序,在无法减小内存使用量的情况下,如何继续显著减低stw pause长度。
  • 有一个常见说法是“我能用channel简单封装出一个类似sync.Pool功能的实现”。在多线程、high contention、管理不同资源的前提下,两者各方面性能上有哪些显著不同
  • 无缓冲 chan 的发送和接收是否同步?
  • Data Race问题怎么解决?能不能不加锁解决这个问题?
  • 使用goroutine以及channel设计TCP链接的消息收发,以及消息处理?
  • 使用go语言,编写并行计算的快速排序算法?
  • golang新手可能会踩的50大坑
  • uint不能直接相减,结果是负数会变成一个很大的uint,这点对动态语言出身的会可能坑
  • channel一定记得close
  • goroutine记得return或者中断,不然容易造成goroutine占用大量CPU
  • 从slice创建slice的时候,注意原slice的操作可能导致底层数组变化
  • 如果你要创建一个很长的slice,尽量创建成一个slice里存引用,这样可以分批释放,避免gc在低配机器上stop the world
  • 面试的时候尽量了解协程,线程,进程的区别。
  • 什么是channel,为什么它可以做到线程安全?
  • channel 的实现机制?(通过注册相关goroutine id实现消息通知的)
  • 如何用channel实现一个令牌桶?
  • 如何调试一个go程序?
  • 如何写单元测试和基准测试?
  • slice 底层数据结构的实现?
  • 抢占式goroutine调用?
  • 了解读写锁吗,原理是什么样的,为什么可以做到?
  • golang的内存模型,知道多小才是小对象,为什么小对象多了会造成gc压力?
  • Devops 用过吗?
  • golang 采用什么并发模型?体现在哪里?
  • goroutine 的调度是怎样的?
  • golang 的内存回收是如何做到的?
  • cap和len分别获取的是什么?
  • netgo,cgo有什么区别?
  • 什么是interface?
  • 在 Vendor 特性之前包管理工具是怎么实现的?


php 相关的知识点总结

  • 简述 private、 protected、 public修饰符的访问权限。
  • 使用过的魔术方法有哪些,及如何使用?
  • __call() 方法的使用场景?
  • __callStatic() 方法的使用场景?
  • get() 和 set() 方法的使用场景?
  • __autoload() 什么时候使用?
  • 合并两个数组怎么合并?区别?
  • 有哪些全局变量?并说明这些全局变量的意义?
  • 数组排序的函数有哪些?区别是什么?
  • 魔术常量有使用过么?有哪些,并介绍是什么意思?
  • php 文件处理?
  • echo print print_r的区别?
  • mysql_fetch_array() 与mysql_fetch_row()区别?
  • PHP面向对象中 _set() 与 _construct的作用?
  • PHP中session与cookie的区别?
  • PHP中session与cookie的区别?
  • 什么是PHP的MVC,MVC的作用及原理?
  • PHP中 include, include_once, require,, require_once 的区别?
  • php 中字符串使用单引号和双引号的区别?
  • 字符串常用函数有哪些?
  • PHP处理数组的常用函数?
  • PHP处理时间的常用函数?
  • 如何定义常量?区别是什么?
  • 定义变量区分大小写吗?定义函数区分大小写吗?
  • php中函数传递参数的方式有哪些?两者有什么区别?
  • 堆和栈的区别?
  • PHP 多态的实现?
  • 抽象类和接口的概念以及区别?
  • 什么是构造函数,什么是析构函数,作用是什么?
  • 如何重载父类的方法,举例说明?
  • $this和self、parent这三个关键词分别代表什么?在哪些场合下使用?
  • final关键字能定义类中的成员属性吗?
  • final关键字定义的类能够被继承吗?
  • 什么是抽象方法?
  • 如果一个类是抽象类,而类中的方法都是非抽象的方法,会报错吗?
  • 如果一个类既要继承一个父类,又要实现多个接口,该如何写?
  • 什么是 SQL 注入?如何防止 sql 注入?
  • 分页原理是什么?
  • php session 共享怎么做?怎么修改?session 相关的函数有哪些?
  • 正则表达式?
  • HEREDOC 是什么?
  • 一些编译php时的configure 参数?
  • 向php传入参数的三种方法?
  • error_reporting 等调试函数使用?
  • Safe_mode 打开后哪些地方受限?
  • 不用新变量直接交换现有两个变量的值?
  • PHP 如何获取客户端的IP地址?
  • 写一个函数,可以遍历文件夹下的所有文件和文件夹。
  • strlen()与mb_strlen的作用与区别?
  • 写一个函数,尽可能高效的从一个标准url中取出扩展名?
  • Isset() 、empty()与is_null的区别?
  • sessionId 如何保证唯一?
  • 什么是CSRF攻击?XSS攻击?如何防范?
  • 请写出自少两个支持回调处理的PHP函数,并自己实现一个支持回调的PHP函数?

  • PHP 的基本架构

  • PHP 执行过程
  • PHP SAPI生命周期
  • Apache 加载 PHP 模块
  • Apache 运行过程
  • PHP 的几种运行方式
  • PHP 程序的执行过程(内核)
  • PHP5 变量存储结构
  • PHP7 变量存储优化
  • PHP5 HashTable 实现
  • PHP7 HashTable 优化
  • PHP5 内存管理架构
  • PHP 垃圾回收机制(refcount__gc, is_ref__gc)
  • PHP-FPM 的优化


网络相关知识点总结

  • OSI七层模型是什么?哪七层?
  • TCP/IP 4 层协议栈是哪 4 层?每一层具体的工作是什么,每一层有哪些协议?
  • TCP 和 UDP 的区别?
  • TCP 包头的组成?
  • TCP 网络状态查看?
  • TCP 的三次握手过程?并描述客户端和服务端状态的变化
  • 为什么要三次握手?如果不是三次有什么问题?
  • DDOS 攻击了解吗?如何预防 DDOS 攻击?
  • TCP 四次挥手的过程?
  • 为什么要四次挥手?否则的话有什么问题?
  • Time_Wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,如何避免?
  • time_wait状态占用资源(尽可能的详细)?
  • TCP 包为什么需要 Seq
  • 数据包为什么会乱序?
  • TCP 如何实现的可靠传输?
  • TCP 的拥塞控制是怎样的?
  • TCP 几种拥塞机制的重传机制?
  • 什么是滑动窗口?
  • TCP 中客户端发送 SYN 后客户端和服务器分别处在什么状态?
  • 服务器调用 send 后返回发送数据大小,是否可以认为客户端已收到?如何确保客户端收到数据?
  • TCP 对网络拥堵的判断?
  • TCP 和 UDP 分别的使用场景有哪些?
  • UDP 包头的格式是什么?
  • UDP 协议的优点和缺点是什么?

  • 说说 HTTP 协议?

  • 什么是分块传输编码?
  • HTTP 和 TCP 有什么关系?
  • HTTP 1.0 和 HTTP 1.1 的差别?
  • HTTP pipeline 流水线机制?
  • 理解 HTTP 2.0 协议吗?
  • 如何使用 HTTP2.0 协议?
  • HTTP 头部常见字段有哪些?
  • 为什么 HTTP 是无连接的?
  • GET 和 POST 区别?
  • GET请求中URL编码的意义?
  • 有没有保持长连接的 HTTP ?
  • HTTP 常见状态码及原因短语?
  • 304 状态码的意义?在 HTTP 协议中的实现?
  • 如何判断服务器文件是否已修改?知道浏览器缓存的文件与服务器文件不一致?在 HTTP 中哪个字段?
  • Session 和 Cookie 机制?产生原因?对比一下?
  • 用过 HTTPS 吗?HTTPS 和 HTTP 的区别是什么?
  • 对称加密与非对称加密区别?
  • TLS/SSL 协议的握手过程?
  • CA 证书的签发原理?
  • SSL 握手需要几个随机数?
  • HTTPS 性能如何优化?

  • IP 有几类地址,A 类地址和 B 类地址的区别是什么?

  • 局域网没有 IP 时如何通信?如何得知 mac 地址?
  • 什么是网络虚拟化?
  • 简单描述一下 VPN 工作原理?
  • 简单描述一下 DNS 工作原理?
  • 了解代理服务吗?什么是代码服务?
  • 代理请求的过程?
  • 代理协议有哪些?
  • 代理的功能有哪些?
  • 什么是反向代理?
  • 反向代理的作用?
  • 如何抓包?
  • netstat、tcpdump、ipcs、ipcrm 命令使用过吗?
  • 大规模连接上来,并发模型怎么设计怎么选择?(并发服务器实现)
  • select, poll 和 epoll 的区别?


架构相关知识点总结

  • Nginx 的工作原理?
  • Nginx 的进程模型?
  • Master 进程工作方式?
  • Worker 进程的工作方式?
  • Nginx + Fastcgi 运行原理?
  • Nginx + PHP-fpm 配置?
  • Nginx采用多进程模型好处?
  • Nginx支持的事件模型如下?
  • Nginx.conf 的优化?
  • Nginx 为什么高性能?

  • Apache 的工作原理

  • Apache 和 Nginx 网络模型比较

  • 什么是Memcache?

  • Memcache 使用场景?
  • Memcache 工作原理?
  • Memcache 内存管理
  • Memcache 分布式
  • Memcache 线程管理
  • Memcached 特性与限制
  • Redis 和 Memcache 对比方案

  • 单点登录

  • OAuth2.0 认证
  • 常见设计模式,应用场景
  • MVC
  • IOC
  • AOP
  • 微服务思想