redis
连接
通过select选库
1
2
3
4
5r := redis.NewRedis(redisAddr, "node", password)
err = r.Pipelined(func(p redis.Pipeliner) error {
p.Select(1)
return nil
})
[001]iota,有常量如下,second数值是?
1 | const ( |
[002]strings.ReplaceAll,代码如下,replace的值是?
1 | origin := " 特斯拉Model X " |
答: “ 特斯拉Model X “,即origin
[001]iota,有常量如下,second数值是?
1 | const ( |
[002]strings.ReplaceAll,代码如下,replace的值是?
1 | origin := " 特斯拉Model X " |
AdGuard 广告拦截器
uBlock Origin
屏蔽效果好,支持使用选择器手动添加,屏蔽页面上指定的各种广告
超级复制
Redirector 自动跳转,看一些有镜像站的文档,网页很方便
golang官方文档自动跳转设置(跳转到golang.google.cn)
1 | { |
彩云小译 翻译网页支持双语阅读
状态
auto,on和off
启用
export GO111MODULE=on
固定版本号
在go.mod里使用replace将任意版本的package替换为需要的版本
1 | module programnotes.cn/test |
有些没节操的package不遵循规范,小版本改动不兼容导致线上bug,google的grpc就被吐槽过,这里将依赖设置成测试过的稳定版本可以减少依赖的package不兼容变更带来的问题.
go get -u 解决依赖时可能改动项目中其他的package的版本,固定版本号也可以减少意外的版本变更,例如:这里升级gorm的版本也会改动mysql的版本.
对流量进行按需分发的服务,通过将流量分发到不同的后端服务来扩展应用系统的
服务吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。
主要为HTTP/HTTPS/TCP/UDP/QUICk几种类型的请求设置转发规则。
1 | Options: |
1 | wrk -t10 -c1000 -d30s --latency "http://localhost:8888/check?book=go-zero" |
1 | Running 30s test @ http://localhost:8888/check? book=go-zero |
1 | git clone https://github.com/wg/wrk.git |
https://hub.docker.com/_/mysql?tab=description&page=1&ordering=last_updated
拉取镜像
docker pull mysql
运行
1 | docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag |
where some-mysql is the name you want to assign to your container, my-secret-pw is the password to be set for the MySQL
root user and tag is the tag specifying the MySQL version you want. See the list above for relevant tags.
1 | docker run --name docker_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password -d mysql |
修改验证密码,修改后才能用root@密码登陆
1 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; |
创建新用户
1 | mysql8版本执行 grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; |
references: https://blog.csdn.net/java_cai_niao_han/article/details/110442608
使用轻量服务器预装docker的镜像
操作系统信息,lsb_release -a
1 | LSB Version: :core-4.1-amd64:core-4.1-noarch |
yum update,更新预装软件docker等
设置用户组
将当前用户加入docker用户组
安装docker-compose
yum安装的版本太老使用安装包安装,可以在github仓库的release页面下载
下载解压到/usr/local/bin/目录下,增加执行权限,可使用如下命令安装
1 | sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
设置阿里云容器加速
安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
1 | sudo mkdir -p /etc/docker |
参考:
在centos上使用yum安装的git版本太老,需要自己编译或通过第三方安装如ius
在阿里云提供的镜像上已有阿里云的镜像配置,在执行以下命令安装依赖时自动安装了v2.24.4版本的git:
1 | yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc |
配置用户
使用git config配置用户名,邮箱
1 | git config --global user.name "xxx" |
配置~/.ssh/config
1 | Host github.com |
ssh配置了key,在非root用户目录下,且以非root用户登录,ssh -T git@github.com报”Permission denied (publickey).”,使用-i指定秘钥后就ok了,是什么问题,没有使用当前目录下的key?
通过ssh -vT git@github.com调试发现,ssh确实在~/.ssh下寻找了id_rsa的key,不存在,而配置文件config名错误(写成了congfig),
导致ssh没有去读上面配置的id_rsa_git秘钥,没有找到秘钥就报错了
修改git秘钥的密码[可选]
ssh-keygen -f id_rsa_git -p
通过秘钥ssh到服务器,配置并连接过服务器,更换秘钥后无法连接,报错.
此时需要通过 ssh-keygen -R 服务器ip 删除记录,更换密钥后需要删除信息,不然无法使用新密钥登录
-R命令作用:Removes all keys belonging to hostname from a known_hosts file. This option is useful to delete hashed hosts (see the -H option above).
centos设置go/bin到PATH
将export PATH=$PATH:/home/xxxx_user_name_xxxx/go/bin添加到~/.bash_profile不起效,还是每次都要重新source才能使用go安装到bin目录下的可执行程序.
默认的bash和fish都是这样.
解决: 将export PATH=$PATH:/home/xxxx_user_name_xxxx/go/bin添加到~/.bashrc后执行
1 | source ~/.bashrc |
通过docker和compose可以很方便的部署搭建基础环境,部署应用,在github有个项目awesome-compose包含很多常用环境的样例配置文件,
通过这些样例可以快速搭建环境