dat14-memcached
傳統WEB架構問題
許多WEB應用都將數據保存到RDBMS中,應用服務器從讀取數據并在瀏覽器中顯示
隨著數據量的增大、訪問的集中,就會出現RDBMS的負擔加重、數據庫響應惡化、網站顯示延遲等重大影響
數據存儲位置對比
性能(從速度來講)
CPU緩存>內存>磁盤>數據庫
價格
CPU緩存>內存>磁盤>數據庫
? ?
數據分析,處理的能力較強,從性能是最慢的
哪些數據存儲在內存里
讀寫頻率高的數據
經常變化的數據
盡快被保存的數據
? ?
memcached是高性能的分布式緩存服務器
一般使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態WEB應用的速度
減少數據訪問次數,提高動態WEB應用的速度
特征
協議簡單
基于libevent的事件處理
內置內存存儲方式
memcached不互相通信的分布式
? ?
內存管理機制
memcached基于內存,內存管理機制為Slab
傳統內存分配機制
使用完通過分配的內存后回收內存。這種方式容易產生內存。這種方式容易產生內存碎片并降低操作系統對內存的管理效率
Slab Allocation機制
它按照預先規定的大小,將分配的內存分割成特定長度的內存塊(chunk),再把尺寸相同的內存塊分成組(chunk集合),這些內存塊不會釋放,可以重復利用。
?
選項
-p????指定memcached監聽的端口號,默認為11211
-l????memcached服務器的ip地址
-u????memcached程序運行時使用的用戶身份必須是root用戶
-m????指定使用本機的多少物理內存數據,默認為64M
-c????memcached服務的最大鏈接數
-vvv????顯示詳細信息
-n??? 間是多少 單位 字節
-f????chunk size 大小增長的倍數,默認1.25倍
-d????在后臺啟動
? ?
telnet測試memcached
memcached常用指令
add name 0 180 10????????//變量不存在則添加(0是不壓縮)(180是秒)(10是10個字節)
set name 0 180 10????????//添加或替換變量
replace name 0 180 10????????//替換
get name????????//讀取變量
append name 0 180 10????????//向變量追加數據
del name????????//刪除變量
stats????????//查看狀態
flush_all????????//清空所有
? ?
memcached緩存刷新
時間過期
服務重啟
計算機重啟
空間不足
? ?
PHP5.3.3 之后支持PHP-FPM
? ?
安裝LNMP
?
?
tar xf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make && make install
ln -sv /usr/local/lib/libevent* /usr/lib
?
tar xf memcached-1.4.31.tar.gz
cd memcached-1.4.31
./configure
./configure --with-php-config=/usr/local/php5/bin/php-config --enable-memcache????????php支持
make && make install
?
[root@localhost ~]# memcached -p 11211 -uroot -m 64 -c 200 -vvv -n 4 -f 2 –d
slab class 1: chunk size 56 perslab 18724
slab class 2: chunk size 112 perslab 9362
slab class 3: chunk size 224 perslab 4681
slab class 4: chunk size 448 perslab 2340
slab class 5: chunk size 896 perslab 1170
slab class 6: chunk size 1792 perslab 585
slab class 7: chunk size 3584 perslab 292
slab class 8: chunk size 7168 perslab 146
slab class 9: chunk size 14336 perslab 73
slab class 10: chunk size 28672 perslab 36
slab class 11: chunk size 57344 perslab 18
slab class 12: chunk size 114688 perslab 9
slab class 13: chunk size 229376 perslab 4
slab class 14: chunk size 458752 perslab 2
slab class 15: chunk size 1048576 perslab 1
<26 server listening (auto-negotiate)
<27 server listening (auto-negotiate)
<28 send buffer was 229376, now 268435456
<32 send buffer was 229376, now 268435456
<30 server listening (udp)
<28 server listening (udp)
<34 server listening (udp)
<29 server listening (udp)
<31 server listening (udp)
<32 server listening (udp)
<35 server listening (udp)
<33 server listening (udp)
?
[root@localhost ~]# netstat -antup |grep memcached
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 130347/memcached
tcp 0 0 :::11211 :::* LISTEN 130347/memcached
udp 0 0 0.0.0.0:11211 0.0.0.0:* 130347/memcached
udp 0 0 :::11211 :::* 130347/memcached
?
vim /usr/local/php5/etc/php.ini
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226"
extension=modulename.so
?
?
?
?
轉載于:https://www.cnblogs.com/fina/p/5895045.html
總結
以上是生活随笔為你收集整理的dat14-memcached的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net 实现Cookie跨域共享,单点
- 下一篇: Coding-Job:从研发到生产的容器