加载中
leetcode:程序员面试技巧

起因 写在开头,脑袋铁定秀逗了,历时20多天,刷完了leetcode上面151道题目(当然很多是google的),感觉自己对算法和数据结构算是入门了,但仍然还有很多不清楚的地方,于是有了对于每道题目...

celery最佳实践

作为一个Celery使用重度用户,看到Celery Best Practices这篇文章,不由得菊花一紧。干脆翻译出来,同时也会加入我们项目中celery的实战经验。 通常在使用Django的时候,你可能需要执行一些长...

2014/06/25 16:45
14.6K
我的编程语言经历

Alan Perlis 说过:“一种不改变你编程的思维方式的语言,不值得去学。”,虽然写了这么多年程序,用了这么多的语言,但我自认还没悟道编程语言如何改变我的思维方式。 几天前,我需要用pyt...

2014/06/22 21:32
3.7K
高性能nosql ledisdb 设计与实现(2)

ledisdb现在已经支持replication机制,为ledisdb的高可用做出了保障。 使用 假设master的ip为10.20.187.100,端口6380,slave的ip为10.20.187.101,端口为6380. 首先我们需要master打开binlo...

2014/06/22 21:31
93
高性能nosql ledisdb设计与实现(1)

ledisdb是一个用go实现的基于leveldb的高性能nosql数据库,它提供多种数据结构的支持,网络交互协议参考redis,你可以很方便的将其作为redis的替代品,用来存储大于内存容量的数据。...

2014/06/04 17:10
249
读生产环境下go语言最佳实践有感

最近看了一篇关于go产品开发最佳实践的文章,go-in-procution。作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,希望对大家有帮助。...

2014/05/12 11:08
987
发布一个参考ssdb,用go实现的类似redis的高性能nosql:ledisdb

ledisdb是一个参考ssdb,采用go实现,底层基于leveldb,类似redis的高性能nosql数据库,提供了kv,list,hash以及zset数据结构的支持。

2014/05/11 16:30
227
gopkg:一种方便的go package管理方式

在使用go的过程中,我们有时候会引入一些第三方库来使用,而通常的方式就是使用go get,但是这种方式有一个很严重的问题,如果第三方库更新了相关接口,很有可能你就无法使用了,所以我们一套...

2014/07/24 13:29
793
发布一个参考tornado的高性能c++网络库:libtnet

libtnet是一个用c++编写的高性能网络库,它在设计上面主要参考tornado,为服务端网络编程提供简洁而高效的接口,非常易于使用。 Echo Server void onConnEvent(const ConnectionPtr_t& conn...

2014/05/11 16:31
783
在go中使用linked channels进行数据广播

在go中使用linked channels进行数据广播 原文在这里(需翻墙),为啥想要翻译这篇文章是因为在实际中也碰到过如此的问题,而该文章的解决方式很巧妙,希望对大家有用。 在go中channels是一个...

2014/05/11 16:31
36
golang:使用timingwheel进行大量ticker的优化

Ticker 最近的项目用go实现的服务器需要挂载大量的socket连接。如何判断连接是否还存活就是我们需要考虑的一个问题了。 通常情况下面,socket如果被客户端正常close,服务器是能检测到的,但...

2014/05/11 16:31
117
高性能C++网络库libtnet实现:Connection

Connection libtnet只支持IPv4 TCP Connection,之所以这么做都是为了使得实现尽可能的简单。我们主要在Connection类中封装了对tcp连接的操作。 Connection继承自std::enable_shared_from_t...

缩略图架构实现

缩略图架构实现 笔者最近将缩略图功能引入了私有云系统中,这里简单记录一下。 架构 整体架构如下: 可以看到,笔者采用了通用的分层架构设计模式。 file storage存放着原始的图片数据。 im...

2014/05/11 16:31
104
libcoro:在c++中支持coroutine

起因 在第一个版本的libtnet开发完成之后,我一直在思考如何让异步方式的网络编程更加简单。 虽然libtnet通过c++ shared_ptr以及function等技术很大程度上面解决了异步代码编写的一些问题,但...

2014/05/11 16:31
351
一个简单的注册c函数到python的包装器

这几天继续研究了一下python,顺便看了一下如何注册c的函数到python,这方面网上的东西已经很多了,就不详细说明了。反正大概就是把要注册的函数写成 PyObject* Fun(PyObject* self, PyObje...

2014/05/11 16:31
186
golang:一个高性能低精度timer实现

在go自带的timer实现中,采用的是通常的最小堆的方式,具体可以参见这里。 最小堆能够提供很好的定时精度,但是,在实际情况中,我们并不需要这样高精度的定时器,譬如对于一个连接,如果它在...

2014/05/11 16:30
82
go-mysql,一个易用的mysql接口框架实现

介绍 go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并不大,后续可能会接入。 go-mys...

2014/05/11 16:30
147
nginx虚拟主机解决企业内外网访问

nginx虚拟主机解决企业内外网访问 在企业里面部署服务,需要面临的一个问题就是不同企业复杂的网络环境。通常来说,私有云只需要在企业内部使用,但是也有很多企业需要通过外网能访问。同时,...

2014/05/11 16:30
42
golang:高性能消息队列moonmq的简单使用

在上一篇moonmq的介绍中(这里),我仅仅简短的罗列了一些moonmq的设计想法,但是对于如何使用并没有详细说明,公司同事无法很好的使用。 对于moonmq的使用,其实很简单,样例代码在这里,我...

2014/05/11 16:30
287
static_cast NULL的问题

今天头突然把我写的一段代码发给我,问我有什么问题,如下 假设B继承于A void fun(A* pA) { B* pB = static_cast<B*>(pA); if(!pB) return; //do other } 当时我没有明白有什么问题,可是他说...

2014/05/11 16:30
28

没有更多内容

加载失败,请刷新页面

返回顶部
顶部