之前的老项目的redis client sdk 直接大名鼎鼎的github.com/fzzy/radix提供的redis clientredis pool, 当访问峰值达到一定的值后会出现too many open files等tcp连接错误,同时也没有直接提供authorization 密钥认证的接口,为满足这些新需求基于fzzy/radix封装出的新的redispool, 已投入生产使用半年来暂无问题,本文总结如下,

Read More

很早之前的一个老项目就使用过ORM,当时使用的是xorm,后来新的项目设计说考虑性能什么的又用写原生sql来做了,在项目中使用一直没什么问题, 但是代码中到处写着原生的sql语句,并且有很多重复的语句,很不好维护,于是最近又重新考虑采用orm的方式来操作数据库,最近看中beego/orm这个包, 它的官方文档也写了很详细的使用说明,下面还是简要总结一下自己在项目中的使用经历,

Read More

由于公司的MySQL是搭建在服务器上,为了避免对服务器进行直接改动,想远程导出和导入MySQL的数据库表结构及数据进行操作, 刚好Mysql本身提供了命令行导出工具MysqldumpMysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式(txt)的SQL文件,通过Mysql Source命令能够将SQL文件导入Mysql数据库中,下面通过Mysql导入导出SQL实例详解Mysqldump和Source命令的用法

Read More

信号(Signal)是Linux, 类Unix和其它POSIX兼容的操作系统中用来进程间通讯的一种方式。一个信号就是一个异步的通知,发送给某个进程,或者同进程的某个线程,告诉它们某个事件发生了。
当信号发送到某个进程中时,操作系统会中断该进程的正常流程,并进入相应的信号处理函数执行操作,完成后再回到中断的地方继续执行。
如果目标进程先前注册了某个信号的处理程序(signal handler),则此处理程序会被调用,否则缺省的处理程序被调用。

Read More

现在golang已经可以通过vendor来管理第三方依赖包了,但是之前的一个老项目用的是git submodule来管理的,但是.gitsubmodule文件中只记录管理了项目的部分依赖包, 需要把还没有被管理的第三包也加上,下面总结使用git submodule的过程。

Read More

存在一种场景, 当一个缓存服务由多个服务器组共同提供时, key应该路由到哪一个服务。这里假如采用最通用的方式取模求余: key%N(N为服务器数目), 这样做均衡性没有什么问题, 但是当服务器数目发送增加或减少时, 分配方式则变为key%(N+1)key%(N-1)。这里将会有大量的key失效迁移, 如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而造成服务的不稳定。解决思路,采用一致性哈希方法可以解决此问题。

Read More

@一线攻城狮

关注微信公众号 @一线攻城狮

总访问:
总访客: