Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護進程通信。
實驗環境:
在centos7環境下
jdk版本:1.8
因爲是基於libevent的事件處理,所以先安裝libevent
yum -y install gcc libevent libevent-devel
安裝memcached緩存服務器
wget http://memcached.org/files/memcached-1.5.7.tar.gz tar -zxvf memcached-1.5.7.tar.gz cd memcached-1.5.7 ./configure --prefix=/data/soft/memcached && make && make install
編譯安裝過程如下
./configure --prefix=/data/soft/memcached && make && make install
啓動服務
bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 322054 -c 1024 #選項說明,這裏只列出比較重要的選項,具體選項說明使用memcached -h來查閱 -p TCP端口,默認爲11211,可以不設置 -U UDP端口,默認爲11211,0爲關閉 -l 監聽的ip地址 -d 守護進程(daemon) -u 指定用戶,如果當前爲 root ,需要使用此參數指定用戶 -m 最大內存,單位MB。默認64MB,32位操作系統,每個進程最多隻能使用2GB,64位無限制 -M 禁止LRU策略,內存耗盡時返回錯誤,而不是刪除數據 -c 最大連接數,默認是1024 -vv 查看日誌 -P memcache的pid文件,結束memcache進程:kill `cat /tmp/memcached_32054.pid` -f 增長因子,默認1.25 -n 初始chunk=key+suffix+value+32結構體,默認48字節 -L 啓用大內存頁,可以降低內存浪費,改進性能 -t 線程數,默認4。由於memcached採用NIO,所以更多線程沒有太多作用 -R 每個event連接最大併發數,默認20 -C 禁用CAS命令(可以禁止版本計數,減少開銷) -I 每次申請內存的頁的大小(page),默認1M,最小1k,最大128M -F 禁用flush_all
查看進程
很多種方式可以查看
第一種
pgrep memcached 34953
第二種
ps -ef |grep memcached root 34953 1 0 14:31 ? 00:00:00 bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 3456 -c 1024 root 34990 5190 0 14:32 pts/1 00:00:00 grep --color=auto memcached
第三種
ps -aux | grep memcached root 34953 0.0 0.0 413808 1080 ? Ssl 14:31 0:00 bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 3456 -c 1024 root 35115 0.0 0.0 112680 976 pts/1 R+ 14:34 0:00 grep --color=auto memcached
安裝telnet遠程協助,基本上是自己的服務端安裝telnet-server,客戶端安裝telnet-client,我爲了方便,將軟件安在一臺服務器上,直接 yum安裝
yum -y install telnet telnet-server
使用telnet測試說明
telnet localhost 3456 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. stats STAT pid 34953 STAT uptime 851 STAT time 1524206745 STAT version 1.5.7 STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 0.049797 STAT rusage_system 0.161840 STAT max_connections 1024 STAT curr_connections 1 STAT total_connections 4 STAT rejected_connections 0 STAT connection_structures 2 STAT reserved_fds 20 STAT cmd_get 0 STAT cmd_set 2 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 0 STAT get_misses 0 STAT get_expired 0 STAT get_flushed 0 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 178 STAT bytes_written 2129 STAT limit_maxbytes 1073741824 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT time_in_listen_disabled_us 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT slab_reassign_rescues 0 STAT slab_reassign_chunk_rescues 0 STAT slab_reassign_evictions_nomem 0 STAT slab_reassign_inline_reclaim 0 STAT slab_reassign_busy_items 0 STAT slab_reassign_busy_deletes 0 STAT slab_reassign_running 0 STAT slabs_moved 0 STAT lru_crawler_running 0 STAT lru_crawler_starts 1275 STAT lru_maintainer_juggles 1014 STAT malloc_fails 0 STAT log_worker_dropped 0 STAT log_worker_written 0 STAT log_watcher_skipped 0 STAT log_watcher_sent 0 STAT bytes 65 STAT curr_items 1 STAT total_items 1 STAT slab_global_page_pool 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT evicted_active 0 STAT evictions 0 STAT reclaimed 0 STAT crawler_reclaimed 0 STAT crawler_items_checked 0 STAT lrutail_reflocked 0 STAT moves_to_cold 1 STAT moves_to_warm 0 STAT moves_within_lru 0 STAT direct_reclaims 0 STAT lru_bumps_dropped 0 END
停止服務
kill -9 進程號
好了,這就是簡單的memcached的安裝方式,我本着簡化,直接,方便的原則,參考網上各位大神的筆記心得,希望大家能夠喜歡!!