直接用例子说话 例1: func main() { s := make([]int, 1, 3) // 创建一个长度为1,容量为3的切片 fmt.Printf("before: slice addr %p point %p, val %v, len %d, cap %d\n", &s, s, s, len(s), cap(s)) modifySlice1(s) fmt.Printf("after: slice addr %...
linux expect scp自动输入密码
Expect是一个根据脚本与其他交互程序进行“对话”的程序,通过脚本,Expect根据程序的输出信息来判断需要什么输入,然后将输入信息发送给程序。[详细文档](https://linux.die.net/man/1/expect) 现在通过一个简单的例子来使用它,使用scp在不同机器间传输文件每次都要输入密...
zookeeper c client封装
我们只实现两个需求 master选举,当master切换后需要收到通知 注册服务信息 注册到zookeeper上的目录结构如下: /myproject 项目顶层节点 /myproject/master 临时节点,用来实现master选举 /myproject/nodes node父节点 /...
zookeeper单机集群部署
什么是Apache ZooKeeper Apache ZooKeeper是由集群(节点组)使用的一种服务,用于在自身之间协调,并通过稳健的同步技术维护共享数据。ZooKeeper本身是一个分布式应用程序,为写入分布式应用程序提供服务。 ZooKeeper提供的常见服务如下 : 命名服务 - 按名称标识集群中...
go showapi.com接口
showapi.com提供了很多有意思的api,现在用go语言简单的封装下就可以用了。url的组装规则见[文档](https://www.showapi.com/helpcenter/go/sign) 目前提供了三个接口 获取组装后的url http请求返回字符串 http请求返回json 源码如下: package showapi ...
go http get post json
get和post请求使用比较频繁,这里只考虑json格式,做一下简单封装。 get请求 func HttpGetJson(url string, resp interface{}) error { result, err := http.Get(url) if err == nil { defer result.Body.Close() return json.NewDecoder(result.Body).De...
corosync + pacemaker高可用部署
corosync简介 Corosync是OpenAIS发展到Wilson版本后衍生出来的开放性集群引擎工程,corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以说corosync是OpenAIS的一部分,但后面的发展明显超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方...
linux 解压缩(.tar .tar.gz .gz .rar .zip)
linux下常用解压缩命令 tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可...
go 第三方github登录
给本网站加了一个第三方github登录的功能 在github上新建oauth app 登录github,在用户菜单中选择Settings->Deleloper settings->OAuth Apps->New OAuth App 记住Client ID,Client Secret,Authorization callback URL 点击github登录 html标签 <a href="...
vi/vim键盘图
如果图片没有显示请右键菜单选择“复制图片链接”粘贴在浏览器地址栏查看!!! ![简体中文版](https://img-blog.csdn.net/20160907133419436?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center...
超实用的 Nginx 极简教程,覆盖了常用场景
超实用的 Nginx 极简教程,覆盖了常用场景 概述 -- 什么是 Nginx? Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 ![](https://pic1.zhimg.com/v2-146ae6441ed292ca107c641a60ceaf24_b.jpg) ![](...
git常用命令
分支操作 一、如何把本地新建分支同步到远程分支上(注:该分支在远程上没有)? 二、又如何在本地把远程分支上新建分支同步到本地(本地没有该分支)? 1.其实在从远程分支分出来的分支都是跟踪分支(track),当对该分支进行push和pull时,如果该分支和远程分支同名git会知...
让你提高效率的Linux技巧
> 来源:Linux中国/HankChow > 原文作者:Sandra Henry-stocker 巧妙的 Linux 命令行技巧能让你节省时间、避免出错,还能让你记住和复用各种复杂的命令,专注在需要做的事情本身,而不是你要怎么做。以下介绍一些好用的命令行技巧。 命令编辑 如果要对一个已输入的命令...
Redis 的各项功能解决了哪些问题?
数据分析与开发 微信号 DBDevs 功能介绍 「数据分析与开发」分享数据分析与开发相关技术文章、教程、工具 _1周前_ (给数据分析与开发加星标,提升数据技能) > 作者:blackheart, > > www.cnblogs.com/linianhui/p/what-problem-does-redis-solve.htm...
VirtualBox Centos6 安装增强功能设置共享文件夹
VirtualBox Centos6 安装增强功能设置共享文件夹 安装必要的工具 yum -y update yum -y install g++ gcc gcc-c++ make kernel- yum -y install bzip2 yum -y install perl 重启虚拟机 reboot 选择VBoxGuestAdditions.iso文件 VirtualBox菜...
go代理 golang代理 GOPROXY
是时候使用go mod来管理包了,具体参考:[go mod 使用](https://juejin.im/post/5c8e503a6fb9a070d878184a) 用dep ensure安装第三方库的时候总是失败,提示golang.org超时,如果不用代理的话肯定是访问不了的,但是我本地已经开了pgfastss代理而且浏览器上可以访问golang....
go json解析
由于go是静态强类型语言,不像JavaScript那样是动态语言,所以解析json的时候要先定义好解析后的结构体。 以获取豆瓣电影信息接口为例,地址如下: http://api.douban.com/v2/movie/top250?start=0&count=2 应答结果: { "count": 2, "start": 0, "total": ...
go logger
简单封装了下go log,四个日志等级,能满足基本业务需求,通过github.com/robfig/cron可以每天生成一个日志文件 package logger import ( "io" "log" "os" ) const ( LTrace = iota LInfo LWarn LError ) var ( file os.File Trace log...
go 工作池 连接池
工作池 如线程池,不断的往池子里丢任务,池子开启多个线程不断的处理任务。go这里其实只是对go chan defer的简单封装。 work/main.go package work import "sync" type Pool struct { wg sync.WaitGroup task chan func() } func New(size int) ...
go queue
队列是一个先进先出的数据结构,go语言实现一个队列,为了通用队列的元素使用了interface,通常一个队列有如下方法: Push:向队列尾部压入一个元素 Pop:从队列头部弹出一个元素 Front:获取队列头部元素 Size:队列的长度 package queue import "errors" im...