您的位置:首页 > 运维架构 > 网站架构

高性能大并发网站的架构分析

2014-06-15 14:29 260 查看
数据缓存方面,可选用Redis和Memcached来构建集群,降低数据库服务器的压力
消息队列在某些场景下是非常有用的,如秒杀,抢购等,可以使用Redis、RabbitMQ等开源组件
当某些数据库或者数据表数据量非常大的时候,可以对他们进行水平和垂直切割,需要用到数据库代理,如MySQL Proxy,Amoeba,Cobar等
负载均衡也有很多成熟的方案,如lvs,Nginx,搭配KeepAlive以确保在发生单点故障时能自动切换。

风格:Memcached只是个简单的Key-Value存储系统,它没有备份和持久化的功能,而Redis更像是一个NoSQL数据库系统。
功能:Redis提供了一些Memcached没有的功能,它支持的数据类型更加丰富,支持事务,支持master-slave,支持集群。
数据一致性:在多线程环境下,Memcached在这一点上要比Redis做的好,但也带来了性能上的损耗。
内存管理:Memcached的内存利用率要比Redis高。
性能:因为Memcached只是简单的存储Key-Value,在缓存数据很大时,性能要优于Redis,但在单核应用上存储小于100K的数据时,Redis性能要比Memcached高。
网络IO:由于Redis支持更多的数据结构,所以能有效的减少网络IO的次数和数据体积,而 Memcached在存储复杂数据时稍显逊色。

所以,我们无法单纯的得出谁优谁劣的结论,各有利弊,需要根据不同的应用场景来选择它们,如果只是单纯缓存一些数据,可以选择Memcached,比如session数据,如果我们希望数据能被持久化,那无疑只能选择Redis,例如统计当前的访问量、在线用户数等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: