中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Memcached安裝方法

發布時間:2020-07-14 04:23:27 來源:網絡 閱讀:673 作者:bluezombiecn 欄目:web開發

Memcached是一款開源、高性能、分布式內存對象緩存系統,可應用各種需要緩存的場景,其主要目的是通過降低對Database的訪問來加速web應用程序。它是一個基于內存的“鍵值對”存儲,用于存儲數據庫調用、API調用或頁面引用結果的直接數據,如字符串、對象等。

需要說明下他和Memcache的區別,mencache是PHP服務器的一個模塊,用來和Memcached溝通。

數據存儲方式:Slab Allocation

將分配的內存分割成各種尺寸的塊 (chunk),并把尺寸相同的塊分成組 (chunk的集合)

數據過期方式:Lazy Expiration + LRU

Lazy Expiration :memcached內部不會監視記錄是否過期,而是在get時查看記錄的時間戳,檢查記錄是否過期。這種技術被稱為lazy(惰性)expiration。因此,memcached不會在過期監視上耗費CPU時間

LRU:memcached會優先使用已超時的記錄的空間,但即使如此,也會發生追加新記錄時空間不足的情況,此時就要使用名為 Least Recently Used(LRU)機制來分配空間。顧名思義,這是刪除“最近最少使用”的記錄的機制。因此,當memcached的內存空間不足時(無法從slab class 獲取到新的空間時),就從最近未被使用的記錄中搜索,并將其空間分配給新的記錄。一、安裝libevent

一、memcached依賴于libevent API,項目主頁:http://libevent.org/

   1:  # tar xf libevent-2.0.21-stable.tar.gz
   2:  # cd libevent-2.0.21
   3:  # ./configure --prefix=/usr/local/libevent
   4:  # make && make install
   5:   
   6:  # echo "/usr/local/libevent/lib" > /etc/ld.so.conf.d/libevent.conf
   7:  # ldconfig

二、安裝配置memcached

   1:  # tar xf memcached-1.4.15.tar.gz
   2:  # cd memcached-1.4.15
   3:  # ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
   4:  # make && make install

sysv腳本

#!/bin/bash
#
# Init file for memcached
#
# chkconfig: - 86 14
# description: Distributed memory caching daemon
#
# processname: memcached
# config: /etc/sysconfig/memcached

. /etc/rc.d/init.d/functions

## Default variables
PORT="11211"USER="nobody"MAXCONN="1024"CACHESIZE="64"
RETVAL=0
prog="/usr/local/memcached/bin/memcached"desc="Distributed memory caching"lockfile="/var/lock/subsys/memcached"start() {
        echo -n $"Starting $desc (memcached): "
        daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE
        RETVAL=$?
        [ $RETVAL -eq 0 ] && success && touch $lockfile || failure
        echo        return $RETVAL
}

stop() {
        echo -n $"Shutting down $desc (memcached): "
        killproc $prog
        RETVAL=$?
        [ $RETVAL -eq 0 ] && success && rm -f $lockfile || failure
        echo        return $RETVAL
}

restart() {
        stop
        start
}

reload() {
        echo -n $"Reloading $desc ($prog): "
        killproc $prog -HUP
        RETVAL=$?
        [ $RETVAL -eq 0 ] && success || failure
        echo        return $RETVAL
}case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  condrestart)
        [ -e $lockfile ] && restart
        RETVAL=$?
        ;;       
  reload)
        reload
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
   *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        RETVAL=1
esac

exit $RETVAL
賦予執行權限
   1:  # chmod +x /etc/init.d/memcached
   2:  # chkconfig --add memcached
   3:  # service memcached start

三、memcached的常用選項說明

-l <ip_addr>:指定進程監聽的地址;  
-d: 以服務模式運行;  
-u <username>:以指定的用戶身份運行memcached進程;  
-m <num>:用于緩存數據的最大內存空間,單位為MB,默認為64MB;  
-c <num>:最大支持的并發連接數,默認為1024;  
-p <num>: 指定監聽的TCP端口,默認為11211;  
-U <num>:指定監聽的UDP端口,默認為11211,0表示關閉UDP端口;  
-t <threads>:用于處理入站請求的最大線程數,僅在memcached編譯時開啟了支持線程才有效;--enable-threads  
-f <num>:設定Slab Allocator定義預先分配內存空間大小固定的塊時使用的增長因子;  
-M:禁止使用LRU算法;  
-n: 指定最小的slab chunk大小;單位是字節;  
-S: 啟用sasl進行用戶認證;

四、測試

memcached

存儲類命令:set, add, replace, append, prepend

獲取數據類命令:get, delete, incr/decr  
統計類命令:stats, stats items, stats slabs, stats sizes  
清理命令: flush_all

訪問Memcached:telnet 主機名 端口號  
查看總狀態:stats  
查看某項狀態:stats curr_connections

&#160;

&#160;

PS:我看到過有的介紹說是“Memcached單進程最大使用內存為2G,如果想用更多內存,可以用用其他端口再開啟”我沒測試過,寫出來當個備忘。

上面很多內容都引用了了mixi.jp 公司編寫的《Memcached全面剖析》,大家對memcached感興趣請到通過下面鏈接查閱,講解的非常清晰。

http://blog.charlee.li/memcached-pdf/

&#160;


五、為PHP安裝memcache模塊用作和memcached通信

   1:  # tar xf memcache-2.2.5.tgz
   2:  # cd memcache-2.2.5
   3:  /usr/local/php/bin/phpize
   4:  # ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
   5:  # make && make install

編譯后會輸出/path/memcache.so文件,然后在/etc/php.ini中添加此行extension=/path/memcache.so

六、測試php和memcached工作是否成功

<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211)  or die("Could not connect");
#vim memcached.php
$version = $mem->getVersion();
echo "Server's version: ".$version."<br/>\n";

$mem->set('hellokey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server");
echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";

$get_result = $mem->get('hellokey');
echo "$get_result is from memcached server.";         
?>

如果輸出“Hello World is from memcached.”表示成功,反之就不用說了吧!

七、libmemcached工具:

libMemcached則是基于C語言開發的開源的C/C++代碼訪問memcached的庫文件,可以讓memcached和c/c++一起工作。同時它還提供了數個可以遠程使用的memcached管理工具。

安裝:

   1:  # tar xf libmemcached-1.0.2.tar.gz
   2:  # cd libmemcached-1.0.2
   3:  # ./configure
   4:  # make && make install
   5:  # ldconfig
管理工具:
   1:  # memcat --servers=127.0.0.1:11211 mykey
   2:  # memping
   3:  # memslap
   4:  # memstat
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柏乡县| 马龙县| 崇明县| 樟树市| 梁山县| 承德市| 平顺县| 张家口市| 平南县| 新化县| 深圳市| 黎川县| 淳安县| 高碑店市| 曲麻莱县| 耒阳市| 泊头市| 内乡县| 教育| 郯城县| 佛学| 淮南市| 平江县| 蓝田县| 平凉市| 玉田县| 建德市| 德庆县| 桓台县| 寿光市| 崇文区| 太保市| 玛曲县| 洛川县| 美姑县| 城口县| 武胜县| 姜堰市| 同江市| 读书| 尼木县|