亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Memcache服務搭建

發布時間:2020-06-24 09:28:19 來源:網絡 閱讀:273 作者:jjjssswww 欄目:數據庫

Memcache

  Memcache的作用網上資料都講的很好,說簡單點就是減輕讀取數據庫的壓力,原理也很簡單:

  被請求的數據會先到memcache里去取,如果沒有就去數據庫里取,順便給memcache帶一份。

  每次更新數據也先更新memcache里的數據,如果沒有則更新數據庫,同時更新memcache。

  因此需要注意的是這個數據是易失去性存儲的。

 

模式和端口

  Memcache是一個基于C/S的結構:

      服務端:使用Memcached軟件

  客戶端:使用Memcache插件 (這個插件是結合后端語言比如php python java)

  服務端口:11211(可改)

 

軟件清單:

  libevent依賴庫      http://www.libevent.org/   

  memcache插件       http://pecl.php.net/package/memcache/

  memcached服務              http://www.memcached.org/

  lamp環境           yum -y install httpd php php-mysql mysql-server

      操作系統                          CentOS-6.5(x86_64)

 

 

1.將上傳相關軟件包,安裝lamp環境

      yum -y install httpd php php-mysql mysql-server      /etc/init.d/httpd start      echo "<?php phpinfo()?>" > /var/www/html/index.php

 

      然后用瀏覽器訪問查看php信息,在信息里面是找不到memcache的

Memcache服務搭建

 

2.安裝libevent插件

  tar xf libevent-2.0.22-stable.tar.gz

  cd libevent-2.0.22-stable

     ./configure --prefix=/usr/local/libevent && make && make install

 

 

3.安裝memcached服務端

Memcache服務搭建

  tar xf memcached-1.4.36.tar.gz

  cd memcached-1.4.36  ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/

  make && make install

Memcache服務搭建

 

  安裝好后會在/usr/local/memcached/bin/目錄下生成memcached

 

4.配置環境變量

Memcache服務搭建

  cd  /etc/profile.d/ 

  vim mem.sh  export PATH="/usr/local/memcached/bin:$PATH"  #寫入profile文件開機自動導入  memcached -m 32 -p 11211 -d -c 8192 -u root   #m分出內存大小 p 端口 d 混合模式 c 最大連接數  netstat -anptu | grep memcached        #查看是否啟動,運行多實例更改端口即可  free -m                      #可以看到內存越來越少,因為被分配出去了  ps -aux | grep memcached            #查看進程pid是多少  kill -9 1234                   #關閉memcached服務

   pkill memcached                  #同上

Memcache服務搭建

 

 

5.memcached使用

  yum -y install nc telnet

     1)使用nc命令連接memcache

   printf "set first 0 30 5\r\nmmmmm\r\n" | nc 127.0.0.1 11211   #存數據 (字段分別為 key,標志,效期,長度,值 )  printf "get first\r\n" | nc 127.0.0.1 11211            #取數據

  2)使用telnet命令連接memcache

  telnet 127.0.0.1 11211    #然后就可以使用相關的memcached命令了

 

6.下面是關于memcached相關的操作命令

  

    add key1 0 30 3    #添加數據30為效期(如果寫0表示永不過期) 3為大小

  set key1 0 30 3    #更新數據,不存在會自動創建

  replace key1 0 30 3  #更新數據,不存在會報錯

  delete key1      #刪除數據

  get key1       #獲取數據

  gets key 1       #獲取更多信息

  stats setting    #查看配置信息

  stats slabs     #查看slab

  stats items     #查看item

  stats size      #查看大小

 

 

7.安裝memcache客戶端php插件

  安裝phpize命令可以為php添加新模塊

  如果不知道是什么包可以使用 yum provides */phpize

Memcache服務搭建

  yum -y install php-devel

  tar xf memcache-2.2.7.tgz

  cd memcache-2.2.7  phpize          #打模塊,生成configure等文件  which php-config      #查看php-config路徑位置  ./configure --enable-memcache --with-php-config=/usr/bin/php-config

  make && make install

Memcache服務搭建

 

  安裝號后模塊會被安裝置/usr/lib64/php/modules/memcache.so

  cd /etc/php.d/

  cp mysql.ini memcache.ini  #vim進行編輯將extension的值設置成memcache.so

 

  重啟服務后可以看到php已經支持了memcache模塊了

  Memcache服務搭建

 

8.后面可以結合php網站測試數據庫相關

  tar xf memcache_page.tar.gz -C /var/www/html/  cd !$

  Memcache服務搭建

  測試頁面有 mysql_connect.php 編輯一下

      Memcache服務搭建

 

  因此需要先把mysql的用戶設置一下

  /etc/init.d/mysqld  start

  mysql_secure_installation

  或者自己在數據庫里

  grant all on *.* to 'root'@'127.0.0.1' identified by '123456'  flush privileges

  然后瀏覽器訪問mysql_connect.php

   Memcache服務搭建

  對接成功

 

  這里可以閱讀read.php和write.php了解memcache的讀寫原理

read.php

Memcache服務搭建

<?php$memcachehost = '192.168.1.113';$memcacheport = 11211;$memcachelife = 60;          #memcache默認有效期$memcache = new Memcache;$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");  #連接memcache服務器$num=$_POST["num"];$db=db1;$tb=T1;$query="select * from $tb where ID=$num";  #mysql查詢語句#$key=md5($query);$key=md5($num);                  #對參數進行加密,可以看出memcache存儲的值是進過加密的if(!$memcache->get($key))            #嘗試先從memcache取值,如果沒有去數據庫取,順便給memcache來一份{                $conn=mysql_connect("127.0.0.1","root","123456");                mysql_select_db($db);                $result=mysql_query($query);#       echo "mysql $num";
                while ($row=mysql_fetch_assoc($result))
                {                        $arr[]=$row;
                }                $f = 'mysql';                $memcache->add($key,serialize($arr),0,30);                $data = $arr ;
}else{        $f = 'memcache';        $data_mem=$memcache->get($key);        $data = unserialize($data_mem);
}echo "$f $num";echo "key is $key";echo "<br>";?>

Memcache服務搭建

 

write.php

Memcache服務搭建

<?php$memcachehost = '192.168.1.113';$memcacheport = 11211;$memcachelife = 60;$memcache = new Memcache;$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");$num=$_POST["num"];$db=db1;$tb=T1;$query="insert into $tb values($num)";#$key=md5($query);$key=md5($num);if(!$memcache->get($key))            //先嘗試更新memcache,如果不存在,則再去更新數據庫,同時更新存儲到memcachce{                $conn=mysql_connect("127.0.0.1","root","123456");                mysql_select_db($db);                $result=mysql_query($query);                while ($row=mysql_fetch_assoc($result))
                {                        $arr[]=$row;
                }                $f = 'mysql';                $memcache->add($key,serialize($arr),0,30);        //mysql 插入成功后,插入 memcached
                $data = $arr ;#}#else{
        $f1 = 'memcache';        $data_mem=$memcache->get($key);        $data = unserialize($data_mem);
}echo "$f $f1 $num";echo "<br>";?>

Memcache服務搭建

 關于php memcache簡單用法參見http://www.cnblogs.com/demonxian3/p/6868361.html

 上面兩個php里可以看到調用了數據庫的db1 和 表T1因此需要創建一下

  seq 1 999 > /tmp/sum  #創建1-999的測試數據

 

  連接數據庫導入數據

  create database db1; create T1(id int)engine=innodb;  load data infile '/tmp/sum' into table T1;  #導入測試數據

  科普一下:使用history查看歷史命令,輸入!+數字可以執行編號的那條命令

  !111

 

  用瀏覽器來訪問那個測試頁面

  Memcache服務搭建

 

   測試讀取數據,從數據庫里查詢出id為5的值

     Memcache服務搭建

     Memcache服務搭建

  后退再去取一次

    Memcache服務搭建

  測試寫入數據

    Memcache服務搭建

    Memcache服務搭建

  最后給大家推薦一款很好用的memcache管理工具:memadmin    php寫的


向AI問一下細節

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

AI

天台县| 虹口区| 惠东县| 阿拉善右旗| 武城县| 拜城县| 蒲江县| 鄂伦春自治旗| 龙江县| 阿克苏市| 罗城| 大宁县| 贺州市| 蒙阴县| 横山县| 甘洛县| 溧水县| 永仁县| 垣曲县| 卓资县| 门源| 固安县| 通辽市| 丽水市| 宿迁市| 达拉特旗| 华安县| 西丰县| 九台市| 油尖旺区| 拉萨市| 信宜市| 汕头市| 大同市| 忻城县| 阳江市| 鸡泽县| 衡东县| 景泰县| 广安市| 河东区|