一、传统的数据库中心化设计
传统的系统架构设计中,以存放在数据库中的数据为中心,为多种应用提供数据服务支持的设计称之为数据库中心化设计。
二、压力的变化
对于数据的需求经历了多层分离之后会带来了更多的压力,结果是不堪重负的io。
三、内存中心化设计
1.内存中心化设计是一种近来十分流行的架构设计思想,用于解决web2.0时代数据大量读写带来的性能压力
2.实现思路
a.增加缓冲层,利用内存的高io性能
b.将大量的实时数据以key-value的形式在内存中处理
c.通过预读和合并写入等技术减少后端数据库的I/O压力
四、key-value数据库简介
memcached与redis
1.什么是memcached?
memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载,他通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。memcached基于一个存储键值对的hashmap。守护进程(daemon)使用c写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信
2.memcached语法
memcached的服务器客户端通信并不使用复杂的xml等格式,而使用简单的基于文本的协议,因此,通过telnet也能在memcached上保存数据、获取数据
telnet localhost 11211
set foo 0 0 3(保存命令)
bar(数据)
stored(结果)
get foo(取得命令)
value foo 0 3(数据)
bar(数据)
3.mysql-memcached的实现
1.通常,mysql与memcached之间是没有直接联系的,如何使用这些组件完全由应用程序或中间件来决定
2.mysql5.6中加入了一个全新的memcached插件,通过该插件可以非常方便的实现memcached与mysql的组合,使得我们可以通过
memcached语法操作mysql数据库,也可以使用sql语法操作memcached,实现了mysql对于nosql的支持