Gitlab 自建服务器仓库(亲测)

Gitlab 自建服务器仓库(亲测)

所需操作系统

  • 在教程开始之前,是不是很多人搜索过:Windows下GitLab服务器搭建?答案是没有,GitLab只针对Unix类系统做了开发。
  • 当然,GitLab本身就是Git的衍生品,如果你非要在Windows下搭建Git服务器,那么Git的其他衍生品如Gitblit是可以完成的。

Git的优点和缺点介绍

  • 优点
    • 适合分布式开发,强调个体
    • 公共服务器压力和数据量都不会太大
    • 速度快、灵活
    • 任意两个开发者之间可以很容易的解决冲突
    • 离线可以正常提交代码和工作
  • 缺点
    • 学习周期相对而言比较长
    • 不符合常规思维
    • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息

- 阅读剩余部分 -

区块链 UTXO 模型

刚刚接触比特币的朋友经常会遇到这个词,官方解释是未经使用的交易输出。只从这个定义上,你能明白是什么意思吗?反正我是困惑了很久。

我们常规的理解是,账户,余额,支出,收入。比如,银行账户,我们有1万元,收入1万,则余额为2万,支出5000,余额为1万5000元。但比特币里实际上是没有账户和余额的概念的。只有一个概念叫utxo,实际上就是你能够支配的,并且还没有被使用的btc,这些btc作为一个整体(无论比特币的数值是多少,都做为一个整体)保存在比特币系统网络里,而且这个utxo能用且只能用一次。

我们可以把utxo类比成支票。支票的数额可以是1元或者1亿元。utxo的数额可以是1聪btc,也可以是1万个btc,但都是一个整体,不可分割。

假设A有一张支票,价值1万元,需要付款给B5000元,那么,B会得到一张5000元的支票,交易费用是100元,作为一张支票给第三方,A自己得到一张支票,价值4900元。原来的1万支票已经使用过,不能再次使用,A,B,第三方分别得到一张新的支票,都是未被使用过的。三个人分别对这三张支票有使用权。

同样的,A有一个utxo,价值1万个btc,需要付款给B5000个btc,那么B会得到一个utxo(价值5000个btc),矿工得到一个utxo(矿工费1btc),A也会得到一个utxo(价值4999btc)。原来的含1万个btc的utxo被系统标记过使用过,任何人不能在使用。而A,B,矿工分别得到一个utxo。他们分别对自己名下的utxo有使用权。

- 阅读剩余部分 -

48条高效率的PHP优化写法

1 字符串
1.1 少用正则表达式

能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式, 因为其效率高于正则。

没得说,正则最耗性能。

str_replace函数要比preg_replace快得多,strtr函数又比str_replace来得快。

有没有你漏掉的好用的函数?

例如:strpbrk()、strncasecmp()、strpos()、strrpos()、stripos()、strripos()。

- 阅读剩余部分 -

数据库并发操作会带来哪些问题及原因

理解 MySQL 中的四种隔离级别

隔离级别

  • 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致不同事务的隔离级别。
  • 实现隔离级别的方式就是加锁

隔离级别的分类

  1. 读未提交 Read Uncommitted(在本次事务中可以读到其他事务中没有提交的数据 - 脏数据)
  2. 读已提交 Read Committed (只能读到其他事务提交过的数据。如果在当前事务中,其他事务有提交,则两次读取结果不同)
  3. 可重复读 Repeatable Read (默认,保证了事务中每次读取结果都相同,而不管其他事物是否已经提交。会出现幻读)
  4. 序列化 Serializable (隔离级别中最严格的,开启一个 serializable 事务,那么其他事务对数据表的写操作都会被挂起)

- 阅读剩余部分 -