lnmp+memcache --------------------》 192.168.0.10php
iptables -F
iptables -X
iptables -Z
sed -i 's/enforcing/disabled/g' /etc/selinux/config ; nl /etc/selinux/config
setenforce 0css
yum -y install gcc automake autoconf libtool make gcc-c++ glibc libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel pcre pcre-devel libmcrypt libmcrypt-devel cmakehtml
cd /usr/local/srcjava
wget http://nginx.org/download/nginx-1.8.1.tar.gzmysql
groupadd swdata
useradd -g swdata swdata -s /sbin/nologinlinux
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --user=www --group=www --with-http_ssl_module --with-http_gzip_static_module
make && make installnginx
ls /usr/sbin/nginxgit
nginx的啓動腳本github
#!/bin/bash # chkconfig: 35 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="nginx daemon" NAME=nginx DAEMON=/usr/sbin/$NAME #(這裏是nginx安裝是 --sbin-path指定的路徑) SCRIPTNAME=/etc/init.d/$NAME test -x $DAEMON || exit 0 d_start(){ $DAEMON || echo -n " already running" } d_stop() { $DAEMON -s quit || echo -n " not running" } d_reload() { $DAEMON -s reload || echo -n " counld not reload" } case "$1" in start) echo -n "Starting $DESC:$NAME" d_start echo "." ;; stop) echo -n "Stopping $DESC:$NAME" d_stop echo "." ;; reload) echo -n "Reloading $DESC configuration..." d_reload echo "reloaded." ;; restart) echo -n "Restarting $DESC: $NAME" d_stop sleep 2 d_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2 exit 3 ;; esac exit 0 # //將shell腳本放入到 /etc/rc.d/init.d/中,並執行下列命令 chmod +x /etc/rc.d/init.d/nginx # (設置可執行權限) chkconfig --add nginx #(添加系統服務) service nginx start service nginx stop service nginx restart service nginx reload # 瀏覽器訪問:http://localhost如能出現nginx頁面則表示成功 # // 查看nginx進程 ps -ef | grep nginx # // 查看進程個數 去掉首位的 ps -ef | grep nginx | wc -l # // 查看80端口 netstat -anpt
ss -tanweb
cd /usr/local/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz
tar -xf mysql-5.6.30.tar.gz
cd mysql-5.6.30
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /usr/local/mysql #新建mysql安裝目錄
mkdir -p /data/mysqldb #新建mysql數據庫數據文件目錄
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/m ysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_ STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH _PARTITION_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENAB LE_DOWNLOADS=1 -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1
(注:從新運行配置,須要執行make clean並刪除CMakeCache.txt文件 rm CMakeCache.txt )
make && make install
ls /usr/local/mysql || mkdir /usr/local/mysql
cd /usr/local/mysql ; chown -R mysql:mysql .
ls /data/mysqldb || mkdir /data/mysqldb
cd /data/mysqldb; chown -R mysql:mysql .
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql--datadir=/data/mysqldb
ls /usr/local/mysql/support-files/my-default.cnf
cp -p /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp -p support-files/mysql.server /etc/init.d/mysqld
若是直接啓動沒有在配置文件裏面指定mysql的安裝目錄跟端口數據庫目錄在哪裏的話會報錯,因此作好了這個的話直接將下面的這些文字貼進來,這也是優化過的參數
[client] port = 3306 socket = /var/lib/mysql/mysql.sock [mysql] #這個配置段設置啓動MySQL服務的條件;在這種狀況下,no-auto-rehash確保這個服務啓動得比較快。 no-auto-rehash [mysqld] user = mysql port = 3306 socket = /var/lib/mysql/mysql.sock basedir = /usr/local/mysql #basedir = /usr/local/mysql datadir = /data/mysqldb #datadir = /data/mysql/data/ open_files_limit = 10240 back_log = 600 #在MYSQL暫時中止響應新請求以前,短期內的多少個請求能夠被存在堆棧中。若是系統在短期內有不少鏈接,則須要增大該參數的值,該參數值指定到來的TCP/IP鏈接的監聽隊列的大小。默認值80。 max_connections = 3000 #MySQL容許最大的進程鏈接數,若是常常出現Too Many Connections的錯誤提示,則須要增大此值。默認151 max_connect_errors = 6000 #設置每一個主機的鏈接請求異常中斷的最大次數,當超過該次數,MYSQL服務器將禁止host的鏈接請求,直到mysql服務器重啓或經過flush hosts命令清空此host的相關信息。默認100 external-locking = FALSE #使用–skip-external-locking MySQL選項以免外部鎖定。該選項默認開啓 max_allowed_packet = 32M #設置在網絡傳輸中一次消息傳輸量的最大值。系統默認值 爲4MB,最大值是1GB,必須設置1024的倍數。 #sort_buffer_size = 2M # Sort_Buffer_Size 是一個connection級參數,在每一個connection(session)第一次須要使用這個buffer的時候,一次性分配設置的內存。 #Sort_Buffer_Size 並非越大越好,因爲是connection級的參數,過大的設置+高併發可能會耗盡系統內存資源。例如:500個鏈接將會消耗 500*sort_buffer_size(8M)=4G內存 #Sort_Buffer_Size 超過2KB的時候,就會使用mmap() 而不是 malloc() 來進行內存分配,致使效率下降。 系統默認2M,使用默認值便可 #join_buffer_size = 2M #用於表間關聯緩存的大小,和sort_buffer_size同樣,該參數對應的分配內存也是每一個鏈接獨享。系統默認2M,使用默認值便可 thread_cache_size = 300 #默認38 # 服務器線程緩存這個值表示能夠從新利用保存在緩存中線程的數量,當斷開鏈接時若是緩存中還有空間,那麼客戶端的線程將被放到緩存中,若是線程從新被請求,那麼請求將從緩存中讀取,若是緩存中是空的或者是新的請求,那麼這個線程將被從新建立,若是有不少新的線程,增長這個值能夠改善系統性能.經過比較 Connections 和 Threads_created 狀態的變量,能夠看到這個變量的做用。設置規則以下:1GB 內存配置爲8,2GB配置爲16,3GB配置爲32,4GB或更高內存,可配置更大。 #thread_concurrency = 8 #系統默認爲10,使用10先觀察 # 設置thread_concurrency的值的正確與否, 對mysql的性能影響很大, 在多個cpu(或多核)的狀況下,錯誤設置了thread_concurrency的值, 會致使mysql不能充分利用多cpu(或多核), 出現同一時刻只能一個cpu(或核)在工做的狀況。thread_concurrency應設爲CPU核數的2倍. 好比有一個雙核的CPU, 那麼thread_concurrency的應該爲4; 2個雙核的cpu, thread_concurrency的值應爲8 query_cache_size = 64M #在MyISAM引擎優化中,這個參數也是一個重要的優化參數。但也爆露出來一些問題。機器的內存愈來愈大,習慣性把參數分配的值愈來愈大。這個參數加大後也引起了一系列問題。咱們首先分析一下 query_cache_size的工做原理:一個SELECT查詢在DB中工做後,DB會把該語句緩存下來,當一樣的一個SQL再次來到DB裏調用時,DB在該表沒發生變化的狀況下把結果從緩存中返回給Client。這裏有一個關建點,就是DB在利用Query_cache工做時,要求該語句涉及的表在這段時間內沒有發生變動。那若是該表在發生變動時,Query_cache裏的數據又怎麼處理呢?首先要把Query_cache和該表相關的語句所有置爲失效,而後在寫入更新。那麼若是Query_cache很是大,該表的查詢結構又比較多,查詢語句失效也慢,一個更新或是Insert就會很慢,這樣看到的就是Update或是Insert怎麼這麼慢了。因此在數據庫寫入量或是更新量也比較大的系統,該參數不適合分配過大。並且在高併發,寫入量大的系統,建議把該功能禁掉。 query_cache_limit = 4M #指定單個查詢可以使用的緩衝區大小,缺省爲1M query_cache_min_res_unit = 2k #默認是4KB,設置值大對大數據查詢有好處,但若是你的查詢都是小數據查詢,就容易形成內存碎片和浪費 #查詢緩存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100% #若是查詢緩存碎片率超過20%,能夠用FLUSH QUERY CACHE整理緩存碎片,或者試試減少query_cache_min_res_unit,若是你的查詢都是小數據量的話。 #查詢緩存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size * 100% #查詢緩存利用率在25%如下的話說明query_cache_size設置的過大,可適當減少;查詢緩存利用率在80%以上並且Qcache_lowmem_prunes > 50的話說明query_cache_size可能有點小,要不就是碎片太多。 #查詢緩存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100% #default-storage-engine = MyISAM #default_table_type = InnoDB #開啓失敗 #thread_stack = 192K #設置MYSQL每一個線程的堆棧大小,默認值足夠大,可知足普通操做。可設置範圍爲128K至4GB,默認爲256KB,使用默認觀察 transaction_isolation = READ-COMMITTED # 設定默認的事務隔離級別.可用的級別以下:READ UNCOMMITTED-讀未提交 READ COMMITTE-讀已提交 REPEATABLE READ -可重複讀 SERIALIZABLE -串行 tmp_table_size = 256M # tmp_table_size 的默認大小是 32M。若是一張臨時表超出該大小,MySQL產生一個 The table tbl_name is full 形式的錯誤,若是你作不少高級 GROUP BY 查詢,增長 tmp_table_size 值。若是超過該值,則會將臨時表寫入磁盤。 max_heap_table_size = 256M expire_logs_days = 7 key_buffer_size = 2048M #批定用於索引的緩衝區大小,增長它能夠獲得更好的索引處理性能,對於內存在4GB左右的服務器來講,該參數可設置爲256MB或384MB。 read_buffer_size = 1M #默認128K # MySql讀入緩衝區大小。對錶進行順序掃描的請求將分配一個讀入緩衝區,MySql會爲它分配一段內存緩衝區。read_buffer_size變量控制這一緩衝區的大小。若是對錶的順序掃描請求很是頻繁,而且你認爲頻繁掃描進行得太慢,能夠經過增長該變量值以及內存緩衝區大小提升其性能。和sort_buffer_size同樣,該參數對應的分配內存也是每一個鏈接獨享。 read_rnd_buffer_size = 16M # MySql的隨機讀(查詢操做)緩衝區大小。當按任意順序讀取行時(例如,按照排序順序),將分配一個隨機讀緩存區。進行排序查詢時,MySql會首先掃描一遍該緩衝,以免磁盤搜索,提升查詢速度,若是須要排序大量數據,可適當調高該值。但MySql會爲每一個客戶鏈接發放該緩衝空間,因此應儘可能適當設置該值,以免內存開銷過大。 bulk_insert_buffer_size = 64M #批量插入數據緩存大小,能夠有效提升插入效率,默認爲8M myisam_sort_buffer_size = 128M # MyISAM表發生變化時從新排序所需的緩衝 默認8M myisam_max_sort_file_size = 10G # MySQL重建索引時所容許的最大臨時文件的大小 (當 REPAIR, ALTER TABLE 或者 LOAD DATA INFILE). # 若是文件大小比此值更大,索引會經過鍵值緩衝建立(更慢) #myisam_max_extra_sort_file_size = 10G 5.6無此值設置 #myisam_repair_threads = 1 默認爲1 # 若是一個表擁有超過一個索引, MyISAM 能夠經過並行排序使用超過一個線程去修復他們. # 這對於擁有多個CPU以及大量內存狀況的用戶,是一個很好的選擇. myisam_recover #自動檢查和修復沒有適當關閉的 MyISAM 表 skip-name-resolve lower_case_table_names = 1 server-id = 1 innodb_additional_mem_pool_size = 16M #這個參數用來設置 InnoDB 存儲的數據目錄信息和其它內部數據結構的內存池大小,相似於Oracle的library cache。這不是一個強制參數,能夠被突破。 innodb_buffer_pool_size = 2048M # 這對Innodb表來講很是重要。Innodb相比MyISAM表對緩衝更爲敏感。MyISAM能夠在默認的 key_buffer_size 設置下運行的能夠,然而Innodb在默認的 innodb_buffer_pool_size 設置下卻跟蝸牛似的。因爲Innodb把數據和索引都緩存起來,無需留給操做系統太多的內存,所以若是隻須要用Innodb的話則能夠設置它高達 70-80% 的可用內存。一些應用於 key_buffer 的規則有 — 若是你的數據量不大,而且不會暴增,那麼無需把 innodb_buffer_pool_size 設置的太大了 #innodb_data_file_path = ibdata1:1024M:autoextend 設置過大致使報錯,默認12M觀察 #表空間文件 重要數據 #innodb_file_io_threads = 4 不明確,使用默認值 #文件IO的線程數,通常爲 4,可是在 Windows 下,能夠設置得較大。 innodb_thread_concurrency = 8 #服務器有幾個CPU就設置爲幾,建議用默認設置,通常爲8. innodb_flush_log_at_trx_commit = 2 # 若是將此參數設置爲1,將在每次提交事務後將日誌寫入磁盤。爲提供性能,能夠設置爲0或2,但要承擔在發生故障時丟失數據的風險。設置爲0表示事務日誌寫入日誌文件,而日誌文件每秒刷新到磁盤一次。設置爲2表示事務日誌將在提交時寫入日誌,但日誌文件每次刷新到磁盤一次。 #innodb_log_buffer_size = 16M 使用默認8M #此參數肯定些日誌文件所用的內存大小,以M爲單位。緩衝區更大能提升性能,但意外的故障將會丟失數據.MySQL開發人員建議設置爲1-8M之間 #innodb_log_file_size = 128M 使用默認48M #此參數肯定數據日誌文件的大小,以M爲單位,更大的設置能夠提升性能,但也會增長恢復故障數據庫所需的時間 #innodb_log_files_in_group = 3 使用默認2 #爲提升性能,MySQL能夠以循環方式將日誌文件寫到多個文件。推薦設置爲3M #innodb_max_dirty_pages_pct = 90 使用默認75觀察 #推薦閱讀 http://www.taobaodba.com/html/221_innodb_max_dirty_pages_pct_checkpoint.html # Buffer_Pool中Dirty_Page所佔的數量,直接影響InnoDB的關閉時間。參數innodb_max_dirty_pages_pct 能夠直接控制了Dirty_Page在Buffer_Pool中所佔的比率,並且幸運的是innodb_max_dirty_pages_pct是能夠動態改變的。因此,在關閉InnoDB以前先將innodb_max_dirty_pages_pct調小,強制數據塊Flush一段時間,則可以大大縮短 MySQL關閉的時間。 innodb_lock_wait_timeout = 120 #默認爲50秒 # InnoDB 有其內置的死鎖檢測機制,能致使未完成的事務回滾。可是,若是結合InnoDB使用MyISAM的lock tables 語句或第三方事務引擎,則InnoDB沒法識別死鎖。爲消除這種可能性,能夠將innodb_lock_wait_timeout設置爲一個整數值,指示 MySQL在容許其餘事務修改那些最終受事務回滾的數據以前要等待多長時間(秒數) innodb_file_per_table = 0 #默認爲No #獨享表空間(關閉) [mysqldump] quick # max_allowed_packet = 32M [mysqld_safe] #log-error=/data/mysql/mysql_oldboy.err #pid-file=/data/mysql/mysqld.pid log-error=/usr/local/mysql/data/mysql_oldboy.err pid-file=/usr/local/mysql/data/mysqld.pid sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
service mysqld start
若是缺乏cmake才執行如下操做 這一步能夠跳過,由於以前yum已經安裝了 ①下載 MySQL mysql官網->Downloads->Community->MySQL Community Server->下拉框裏選擇Source Code cd /usr/local/src wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz ②安裝編譯源碼所需的工具和庫 若是缺乏cmake庫 yum install cmake(能夠從http://www.cmake.org下載源碼並編譯安裝) (安裝包安裝cmake) wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzvf cmake-2.8.10.2.tar.gz ./bootstrap make make install
#安裝php-fpm
wget http://cn2.php.net/get/php-5.6.13.tar.gz/from/this/mirror
tar zxvf php-5.6.13.tar.gz
cd php-5.6.13
./configure --prefix=/usr/local/php --with-curl --with-bz2 --with-zlib --with-mhash --with-pcre-regex --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-gd --with-jpeg-dir --with-png-dir --with-openssl --with-pdo-mysql --with-libxml-dir --with-freetype-dir --with-iconv --enable-opcache --enable-bcmath --enable-ftp --enable-shmop --enable-fpm --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-calendar --enable-zip --enable-mbstring --enable-pdo
make && make install
cd /usr/local/php/etc ; cp php-fpm-default.conf php-fpm.conf
#將user = nobody group = nobody 修改成 user = www group = www //將;pid = run/php-fpm.pid 前面的分號刪掉
cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/lib/php.ini #設置php-fpm開機啓動
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
/etc/init.d/php-fpm start
chkconfig --add php-fpm
service php-fpm start
service php-fpm stop
service php-fpm reload
#配置nginx來驗證php
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/local/nginx/html/;
# index index.html index.htm;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
cd /usr/local/nginx/html ;vim index.php #內容以下
<?php
phpinfo();
?>
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
tar -xf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/libevent.conf
ldconfig
ldconfig –v | grep --color libevent
wget http://memcached.org/files/old/memcached-1.2.7.tar.gz
tar -xf memcached-1.2.7.tar.gz
cd memcached-1.2.7
./configure
make && make install
tomcat --------------------》 192.168.0.11
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.29/bin/apache-tomcat-8.5.29-deployer.tar.gz
ls
tar zxvf jdk-8u152-linux-x64.tar.gz -C /opt
vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_152/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:/usr/local/nginx/sbin:$PATH
:wq
貼上下面的內容主要就是讓tomcat能夠共享session ID,要用到memcache
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --><!-- The contents of this file will be loaded for each web application --> <Context reloadable="false" path=""> <!-- 主要要加上這句話或者乾脆把這個內容直接貼進來 --> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --> <!-- <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> --> <!-- <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.0.10:11211" sticky="false" lockingMode="uriPattern:/path1|/path2" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="5000" copyCollectionsForSerialization="false" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" /> --> <!-- <Context reloadable="false" path="" > <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.1.101:11211,n2:192.168.1.102:11211" sticky="false" sessionBackupAsync="false" lockingMode="auto" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory" /> </Context> --> <Context reloadable="false" path="" > <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.1.101:11211,n2:192.168.1.102:11211"
<!--有安裝多臺memcache的機器的話,這裏的ip指的就是裝有memcache的ip--> sticky="false" sessionBackupAsync="false" lockingMode="auto" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory" /> </Context> </Context>
tar -xf apache-tomcat-8.0.50.tar.gz
mv apache-tomcat-8.0.50 /usr/local/tomcat
tomcat --------------------》 192.168.0.12
export JAVA_HOME=/opt/jdk1.8.0_152/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:/usr/local/nginx/sbin:$PATH
:wq
tar -xf apache-tomcat-8.0.50.tar.gz
mv apache-tomcat-8.0.50 /usr/local/tomcat
參考文獻
https://www.cnblogs.com/zxm0125/p/4402026.html
https://www.cnblogs.com/renjidong/p/7047396.html
https://www.baidu.com/s?wd=tomcat+linux%E9%85%8D%E7%BD%AE&ie=UTF-8
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=memcache%20Connection%20refused&oq=memcache%2520telnet%253A%2520connect%2520to%2520address%2520192.168.0.10%253A%2520%2526lt%253Bonnection%2520refused&rsv_pq=810eb118000325f7&rsv_t=f368%2FK6F%2FUywxCY3GSjWaVbt8BFIpouVN5UsImh%2BACSDut6%2BAkSr0z%2BwQsI&rqlang=cn&rsv_enter=1&rsv_sug3=6&rsv_sug2=0&inputT=177042&rsv_sug4=178595
https://www.cnblogs.com/YingYue/p/5097124.html
http://blog.csdn.net/lzwglory/article/details/46879911
http://wb284551926.iteye.com/blog/2198422