golang直接操作共享内存
前一段时间使用公司内部某个依赖共享内存的组件,其go版本api通过cgo提供。抛开我是个pure go狂热分子以外,采用cgo的方式实现会存在很多问题。所以分析其源码后通过go进行重写,故在此分享一下直接通过golang去操作共享内存。
通过golang操作共享内存主要依赖了以下几个系统调用:
- SYS_SHMGET
- SYS_SHMCTL
- SYS_SHMAT
- SYS_SHMDT
操作步骤:
前一段时间使用公司内部某个依赖共享内存的组件,其go版本api通过cgo提供。抛开我是个pure go狂热分子以外,采用cgo的方式实现会存在很多问题。所以分析其源码后通过go进行重写,故在此分享一下直接通过golang去操作共享内存。
通过golang操作共享内存主要依赖了以下几个系统调用:
操作步骤:
用来用去还是台式机爽,而且懒得天天带电脑,所以想在公司电脑上配置docker环境。但是公司网络是没办法直连外部网络的,只能通过http proxy来访问外网。
首先是宿主机使用ubuntu on virtualbox,注意下网络连接方式,公司的网络策略是禁止桥接网卡,所以需要选择nat方式。
然后按照官方指南安装docker:
更新软件源:
apt-get update
但是apt是不会引用你已经配置好的环境变量HTTP_PROXY和HTTPS_PROXY的,需要单独配置apt代理:
编辑: /etc/apt/apt.conf or /etc/apt/apt.conf.d/xxx.conf
Acquire::proxy "//proxy:port/";
开发的时候有时候需要对已经提交的文件做忽略处理,这时候直接添加到.gitignore中是不行的。
需要忽略已跟踪文件的变动:
git update-index --assume-unchanged <file>
撤销忽略跟踪
git update-index --no-assume-unchanged <file>
lumen是laravel的精简版,通过优化路由等功能提高了执行效率
The stunningly fast micro-framework by Laravel.
最近用lumen做点小东西准备部署到sae上,发现环境存在不兼容,所以按照laravel服务提供者的方式实现了sae上的一些服务实现:
使用方式:
在并发的场景中,为了保证数据的一致性我们会在数据库中使用事务。然而在强一致性与性能上则需要根据具体业务来取舍,所以一般数据库提供了四种事务隔离级别:
由于日常工作中使用事务比较频繁,遂在此作一下总结