????????????????????“NOSQL” ???????????????:
?????????
????nosql????????????????????????????????????sql???λ???????????????????????????????
?????????
???????????????????????????nosql(mongodb)????????????????洢??????????ν????nosql????????????????????????????SQL?????????????????????????
????mongodb??????????????????????????????????????洢??????????????????????????????????????????????????ü???shell???????mongodb??????
????show dbs;
????//???????
????use mydb;
????show collections;
????//????????????mysql?е??
????db.createCollection('mycollection');
????//????????.
????db.mycollection.insert({'username':'chenqimiao'??'age':23})
????db.mycollection.insert({'username':'cqm'??'age':23??'sex':'??'})
????//???
????db.mycollection.find({"age":23});
???????mysql???????????????????????????????????????mysql???????????????mongodb?????????????????????????????С?
????????mongodb?????????????У???mongo?п???????У????????field???ɡ?
??????????????????????????HBase??Habase ?????? Hadoop?????????????????????????????????????Habase???????е??
?????????HBase???????????????????HBase????????????????????????HBase??????????????????е???????????????????д洢???
????????????????key ??????HBase?д???????value??????????????????????????????????????????timestamp????????????????????????????????????????滻??????
???????????????????????????????????????????????????????????????get??key???????μ????value??????????
??????????????????Ч???TTL????????????????????Ч?????????Ч?????????get????????????????洢??HBase?в?δ?????
????????????????redis???????????????????????????????????????????set() get()??????????Щ?????????????????????????redis??????shell???????????????д??????????????? ????????????????????? ??redis???????swap?????????????????swap?е?????????redis????????swap??????У????ж?д??????????????????????????? ??????k-v ????hset ??hash ??zset???
???????????????????????Memcache???????????????redis????ó????????????????nosql?????????????????????k-v???????????????redis?????
????????????Memcache??????????????
??????????memcache????????????????????????????????ú???????????????????????mysql??redis?????????????????д????????????????д????????????????????????????????????????????????memcache?е??????????????????????????????????????????????????????????????????
???????????????????????memcache???????????????JAVA??
????????????????????io??GregWhalin?????????
?????????????????????????????С?
????DustinSallings???????javanio??Spymemcached
????Asimple??asynchronous??single-threadedmemcachedclientwritteninjava.?????????????memcached???????????java1.5?汾??concurrent??nio??????????????????????????????????г???timeOut?????????
????XMemcache
????Memcached????????javanio???????javanio???????????io??????????Ч??????????????£??????????????????????????IO??????Ч????????????????????????γ?????????nio?????????????????????nio???????????????????????????????????????л????????????????????????????????XMemcached??Spymemcached???????????????Щ???棨?洢????????С??????£?Xmemcached??Spymemcached????????????????????JavaMemcachedClientsBenchmark??
??????????????????????????????????????????????????????????????????????????????????????????????????????CAS??????????
????????CAS?
????????java?????java.util.concurrent.atomic;??????????????????CAS(check and swap)???????????????????????????????????????????????CAS???????????????????????δ?????仯 ?????t?????????????
????while(true){
????Object oldValue = atomicObject.get("key1") ;
????Object newValue = new Object();
????Object value  =   checkAndSwap("key1"??oldValue??newValue) ;
????if(value!=null&&oldValue.equals(value)) 
????break;
????}
??????????CAS??????????????????????CAS???????????????????????????CAS??????????÷????????????????????Σ?????????????syncronized???????????????????????????????棬??а??????????????????syncronized???????????????memcache????????????CAS????????Ρ?