linux命令01-查看信息
1. 查看linux系统信息
1.1 查看系统版本
| 1 | #lsb_release -a | 
golang启动https_server
mac破解资源软件收集
拒绝盗版从我做起,下面被删除的网站提供大量破解软件下载,欢迎大家监督它们。
nginx全局变量
1. 服务器相关
| 变量名 | 备注 | 示例 | 
|---|---|---|
| nginx_version | 当前运行的 Nginx 版本号 | 1.11.2 | 
| server_port | 服务器端口 | 8080 | 
| server_addr | 服务器端地址 | 127.0.0.1 | 
| server_name | 服务器名称 | 127.0.0.1 | 
| server_protocol | 服务器的HTTP版本 | HTTP/1.0 | 
| status | HTTP 响应代码 | 200 | 
| time_iso8601 | 服务器时间的 ISO 8610 格式 | 2018-09-02T15:14:27+08:00 | 
| time_local | 服务器时间(LOG Format 格式) | 02/Sep/2018:15:14:27 +0800 | 
| document_root | 当前请求的文档根目录或别名 | /home/xiaowu/github/echo.xuexb.com | 
| request_filename | 当前连接请求的文件路径,由 root或alias指令与 URI 请求生成 | /home/xiaowu/github/echo.xuexb.com/api/dump/path | 
| request_completion | 如果请求成功,值为”OK”,如果请求未完成或者请求不是一个范围请求的最后一部分,则为空 | |
| pid | 工作进程的PID | 1234 | 
| msec | 当前的Unix时间戳 | 1535872750.954 | 
| limit_rate | 用于设置响应的速度限制 | 0 | 
| pipe | 如果请求来自管道通信,值为“p”,否则为“.” | . | 
| connection_requests | TCP连接当前的请求数量 | 1 | 
| connection | TCP 连接的序列号 | 363861 | 
| realpath_root | 当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径 | /home/xiaowu/github/echo.xuexb.com | 
golang的sync.Map实现原理
map的读写删除都不是原子操作,因此需要控制并发访问,而Go的原生map不支持并发读写;Go在1.9的版本中新增了sync.Map的数据结构,两个map实现分离。
- 不会引发扩容的操作(查,改)使用read map,可能引发扩容操作(新增)使用 dirty map。 
- 读写 read 并不需要加锁,而读或写 dirty 则需要加锁。 
- 适合读多 append 少的场景,其实是读写和追加分离。 
golang的map实现原理
hashMap一般有两个实现方案:开放寻址法(往后错位)和拉链法(槽内是链表)。

- go map 其实是用的拉链法,首先有一个hmap的结构,存放了 2^B 个桶。
- map 的数据被置入一个由桶组成的有序数组中,每个桶最多可以存放 8 个 key/value,超了则会链接到额外的溢出桶。
- 基本数据结构是 (桶数组 + 桶内的key-value数组 + 溢出的桶链表)。

golang的slice实现原理
slice 切片,也可以理解为动态数组。与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

