编程珠玑的习题上谈到电话的排序和电话是否占线到问题,当然,我们可以把问题分开,简单到讨论用户是否在线的功能实现,问题是:如果用户超过1亿,这就不是一个简单到问题了。
需求:
第一时间想到的:
memcached,用这个就可以了,问题是,我只需要存储bit,memcached存储的是对象。如果采用它,肯定造成资源浪费,而且浪费是巨大的。代码还是要自己写的。
思路:(就不分析需求了)
按照需求应该通过计算硬件的带宽,内存,cpu来给出一个合理的配置,开发应该在配置到基础上开发产品。状态数据不需要保存,数据肯定放在内存中,这样,带宽就是性能瓶颈了。
每个key对应一个bit位,通过服务暴露出去的可以直接是true或者false。开发语言用C较为合适。
如何分布可以参考memcached的实现原理,这方面的实现方法应该是一样的……