有度 Golang 版 SDK
PHP 代码风格检测/修复工具:Laravel Pint

RocketMQ 安装

此处基于 Macbook Pro 的安装演示

环境依赖

安装 JDK

阅读更多

SPM 淘宝-导购效果跟踪

摘录为主

什么是 SPM

SPM是淘宝社区电商业务(xTao)为外部合作伙伴(外站)提供的一套跟踪引导成交效果数据的解决方案。

下面是一个跟踪点击到宝贝详情页的引导成交效果数据的SPM示例:

http://detail.tmall.com/item.htm?id=3716461318&&spm= 2014.123456789.1.2

其中spm=2014.123456789.1.2 便是下文所说的SPM编码

SPM编码:用来跟踪页面模块位置的编码,标准spm编码由4段组成,采用a.b.c.d的格式(建议 全部使用数字),其中,

阅读更多

Hyperf:JSON-RPC 服务

Server 端

定义服务(示例)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

declare(strict_types=1);

namespace App\JsonRpc;

use Hyperf\RpcServer\Annotation\RpcService;

/**
* 注意,如希望通过服务中心来管理服务,需在注解内增加 publishTo 属性.
* @RpcService(name="TestsService", protocol="jsonrpc-http", server="jsonrpc-http")
*/
class TestsService
{
// 实现一个加法方法,这里简单的认为参数都是 int 类型
public function add(int $a, int $b): int
{
// 这里是服务方法的具体实现
return $a + $b;
}
}
阅读更多

学习:搭建并行处理管道,感受 GO 语言魅力

前言

团队内组织 Golang 的学习,这是第三周学习内容:完成课程的学习、代码编写与 Channel 心得总结。

相关课程

https://www.imooc.com/learn/927

基础编程

Hello World 网络版

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import (
"fmt"
"net/http"
)

func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "sdfasdfas %s", r.FormValue("tests"))
})

http.ListenAndServe(":1000", nil)
}
阅读更多

安装 Swoole 提示 openssl 相关报错处理

报错

1
2
3
4
5
6
7
8
9
10
11
12
ocal/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/local/openssl/include -I/tmp/pear/temp/swoole -I/tmp/pear/temp/swoole/include -I/tmp/pear/temp/swoole/ext-src -I/tmp/pear/temp/swoole/thirdparty/hiredis -DHAVE_CONFIG_H -g -O2 -Wall -Wno-unused-function -Wno-deprecated -Wno-deprecated-declarations -std=c++11 -c /tmp/pear/temp/swoole/ext-src/php_swoole.cc  -fPIC -DPIC -o ext-src/.libs/php_swoole.o
In file included from /tmp/pear/temp/swoole/include/swoole_socket.h:34,
from /tmp/pear/temp/swoole/include/swoole_coroutine.h:22,
from /tmp/pear/temp/swoole/ext-src/php_swoole_coroutine.h:22,
from /tmp/pear/temp/swoole/ext-src/php_swoole_cxx.h:20,
from /tmp/pear/temp/swoole/ext-src/php_swoole.cc:16:
/tmp/pear/temp/swoole/include/swoole_ssl.h:27:10: fatal error: openssl/ssl.h: No such file or directory
#include <openssl/ssl.h>
^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:192: ext-src/php_swoole.lo] Error 1
ERROR: `make' failed
阅读更多

Golang:string 与 strconv.Itoa 的区别

Example

我们来尝试打印 0 到 100 的对应结果:

1
2
3
4
5
6
7
8
9
10
11
12
package main

import (
"fmt"
"strconv"
)

func main() {
for i := 0; i <= 100; i++ {
fmt.Println(i, ":::", string(i), ":::", strconv.Itoa(i))
}
}
阅读更多
Flag:使用 Go 语言完成 LeetCode 100 道题打卡

Redis 配置统计字典:info 系统状态说明

命令说明

info 命令有三种用法:

  • info:部分 Redis 系统状态统计信息
  • info all:全部 Redis 系统状态统计信息
  • info {section}:某一块的系统状态统计信息,其中 {section} 可忽略大小写,参考值,如:memory 是查看内存信息。

info {section} 中的 {section} 包含如下:

模块名{section} 模块含义
server 服务器信息
clients 客户端信息
memory 内存信息
persistence 持久化信息
stats 全局统计信息
replication 主从复制信息
cpu CPU 消耗信息
commandstats 命令统计信息
cluster 集群信息
keyspace 数据库键统计信息
阅读更多

Redis:处理 bigkey

危害

  • 内存空间不均匀(平衡):如 Redis Cluster 中,bigkey 会造成节点的内存空间分布不均匀
  • 超时阻塞:由于 Redis 单线程的特性,操作 bigkey 会较耗时,意味着阻塞 Redis 可能性较大。
  • 网络阻塞:获取 bigkey 的网络传输较大,不仅影响客户端,而且影响其他节点;如:bigkey 为 1MB,每秒 1000次,每秒产生的流量 1000MB/s
阅读更多

Swoole 协程的思考-执行顺序

示例

情况一:非阻塞IO

1
2
3
4
5
6
7
8
9
10
11
12
<?php

go(function () {
echo 'AA'.date('Y-m-d H:i:s').PHP_EOL;
Co::sleep(1);
echo 'BBB'.date('Y-m-d H:i:s').PHP_EOL;
});

go(function () {
echo 'CC'.date('Y-m-d H:i:s').PHP_EOL;
echo 'DD'.date('Y-m-d H:i:s').PHP_EOL;
});
阅读更多

PHP 各版本特性:PHP 7.4.x

本文部分内容根据官网进行删减,仅整理常用特性。

新特性

类属性

类属性现在支持类型声明。

1
2
3
4
5
6
7
8
<?php

class User
{
public int $id;

public string $name;
}
阅读更多

PHP 各版本特性:PHP 7.3.x

本文部分内容根据官网进行删减,仅整理常用特性。

新特性

数据解析支持引用

[&$a, [$b, &$c]] = $d;对应的 list() 也一样支持。

阅读更多

CDN 科普

概述

含义

CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。 —— 摘自《百度百科

阅读更多

Elasticsearch 入门

简介

什么是 Elasticsearch

  • 基于 Apache Lucene 构建的 开源搜索引擎
  • 采用 Java 编写,提供简单易用的 RESTful API
  • 轻松的 横向扩展,可支持 PB级 的结构化或非结构化数据处理
阅读更多

PHP 各版本特性:PHP 7.2.x

本文部分内容根据官网进行删减,仅整理常用特性。

新特性

新的对象类型

这种新的对象类型, object, 引进了可用于逆变(contravariant)参数输入和协变(covariant)返回任何对象类型。

1
2
3
4
5
6
7
8
<?php

function test(object $obj) : object
{
return new SplQueue();
}

test(new StdClass());
阅读更多

PHP 各版本特性:PHP 7.1.x

本文部分内容根据官网进行删减,仅整理常用特性。

新特性

可为空(Nullable)类型

参数以及返回值的类型现在可以通过在类型前加上一个问号使之允许为空。 当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是 null

阅读更多

PHPDoc 代码注释

规范注释

标准注释

1
2
3
4
5
6
7
8
9
<?php
/**
* 标题及说明
*
* @author 作者 <邮箱>
* @param 参数数据类型 参数变量 参数说明
*
* @return 返回数据类型 返回说明
*/
阅读更多