锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 1. 璧峰洜錛?闅忕潃twitter sina寰崥錛岃吘璁井鍗氱殑寮鏀懼鉤鍙扮浉緇ф帹鍑? 澶ч儴鍒嗗拰浜掕仈緗戠浉鍏崇殑鍏徃鍙堝浜嗕竴涓惀閿鐨勬墜孌碉細(xì)淇℃伅鍚屾銆備篃鍗蟲槸鐢ㄦ埛鎶婅嚜宸辯殑鏂版氮寰崥璐﹀彿鎴栬呰吘璁井鍗氳處鍙峰拰浣犵殑緗戠珯鍏寵仈璧鋒潵浜嗭紝鐢ㄦ埛鍦ㄤ綘鐨勭綉绔欎駭鐢熺殑 浠諱綍淇℃伅閮藉彲浠ュ悓姝ュ彂閫佸埌sina寰崥錛宷q寰崥涓婂幓錛堝墠鎻愭槸緇忚繃鐢ㄦ埛鐨勫厑璁革紝榪欐牱鐢ㄦ埛鏃㈠彲浠ヤ笉闇瑕佸悓鏍風(fēng)殑淇℃伅澶嶅埗鍒板涓綉绔欙紝 鍙堝彲浠ョ浉搴旂殑鎺ㄥ箍浣犵殑緗戠珯鐨勫叆鍙f洕鍏夌巼錛夈傜洰鍓嶅悓姝ユ瘮杈冨ソ鐨勪緥瀛愭槸錛氬井鍗氶氾紝琛楁梺錛屽垏瀹㈢瓑銆?br /> 3. 緋葷粺鎵╁睍鎬?br /> a). 濡傛灉鑴氭湰澶勭悊榪囨參錛屽彲鑳介犳垚緙撳啿闃熷垪鎷ュ牭錛屾垜浠彲鑳介氳繃鎵╁睍鍚庡彴鑴氭湰涓暟鏉ュ姞蹇悓姝ュ埌絎笁鏂瑰鉤鍙扮殑澶勭悊閫熷害銆?br /> b). 濡傛灉闇瑕佸悓姝ョ殑淇℃伅閲忚繃澶? 閫犳垚鍐欏叆闃熷垪鐨勫茍鍙戞暟鏋佸ぇ錛岃偗鑳介氳繃鎵╁睍闃熷垪鏈嶅姟鏉ヨ揪鍒板垎鏁e噺鍘嬬殑鐩殑(鍩烘湰涓嶄細(xì)鍑虹幇)銆?/p> 5. 鏁堢巼濡備綍 鍋囪浣犵殑緗戠珯姣忓ぉ浜х敓100W鏉′俊鎭?闇瑕佸悓姝ュ埌絎笁鏂瑰鉤鍙般?br /> redis瀹樻柟嫻嬭瘯鏁版嵁錛圫ET鎿嶄綔姣忕閽?110000 嬈★紝GET鎿嶄綔姣忕閽?81000 嬈★級銆?br /> 涓涓剼鏈瘡澶╃殑鍚屾閲? 86400/2 = 43200, (鍋囪騫沖潎姣忓悓姝ヤ竴鏉′俊鎭姳璐規(guī)椂闂翠負(fù)2s錛? 涓涓剼鏈瘡澶╁ぇ姒傚彲浠ュ悓姝?W鏉℃暟鎹?br /> 騫沖潎姣忕鍚屾鐨勬暟鎹?100W/86400 < 12涓?楂樺嘲鏃舵湡鎵╁ぇ鍗佸嶄篃灝辨槸姣忕 120鏉′俊鎭傜敱姝ゅ彲瑙佹瘡澶?00W 鐢氳嚦 1000W鐨勪俊鎭悓姝ラ噺瀵箁edis鏉ヨ閮芥槸娌℃湁浠諱綍鍘嬪姏鐨勩?br /> 鎴戜滑鍙渶瑕佸姞蹇剼鏈鐞嗙殑閫熷害鍗沖彲錛?100W鏁版嵁鍙渶瑕佸悓浜?5涓剼鏈礋璐e悓姝ュ嵆鍙紝錛堟暟鎹噺澧炲姞浜嗭紝鎵╁睍璧鋒潵闈炲父鏂歸潰錛夈?/p> 鎬葷粨錛屾鏂瑰紡宸茬粡搴旂敤浜庡浗鍐呮煇LBS紺懼尯錛屾瘡澶╃殑PV澶ф300W錛屼駭鐢熺殑淇℃伅鍚屾閲忔瘡澶╁ぇ姒?W宸﹀彸銆傚綋鍓嶆槸2涓剼鏈礋璐e悓姝ョ浉鍏蟲搷浣滐紝闃熷垪閲岄潰鍩烘湰娌℃湁浠諱綍鎷ュ牭淇℃伅銆?/p>
2. 涓轟粈涔堣鐢ㄧ紦鍐查槦鍒楁湇鍔★紝鎴戜滑涓句釜渚嬪瓙銆傚鏋滀綘鍋氫簡涓涓綉绔欙紝鐢ㄦ埛鍦ㄤ綘鐨勭綉绔欎笂鍏寵仈浜唖ina寰崥錛孮Q寰崥錛屽紑蹇冪綉錛屼漢浜虹綉錛? 璞嗙摚錛宼witter, facebook錛堝彲鑳借繕瑕佸湪鍥藉璁劇疆浠g悊錛夌瓑絳夌涓夋柟騫沖彴錛岀敤鎴蜂駭鐢熶簡涓涓姩浣滃悗錛堟瘮濡傚彂浜嗕竴鏉″績鎯呯姸鎬侊級錛屼綘鐨勭綉绔欒鍚屾椂鍚屾鍒拌繖浜涚綉绔欏幓錛屾瘡涓涓? 鏂瑰鉤鍙伴兘瑕佺粡榪囧嬈″緗慼ttp璇鋒眰錛屾墍鏈夌殑榪欎簺璇鋒眰鍔犺搗鏉ユ槸鍙兘鏄緢闀跨殑鏃墮棿(鍑犵錛? 鐢氳嚦鍑犲崄縐?錛岃繖瀵逛簬鍓嶆鐢ㄦ埛鑲畾鑲畾鏄棤娉曞繊鍙楃殑銆傛墍浠ヨ繖涓椂鍊欏悓姝ヤ俊鎭殑璇濆繀欏婚噰鍙栧紓姝ョ殑鏂瑰紡錛屼篃灝辨槸鐢ㄦ埛鍦ㄤ綘鐨勭綉绔欏彂琛ㄤ竴涓姸鎬佹湇鍔$鍙槸鎶婅繖鏉$姸 浣撳搴旂殑淇℃伅瀛樺偍璧鋒潵錛?鐒跺悗灝辨彁紺虹敤鎴峰彂琛ㄦ垚鍔燂紝 鍏蜂綋鐨勪俊鎭悓姝ユ槸鍚庣浠ヨ剼鏈殑鏂瑰紡寮傛榪愯鐨勩傜敤鎴烽氫織鐨勮瘽鏉ヨ灝辨槸鐢ㄦ埛鍏堝彂琛ㄥ悗鍚屾錛岀敱浜庢牎鏈墽琛岄熷害寰堝揩錛? 鐢ㄦ埛鍑犱箮鎰熻涓嶅嚭鏉ュ悓姝ョ殑鏃墮棿宸備綘涔熻浼?xì)闂垜鎬庝箞鐭ラ亾鍝簺淇℃伅瑕佸悓姝ュ埌絎笁鏂瑰鉤鍙板幓鍛紝榪欎篃灝辨槸浣跨敤redis浣跨敤緙撳啿闃熷垪鏈嶅姟鍣ㄧ殑鍘熷洜錛屽綋鐢ㄦ埛鍙戣〃淇? 鎭悗錛屾垜浠悓浜嬫妸淇℃伅鍐欏叆緙撳啿闃熷垪鏈嶅姟鍣紝鍚庡彴鑴氭湰浼?xì)涓嶅仠鐨勫幚L鏌ョ紦鍐查槦鍒楁湇鍔″櫒鏄惁鏈夋暟鎹紝濡傛灉鏈夋暟鎹垯鍙栧嚭鍙戦佸埌絎笁鏂瑰紑鏀懼鉤鍙般?/p>
]]>
宸笉澶氬湪涓騫村墠錛屽啓榪囦竴綃囨枃绔犱粙緇?a target="_blank">灝哅ySQL鏁版嵁鏄犲皠鍒癕emcached錛屽綋鏃禡ySQL鍜孧emcached Functions for MySQL閮借繕涓嶅鎴愮啛錛屾椂榪囦竴騫達(dá)紝Memcached Functions for MySQL鍗囩駭鍒頒簡0.8鐗堟湰錛岃孧ySQL涔熷彂甯冧簡GA鐗堟湰錛屽姞涓婂緢澶氭湅鍙嬪弽搴斿墠涓綃囨枃绔犱腑鐨勫疄鐜頒粬浠洜縐嶇鍘熷洜娌¤兘鎴愬姛錛屼簬鏄究鏈変簡榪欑瘒鏂囩珷錛屽氨褰撴槸涓婁竴綃囨枃绔犵殑鍗囩駭鐗堟湰鍚с?/p>
嫻嬭瘯鐜鍦↙inux涓嬭繘琛岋紝鐗堟湰緋葷粺涓篊entOS5.
浠ヤ笅涓虹浉鍏寵蔣浠訛紝鍖呮嫭鍏剁増鏈拰涓嬭澆鍦板潃錛?/p>
mysql-5.1.30 涓嬭澆
memcached-1.2.6 涓嬭澆
libevent-1.4.7-stable 涓嬭澆
memcached_functions_mysql-0.8 涓嬭澆
libmemcached-0.26 涓嬭澆
緙栬瘧瀹夎MySQL,瀹夎鍥犱釜浜虹粏濂借屽畾錛岀渷鐣ヨ澶氫笌嫻嬭瘯鏃犲叧鐨勭紪璇戠粏鑺傚強(qiáng)鍙傛暟銆?/p>
[root@localhost ~]#tar xzf mysql-5.1.30.tar_001.gz [root@localhost ~]#cd mysql-5.1.30 [root@localhost ~]#./configure --prefix=/usr/local/mysql51 [root@localhost ~]#make [root@localhost ~]#make install [root@localhost ~]#./scripts/mysql_install_db --user=mysql --skip-name-resolve [root@localhost ~]#/usr/local/mysql51/bin/mysqld_safe
鐪佺暐鍒楀嚭瀹夎memcached鍜宭ibevent鐨勭浉鍏沖懡浠わ紝鍏蜂綋鍙寜鐓у疄闄呮儏鍐靛畨瑁咃紝嫻嬭瘯鏃舵垜灝唋ibevent榛樿瀹夎錛宮emcached瀹夎浜?usr/local/memcached鐩綍涓嬨?br /> 鍚姩memcached.
/usr/local/memcached/bin/memcached -d -m 50 -u root -p 11211
緙栬瘧瀹夎libmemcache.
[root@localhost ~]#tar xzf libmemcached-0.26.tar.gz [root@localhost ~]#cd libmemcached-0.26 [root@localhost ~]#./configure --with-memcached=/usr/local/memcached/bin/memcached [root@localhost ~]# make && make install
緙栬瘧瀹夎Memcache UDFs for MySQL.
[root@localhost ~]# tar xzf memcached_functions_mysql-0.8.tar.gz [root@localhost ~]# cd memcached_functions_mysql-0.8 [root@localhost ~]# ./configure --with-mysql-config=/usr/local/mysql51/bin/mysql_config [root@localhost ~]# make && make install
緙栬瘧瀹屾垚鍚庡皢緙栬瘧濂界殑搴撴枃浠跺鍒跺埌mysql鐨勬彃浠剁洰褰曚笅錛屼互渚夸簬鍔犺澆浣跨敤銆?/p>
cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql51/lib/mysql/plugin/
榪涘叆memcached_functions_mysql鐨勬簮鐮佺洰褰曪紝鍦ㄧ洰褰曚笅鏈夌浉鍏蟲坊鍔燯DF鐨凷QL鏂囦歡鐢ㄤ簬鍒濆鍖栥?/p>
[root@localhost ~]# mysql <sql/install_functions.sql
娉細(xì)濡傛灉瀵硅繖浜沀DFs涓嶇啛鎮(zhèn)夋垨鑰呬笉鎳傦紝鍙繘琛屾簮鐮佺洰褰曞弬鐪?a target="_blank">README錛岄噷杈規(guī)湁鐩稿簲鐨勮鏄庛?/p>
鑷蟲錛岀浉鍏寵蔣浠剁殑緙栬瘧鍜屽畨瑁呭畬鎴愶紝榪涜嫻嬭瘯錛屾垜浠杈懼埌鐨勭洰鐨勬槸褰揗ySQL鏈夋柊璁板綍鎻掑叆鏃訛紝鍚屾椂鎻掑叆鍒癕emcached涓紝褰撹褰曟洿鏂版椂鍚屾鏇存柊Memcached涓殑璁板綍錛屽垹闄ゆ椂鍚屾椂涔熷垹闄emcached鐩稿叧鐨勮褰曪紝涓烘鍒涘緩涓変釜瑙﹀彂鍣ㄦ潵瀹炵幇錛屽鏋滃MySQL鐨勮Е鍙戠▼搴忎笉鐔熸?zhèn)夊彲浠ュ弬鑰僊ySQL鎵嬪唽絎?1绔狅紝涓嬮潰SQL涓殑memcached涓洪渶瑕佹搷浣滅殑琛ㄥ悕錛孲QL濡備笅錛?/p>
#鎻掑叆鏁版嵁鏃舵彃鍏emcached create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value); #鏇存柊璁板綍鏃舵洿鏂癕emcached create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value); #鍒犻櫎璁板綍鏃跺垹闄emcached鐩稿簲鐨勮褰?/span> create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key);
浠ヤ笅涓烘祴璇曡褰曪紝鍦ㄥMySQL鎿嶄綔鐨勫悓鏃舵搷浣淢emcached鏉ユ煡鐪嬫儏鍐碉紝褰撶劧浣犱篃鍙互鍦ㄥ惎鍔∕emcached鐨勬椂鍊欏甫-vv鍙傛暟鏉ユ煡鐪嬬浉鍏充俊鎭?
MySQL鎿嶄綔鐩稿叧鐨勮褰曪細(xì)
[root@localhost ~]#mysql -S /tmp/mysql51.sock Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.1.30 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use test; Database changed mysql> create table `memcached` (`key` varchar(10), `value` varchar(100)); Query OK, 0 rows affected (0.00 sec) mysql> create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value); Query OK, 0 rows affected (0.00 sec) mysql> create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value); Query OK, 0 rows affected (0.00 sec) mysql> create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key); Query OK, 0 rows affected (0.00 sec) mysql> insert into memcached values("keyi", "valuei"),("keyu","valueu"),("keyd", "valued"); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> update memcached set `value`="update" where `key`="keyu"; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> delete from memcached where `key`="keyd"; Query OK, 1 row affected (0.00 sec) mysql> quit Bye
Memcache鏌ョ湅鏃剁殑璁板綍錛?/p>
[root@localhost ~]#telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. get keyi VALUE keyi 0 6 valuei END get keyu VALUE keyu 0 6 valueu END get keyd VALUE keyd 0 6 valued END get keyu VALUE keyu 0 6 update END get keyd END quit Connection closed by foreign host.
鑷蟲錛屾垜浠熀鏈疄鐜扮殑灝哅ySQL鐨勬暟鎹悓姝ュ埌Memcached涓紝鎬ц兘鏆傛椂榪樻病鏈夋祴璇曪紝褰撶劧涓婇潰鍙槸綆鍗曠殑瀹炵幇鐨勬暟鎹槧灝勭殑鍔熻兘錛屽鏋滃湪瀹炵幇鐨勭敓浜х幆澧冧腑錛屽垯闇瑕佽冭檻鍚嶅瓧絀洪棿錛岄珮鍙潬鎬х殑闂錛岃繖浜涢兘鏄彲浠ラ氳繃鏁版嵁搴撳悕-琛ㄥ悕-鍏抽敭瀛楃殑鏂歸潰鑳借揪鍒癒EY鍞竴鐨勭洰鐨勶紝鑰岄珮鍙潬鎬у垯鏄竴涓瘮杈冨ぇ鐨勯棶棰樸?/p>