Memcached&PHP-Memcache安裝配置

来源:http://www.cnblogs.com/netonline/archive/2017/11/08/7805900.html
-Advertisement-
Play Games

參考文檔: 本文簡單介紹memcached伺服器端的安裝配置,與php-memcache客戶端連接伺服器端的配置與操作。 一.簡介 1. 簡介 Memcached是一款開源、高性能、分散式記憶體對象緩存系統,可應用各種需要緩存的場景,其主要目的是通過降低對Database的訪問來加速web應用程式。 ...


參考文檔:

  1. memcache官網:https://memcached.org/
  2. 參考:http://www.runoob.com/memcached/memcached-install.html
  3. 參考:http://xslwahaha.blog.51cto.com/4738972/1627129 

本文簡單介紹memcached伺服器端的安裝配置,與php-memcache客戶端連接伺服器端的配置與操作。

一.簡介 

1. 簡介

Memcached是一款開源、高性能、分散式記憶體對象緩存系統,可應用各種需要緩存的場景,其主要目的是通過降低對Database的訪問來加速web應用程式。

Memcached一般的使用場景是:通過緩存資料庫查詢的結果,減少資料庫訪問次數,以提高動態Web應用的速度、提高可擴展性。

本質上,memcached是一個基於記憶體的key-value存儲,用於存儲資料庫調用、API調用或頁面引用結果的直接數據,如字元串、對象等小塊任意數據。

工作流程如下:

2. 註意點

  1. 簡單key-value存儲:伺服器不關心數據本身的意義及結構,只要是可序列化數據即可;存儲項由"鍵、過期時間、可選的標誌及數據"四個部分組成。
  2. 功能實現一半依賴於客戶端,一半基於伺服器端:客戶端負責發送存儲項至伺服器端、從服務端獲取數據以及無法連接至伺服器時採用相應的動作;服務端負責接收、存儲數據,並負責數據項的超時過期。
  3. Memcached雖然是"分散式"緩存伺服器,但伺服器端並沒有分散式功能,即不在伺服器間進行數據同步及共用信息,"分散式"完全取決於客戶端的實現。
  4. 清理超期數據:預設情況下,Memcached是一個LRU緩存,同時按事先預訂的時長清理超期數據;但事實上,memcached不會刪除任何已緩存數據,只是在其過期之後不再為客戶所見;而且,memcached也不會真正按期限清理緩存,而僅是當get命令到達時檢查其時長。 

二.環境

1. OS 

Server:CentOS-7-x86_64-1511

IP:10.11.4.190 

2. Memcached版本

 

1)libevent

libevent-2.1.8

官網:http://libevent.org/

下載:http://ftp.lfs-matrix.net/pub/blfs/conglomeration/libevent/

2)memcached

memcached-1.4.39

官網:https://memcached.org/

下載:https://memcached.org/files/memcached-1.4.39.tar.gz

三.安裝Memcached伺服器

Memcached伺服器端的安裝相對簡單。 

1. 安裝libevent

#Memcached依賴於libevent API,libevent是個程式庫,它將Linux的epoll、BSD類操作系統的kqueue等事件處理功能封裝成統一的介面,即使對伺服器的連接數增加,也能發揮O(1)的性能
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://ftp.lfs-matrix.net/pub/blfs/conglomeration/libevent/libevent-2.1.8-stable.tar.gz
[root@memcached src]# tar -zxvf libevent-2.1.8-stable.tar.gz
[root@memcached src]# cd libevent-2.1.8-stable
[root@memcached libevent-2.1.8-stable]# ./configure --prefix=/usr/local/libevent
[root@memcached libevent-2.1.8-stable]# make
[root@memcached libevent-2.1.8-stable]# make install

#測試是否安裝成功
[root@memcached libevent-2.1.8-stable]# ll /usr/local/libevent/lib/ | grep libevent

2. 安裝memcached

[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# tar -zxvf memcached-1.4.39.tar.gz.tar
[root@memcached src]# cd memcached-1.4.39
#註意編譯前,生成Makefile文件時,libevent的路徑 [root@memcached memcached-1.4.39]# ./configure --prefix=/usr/local/memcached -with-libevent=/usr/local/libevent [root@memcached memcached-1.4.39]# make [root@memcached memcached-1.4.39]# make install 

3. 設置環境變數

#簡單通過軟鏈接的方式設置環境變數
[root@memcached ~]# ln -s /usr/local/memcached/bin/* /usr/local/bin/ 

4. 設置iptables

#tcp11211埠是memcached預設監聽埠
[root@memcached ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT

[root@memcached ~]# service iptables restart 

5. 啟動

[root@memcached ~]# /usr/local/memcached/bin/memcached -d -m 256 -u root -l 10.11.4.190 -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid

參數說明:
-d:啟動一個守護進程,如果前臺運行,配合-vv參數,可查看調試信息(主要是存儲的信息);
-m:分配給memcached使用的記憶體數量,單位是MB;
-u:運行memcached的用戶,比如root或者memcached,建議採用非root賬號;
-l:伺服器監聽地址,不設置時預設監聽本地所有IP地址;
-p:設置memcached的監聽埠,預設為11211;
-c:設置最大併發連接數,預設是1024;
-P:設置保存memcached的pid文件;
-v:輸出警告和錯誤信息;
-vv:列印客戶端的請求和返回信息;
-h:列印幫助信息;
-i:列印memcached和libevent的版權信息。

6. 驗證 

1)埠

[root@memcached ~]# netstat -tunlp

2)telnet連接

#可以通過telnet連接memcached伺服器進行數據存儲,及數據獲取;
#詳細的memcached的命令可參考:http://blog.mimvp.com/2015/01/memcache-start-telnet-command-xiangjie/;
#以下紅色字體是命令輸入,截圖可見命令輸入與回顯
[root@memcached ~]# telnet 10.11.4.190 11211
version            #查看版本
set test 0 0 5     #設置”key”, <command name> <key> <flags> <exptime> <bytes>
mymem              #輸入“value”值,<data block>,位元組數與key中的設的“bytes”相同
get test           #獲取已設的key的數據
quit               #退出

7. 設置開機啟動

[root@memcached ~]# vim /etc/rc.d/init.d/memcached

#!/bin/sh
#
# memcached: MemCached Daemon
#
# chkconfig: - 90 25
# description: MemCached Daemon
#
# Source function library.

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

#註意:可執行文件路徑根據情況調整
MEMCACHED="/usr/local/memcached/bin/memcached"

start()
{
echo -n $"Starting memcached: "
#註意:參數根據情況調整
daemon $MEMCACHED -u root -d -m 256 -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid
echo
}

stop()
{
echo -n $"Shutting down memcached: "
killproc memcached
echo
}

[ -f $MEMCACHED ] || exit 0

# See how we were called.
case "$1" in
start)
start
;;

stop)
stop
;;

restart|reload)
stop
start
;;

condrestart)
stop
start
;;

*)

echo $"Usage: $0 {start|stop|restart|reload|condrestart}"
exit 1
esac
exit 0

[root@memcached ~]# chmod 775 /etc/rc.d/init.d/memcached
[root@memcached ~]# chkconfig --level 35 memcached on

四.安裝配置基於PHP的客戶端

Memcache支持多客戶端,如perl,php,python,c/c++等等,這裡主要基於php配置。

其中nginx與php的詳細配置請見:http://www.cnblogs.com/netonline/p/7327409.html 

1. 安裝配置nginx

#nginx版本:1.12.0

#創建用戶
[root@memcached ~]# groupadd www
[root@memcached ~]# useradd -g www -s /sbin/nologin www

#安裝依賴包
[root@memcached ~]# yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

#編譯安裝
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://nginx.org/download/nginx-1.12.0.tar.gz
[root@memcached src]# tar -zxvf nginx-1.12.0.tar.gz
[root@memcached src]# cd nginx-1.12.0
[root@memcached nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
[root@memcached nginx-1.12.0]# make
[root@memcached nginx-1.12.0]# make install

#修改用戶/組
[root@memcached nginx-1.12.0]# chown -R www:www /usr/local/nginx

#設置開機啟動
[root@memcached ~]# vim /etc/rc.d/init.d/nginx
[root@memcached ~]# chown www:www /etc/rc.d/init.d/nginx 
[root@memcached ~]# chmod 775 /etc/rc.d/init.d/nginx
[root@memcached ~]# chkconfig --level 35 nginx on

#啟動
[root@memcached ~]# service nginx start

2. 安裝配置php

#php版本:5.6.31

#安裝依賴包
[root@memcached ~]# yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel xml2 xml2-devel openssl openssl-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl libcurl-devel gdbm-devel db4-devel libXpm libXpm-devel libX11 libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

#編譯安裝libmcrypt庫,
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@memcached src]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@memcached src]# cd libmcrypt-2.5.8   
[root@memcached libmcrypt-2.5.8]# ./configure
[root@memcached libmcrypt-2.5.8]# make
[root@memcached libmcrypt-2.5.8]# make install

#編譯安裝php
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://php.net/distributions/php-5.6.31.tar.bz2
[root@memcached src]# tar -jxvf php-5.6.31.tar.bz2
[root@memcached src]# cd php-5.6.31
[root@memcached php-5.6.31]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql --with-pdo-mysql --with-mysqli --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-mhash --with-mcrypt --with-bz2 --enable-zip --with-curl --with-gettext --with-iconv --with-xmlrpc --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --enable-pdo --enable-libxml --enable-xml --enable-soap --enable-session --enable-ctype --enable-ftp --enable-bcmath --enable-shmop --enable-inline-optimization --enable-opcache --enable-mbregex --enable-pcntl --enable-cgi --enable-wddx
[root@memcached php-5.6.31]# make
[root@memcached php-5.6.31]# make install

#php.ini文件
[root@memcached ~]# cp /usr/local/src/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini
[root@memcached ~]# ln -s /usr/local/php/etc/php.ini /etc/php.ini

#php-fpm.conf文件,取消”;pid = run/php-fpm.pid”的註釋,同時修改運行賬號通nginx服務的運行賬號一致
[root@memcached ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@memcached ~]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
[root@memcached ~]# sed -i 's|;pid = run/php-fpm.pid|pid = run/php-fpm.pid|g' /usr/local/php/etc/php-fpm.conf
[root@memcached etc]# sed -i 's|user = nobody|user = www|g' /usr/local/php/etc/php-fpm.conf
[root@memcached etc]# sed -i 's|group = nobody|group = www|g' /usr/local/php/etc/php-fpm.conf

#設置開機啟動
[root@memcached ~]# cp /usr/local/src/php-5.6.31/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chown www:www /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chmod 755 /etc/rc.d/init.d/php-fpm
[root@memcached ~]# chkconfig --level 35 php-fpm on

#設置nginx支持php
[root@memcached ~]# vim /usr/local/nginx/conf/nginx.conf
#第2行,取消user的註釋,修改運行賬號為www www,與/usr/local/php/etc/php-fpm.d/www.conf中的user/group配置一致
user www www;
#第45行,添加index.php
index index.html index.htm index.php;
#第65~71行,取消FastCGI server部分location的註釋;註意fastcgi_param行的參數,改為$document_root$fastcgi_script_name,或者使用絕對路徑
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

#驗證測試
[root@memcached ~]# echo -e "<?php\nphpinfo();\n?>" > /usr/local/nginx/html/index.php
[root@memcached ~]# chown -R www:www /usr/local/nginx/html/
[root@memcached ~]# chmod -R 700 /usr/local/nginx/html/
[root@memcached ~]# service nginx restart
[root@memcached ~]# service php-fpm start 

3. 安裝libmemcached 

#memcached在1.2.4版本(含)以上增加了CAS(Check and Set)協議,即對同一key的多進程的併發處理問題;
#類比資料庫,如果同時有多個進程對同一張表的同一數據進行更新,資料庫可以鎖定整張表,也可以鎖定表內某一行數據,memcached的CAS功能與此相似;
#但php-memcache擴展不支持CAS,需要先安裝php-memcached擴展(註意與php-memcache擴展的區別),php-memcached擴展基於libmemcached,所以要先安裝libmemcached,即php-memcached的庫。

#libmemcached版本:1.0.18
#https://launchpad.net/libmemcached/+download
#下載libmemcached [root@memcached ~]# cd /usr/local/src/ [root@memcached src]# wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz #編譯安裝,生成Makefile文件時,切記“--with-memcached”參數 [root@memcached src]# tar -zxvf libmemcached-1.0.18.tar.gz.tar [root@memcached src]# cd libmemcached-1.0.18 [root@memcached libmemcached-1.0.18]# ./configure --prefix=/usr/local/libmemcached --with-memcached [root@memcached libmemcached-1.0.18]# make [root@memcached libmemcached-1.0.18]# make install 

4. 安裝php-memcached

#php-memcached版本:2.2.0(3.0.0及以上版本針對php7.0及以上版本)
#http://pecl.php.net/package/memcached

#php擴展分原生擴展與第三方擴展,在php的源碼解壓包下的“ext/”目錄下可查看所有的原生擴展,php-memcached及php-memcache屬於第三方擴展。

#下載php-memcached
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://pecl.php.net/get/memcached-2.2.0.tgz

#編譯安裝
#phpize: 用於擴展php模塊,通過phpize可以建立php的外掛模塊
#--enable-memcached: 配置編譯環境,編譯器編譯php源碼時使能相應擴展
#--with-php-config:指定php-config文件路徑
#--with-libmemcached-dir:指定libmemcached安裝目錄
#--disable-memcached-sasl:去使能sasl認證,因為沒有預安裝相應功能
#make:把源碼編譯成xxxxx.so文件
#make install: 把xxxxx.so文件移動到當前安裝php的擴展目錄
[root@memcached src]# tar -zxvf memcached-2.2.0.tgz
[root@memcached src]# cd memcached-2.2.0
[root@memcached memcached-2.2.0]# /usr/local/php/bin/phpize 
[root@memcached memcached-2.2.0]# ./configure --enable-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
[root@memcached memcached-2.2.0]# make
[root@memcached memcached-2.2.0]# make install

5. 安裝php-memcache

#php-memcached版本:2.2.7(stable version)
#http://pecl.php.net/package/memcache

#下載php-memcache
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://pecl.php.net/get/memcache-2.2.7.tgz

#編譯安裝
[root@memcached src]# tar -zxvf memcache-2.2.7.tgz
[root@memcached src]# cd memcache-2.2.7
[root@memcached memcache-2.2.7]# /usr/local/php/bin/phpize 
[root@memcached memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
[root@memcached memcache-2.2.7]# make
[root@memcached memcache-2.2.7]# make install 

6. 安裝php-intl(原生擴展樣例,非必須項)

#php-intl版本:3.0.0
#http://pecl.php.net/package/intl

#php-intl是php國際化擴展,是ICU庫的一個包裝器,安裝php-intl擴展前要先安裝ICU庫
[root@memcached ~]# yum install -y icu libicu libicu-devel

#下載php-intl;
#通過查看php源碼解壓包下的“ext/”目錄,php-intl屬於原生擴展,理論上可以不用下載,直接在“ext/”下相應擴展目錄下編譯安裝即可;
[root@memcached ~]# cd /usr/local/src/
[root@memcached src]# wget http://pecl.php.net/get/intl-3.0.0.tgz

#編譯安裝
[root@memcached src]# tar -zxvf intl-3.0.0.tgz
[root@memcached src]# cd intl-3.0.0
[root@memcached intl-3.0.0]# /usr/local/php/bin/phpize 
[root@memcached intl-3.0.0]# ./configure --enable-intl --with-php-config=/usr/local/php/bin/php-config
[root@memcached intl-3.0.0]# make
[root@memcached intl-3.0.0]# make install

 

7. 啟用擴展

php啟用擴展有2種方式(本文介紹方式1):

  1. 直接在php.ini文件中添加擴展如“extension = xxx.so”
  2. 單獨創建ini文件,然後php.ini調用這些創建的文件即可(可通過php5enmod工具支持或者手工配置)
#修改php.ini,添加擴展,可在第732行後添加擴展(非必須);
#第732行的”extension_dir”路徑修改為絕對路徑(非必須,相對路徑也可),即以上各擴展“make install”之後的安裝路徑
[root@memcached ~]# vim /usr/local/php/etc/php.ini [Intl] extension = intl.so [Memcached] extension = memcached.so [Memcache] extension = memcache.so [root@memcached ~]# service php-fpm restart 

8. 驗證擴展是否安裝成功

#查看擴展模塊方式
[root@memcached ~]# /usr/local/php/bin/php -m | grep -E 'memcache|intl'

#phpinfo()方式,利用前面已經生成的index.php文件即可
http://10.11.4.190/index.php

9. php-memcache訪問memcached伺服器

#修改index.php
[root@memcached ~]# cd /usr/local/nginx/html/
[root@memcached html]# cp index.php index.php.bak
[root@memcached html]# echo "" > index.php
[root@memcached html]# vim index.php

<?php
$memcache = new Memcache;                                            #創建一個memcache對象
$memcache->connect('localhost', 11211) or die ("Could not connect"); #連接memcached伺服器
$memcache->set('key', 'memcache-test');                              #設置1個變數到記憶體中,key=key, value=memcache-test
$get_value = $memcache->get('key');                                  #從記憶體取出key的value
echo $get_value;                                                     #回顯
?> 

瀏覽器訪問:http://10.11.4.190/index.php


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 因為項目用到Datatables發現在分頁特別多時無法跳轉到指定頁,自己動手增加了#Datatables 跳轉到指定頁#功能,實現代碼如下: ...
  • Vue官網: https://cn.vuejs.org/v2/guide/forms.html#基礎用法 【入門系列】 (一) http://www.cnblogs.com/gdsblog/p/7804785.html (二) http://www.cnblogs.com/gdsblog/p/780 ...
  • SQL Server In-Memory OLTP Internals for SQL Server 2016 這份白皮書是在上一份《SQL Server In-Memory OLTP Internals Overview》基礎上的,很多東西都是一樣的不再介紹,只介紹不相同的部分。 行和索引存儲 R ...
  • select '['+title_a+','+title_b +']' from A for xml path('') SELECT *, (select '['+title_a+','+title_b +']' from A where A.t_id=B.t_id for xml path('') ...
  • 瞭解RDS的概念 這也是第一條,也是最重要的一條,在使用某項產品和服務之前,首先要瞭解該產品或服務的功能與限制,就像你買一個冰箱或洗衣機,通常也只有在閱讀完說明書之後才能利用起來它們的所以功能,以及使用時的註意事項,RDS for SQL Server也是如此。 RDS for SQL Server ...
  • Table of Contents 1. 註意事項 2. 前期準備 3. 常用參數及示例 4. 常用語句示例 5. 互動式命令 6. 技巧 6.1. 不生成文件直接導入目標資料庫 6.2. 通過shell腳本自動導入 6.3. 如何導出數百張表 1 註意事項 檢查資料庫版本(用於決定導出時生成為哪個 ...
  • 第一章:數據類型數值類型(整數類型、浮點數類型)日期時間類型字元串和二進位類型其他數據類型 *數值類型包括整數型和浮點型。 整數型數據:只能存儲整數!最常用的整型數據類型是INT型。 浮點型數據:可以存儲整數和小數,但都帶有小數點。最常用的浮點型數據類型是FLOAT型。*日期時間類型: 日期型:用於 ...
  • 重設密碼的方法: 具體方法是: 1.先在安裝目錄找到my.ini配置文件,打開配置文件, 找到[mysqld]一行,在下麵添加skip-grant-tables後保存該文件 重新啟mysql動服務; 2.然後在mysql的cmdline執行mysql -u root mysql, mysql>use ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...