最近一个年轻的朋友,刚毕业不久,面试的时候面对面试官提的各种技术名词,都不知所云。被面试官搞得头昏脑涨!IT 行业技术日新月异,淘汰很快,新技术,新名词重出不穷!从以前的单一 到现在的开支散叶。从简单的架构变成复杂的架构体系了。
有必要了解下目前BS网站的使用到的技术体系

关系型数据库有:ORACLE MYSQL MSSQL DB2 POStgresql
非关系数据库有:REDIS,MONGoDB
内存数据库有:timesten,fastdb,h2
缓存软件: MEMCACHE,redis
还有列式数据库:vertical
数据库中间件:MYCAT,MYPROXY
大数据数据库: HBASE
应用服务器有: tomcat jboss weblogc,apache,iis
代理服务器: nginx
高可用软件: keepalive lvs
开发语言: php,java,asp.net
操作系统:Linux(centos,red hat linux,oracle linux),aix hadoop
这里内存数据库和缓存软件 有的文章都认为是内存数据库。比如说memcache,redis。

当然这些分类不是很准确,业界喜欢混说。稍微百度下就知道大概

NoSQL太火,冒出太多产品了,保守估计也成百上千了。

互联网公司常用的基本集中在以下几种,每种只举一个比较常见或者应用比较成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同时提供了更加丰富的数据结构和运算的能力,成功用法是替代memcached,通过checkpoint和commit log提供了快速的宕机恢复,同时支持replication提供读可扩展和高可用。

  1. Disk-Based KV Store: Leveldb
    真正基于磁盘的key-value storage, 模型单一简单,数据量不受限于内存大小,数据落盘高可靠,Google的几位大神出品的精品,LSM模型天然写优化,顺序写盘的方式对于新硬件ssd再适合不过了,不足是仅提供了一个库,需要自己封装server端。
  2. Document Store: Mongodb
    分布式nosql,具备了区别mysql的最大亮点:可扩展性。mongodb 最新引人的莫过于提供了sql接口,是目前nosql里最像mysql的,只是没有ACID的特性,发展很快,支持了索引等特性,上手容易,对于数据量远超内存限制的场景来说,还需要慎重。
  3. Column Table Store: HBase
    这个富二代似乎不用赘述了,最大的优势是开源,对于普通的scan和基于行的get等基本查询,性能完全不是问题,只是只提供裸的api,易用性上是短板,可扩展性方面是最强的,其次坐上了Hadoop的快车,社区发展很快,各种基于其上的开源产品不少,来解决诸如join、聚集运算等复杂查询。