kzdgt Blog

路在脚下,心向远方

创建主从MySQL

准备工作:启动两个docker的MySQL服务器 docker run --name mysql_master -d -p 3306:3306 --restart unless-stopped -v /mydata/mysql_master/log:/var/log/mysql -v /mydata/mysql_master/data:/var/lib/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=123456 mysql:8 docker run --name mysql_slave -d -p 3307:3306 --restart unless-stopped -v /mydata/mysql_slave/log:/var/log/mysql -v /mydata/mysql_slave/data:/var/lib/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=123456 mysql:8 登录master和sla

Go语言 defer和recover

defer语句 Go语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按defer定义

Go语言 channel进阶

原文:Go语言 channel进阶 - 掘金 (juejin.cn) Go channel有什么特点? channel有2种类型:无缓冲、有缓冲 channel有3种模式:写操作

Go语言中的互斥锁和读写锁(Mutex和RWMutex)

原文:Go语言中的互斥锁和读写锁(Mutex和RWMutex) 虽然Go语言提供channel来保证协程的通信,但是某些场景用锁来显示保证协程

部署etcd

部署etcd

安装部署 docker pull bitnami/etcd docker run -d --name etcd-server \ --network mynet2 \ --publish 2379:2379 \ --publish 2380:2380 \ --env ALLOW_NONE_AUTHENTICATION=yes \ --env ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379 \ bitnami/etcd:latest go get go.etcd.io/etcd/client/v3 put和get,以及watch操作 package main import ( "context" "fmt" "go.etcd.io/etcd/client/v3" "net" "strings" "time" ) var cli *clientv3.Client func main() { var err error cli,