Sun's Blog

简单就好

Java HashMap

Java HashMap的本质 HashMap的本质其实就是数组加链表。 它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。 HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。如果需要满足线程安...

B-Tree和B+Tree

大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构,为什么B-Tree和B+Tree在被如此广泛用于索引?先从数据结构的角度来分析。 几种常见的树结构 二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tre...

成长曲线

技术成长之路 15年那会大四即将毕业,面临着工作问题。由于并不是什么好学校,来校内招人的公司基本上是一些销售的活,偶有几个技术岗位也是走个过场而已,并没有什么好的机会。后来 和同学一起参加了java培训,或许并不是为了希望学习到多少东西而报名,而是为了能够有个好的机会。 三个月时间过去,和预想的一样,培训并没有教你多少东西,大部分还是基础。但是通过 机构顺利拿到了几家公司的offer,最...

mysql index

什么是数据库索引(Mysql) 用了这么久Mysql,Mysql索引相关知识点却不太清楚,可以说匮乏。正好看到有面试问道,稍微看看和整理一下。 索引(index)是存储引擎(storage engine)的实现,不是server。不是所有存储引擎都支持所有的索引类型。 即使多个存储引擎支持某一索引,它们的实现和行为也可能有所不同。 Mysql官方定...

let's encrypt

获取let’s encrypt免费泛域名证书 首先DNS需要支持CAA,我用的CloudXNS,添加CAA记录记录值0 issue letsencrypt.org,vpscurl https://get.acme.sh|sh, 添加环境变量 export CX_Key="" export CX_Secret="" .acme.sh/acme.sh --issue --dns dns_...

CloudXNS DDNS

DDNS Dynamic Domain Name Server(动态域名服务),DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序 就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。 场景 电信光纤虽然会给一个公网ip,但是这个公网ip经常会变,这就给我们部署些自己的博...

问题 目前公司前端项目的图片文件全部是通过请求后台获取token接口获取七牛上传token,然后前端直接上传七牛。这个机制本身不存在问题,问题在于 公司使用了一个第三方授权服务器,这个服务器需要下载拿到用户上传的图片。问题来了,这个服务器当初部署在内网,如果需要它访问到上传图片,需要 将文件在用户上传后再备份到一个我们自己的服务器。 实现 首先就问题本身,我们能够给出以下几种方案:...

openpgp签名与验签

存在的问题 目前每次程序版本发布需要手动gpg签名并打包发布,存在的问题: 每次都需要人工手动使用gpg签名 如果如果需要签名发布的app变多也会增加很多重复劳动 其他项目或应用文件签名下发需要一个统一的接口 其实也考虑过写脚本进行签名,但是生产机器还需要装gpg比较麻烦。其实主要还是想学习一下如何代码进行gpg加密,哈哈… golang openpgp签名验签 ...

Nginx epoll事件驱动

###Linux IO模式 在了解Nginx事件驱动机制之前首先我们需要知道的是Linux的IO模式,之所以需要了解Linux的IO模式是应为Nginx正是通过它实现的”非阻塞IO”与高并发。 Linux IO模式及select、poll、epoll 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?在不通的场景下不同的人给出的答案是不同的,所以本文限定一下我们讨论...

在搬瓦工VPS上搭建VPN服务

搭建Shadowsocks服务 安装组件 $ yum install m2crypto python-setuptools $ easy_install pip $ pip install shadowsocks 安装完成以后配置服务端参数 $ vi /etc/shadowsocks.json 写入如下配置 { "server":"0.0.0.0", "...


本站总访问量