Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung von Memcache in der PHP-Datenbank

Verwendung von Memcache in der PHP-Datenbank

墨辰丷
墨辰丷Original
2018-05-18 14:24:261370Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung von Memcache im PHP-Datenbankbetrieb vorgestellt und die Download-, Installations-, Konfigurations- und damit verbundenen Verwendungsfähigkeiten von Memcache anhand von Beispielen detailliert analysiert

Die Details sind wie folgt:

In einer hochgradig gleichzeitigen Webanwendung waren Engpässe beim Datenbankzugriff immer ein großes Problem. Sobald eine bestimmte Grenze erreicht ist, kann die Datenbank jedoch leicht abstürzen in den Speicher geschrieben, kann es bei Bedarf daraus abgerufen werden. Das Abrufen aus dem Speicher beschleunigt nicht nur das Lesen, sondern spart auch Datenbank-IO.

Einführung in Memcache

Memcache ist ein leistungsstarkes verteiltes Speicherobjekt-Cache-System, das einen einheitlichen und riesigen Objekt-Cache im Speicher verwaltet Tabelle, die zum Speichern von Daten in verschiedenen Formaten verwendet werden kann, darunter Bilder, Videos, Dateien und Datenbanksuchergebnisse. Einfach ausgedrückt werden die Daten in den Speicher abgerufen und dann aus dem Speicher gelesen, wodurch die Lesegeschwindigkeit erheblich verbessert wird.

Mem von Memcache ist Speicher, Cache ist Cache und die Kombination bedeutet Speicher-Cache. Wenn wir Memcache verwenden, lesen wir zuerst die Daten aus Memcache. Wenn sie nicht gefunden werden können, durchsuchen wir sie in der Datenbank und speichern die Daten im Memcache, damit sie bei der nächsten Suche leicht gefunden werden können.

Hinweis:

Memcache ist eine In-Memory-Datenbank. Aufgrund der geschlossenen Freigabefunktion des Speichers kann Memcache nicht beibehalten werden . Speicherinhalt;
Memcache wird intern in Blöcken gespeichert, sodass keine Daten gespeichert werden können, die größer als 1 MB sind.
Memcache ist auf die Libevent-Bibliothek angewiesen. Vor der Installation müssen Sie bestätigen, dass die Libevent-Bibliothek installiert wurde.
Memcache ist eine leichte In-Memory-Datenbank, die nur die Speicherung von Schlüsselwerten unterstützt.
Es gibt keine Einstellungen für Benutzer und Passwörter im Memcache, daher müssen Sie den Firewall-Port konfigurieren, um während der Konfiguration Verbindungen einzuschränken, um Sicherheitszwecke zu erreichen.
Mit repcached kann auch die Single-Master-Single-Slave-Master-Slave-Replikation von Memcache problemlos implementiert werden.

Anwendungsszenarien von Memcache

Speichern Sie eine große Datenmenge, die keinen dauerhaften Speicher erfordert oder bereits in der Datenbank vorhanden ist und sich nicht ändert .
Das Lesen von Daten erfolgt sehr häufig und erfordert weniger als 1 Million.
Der Datentyp sind einfache Schlüsselwertdaten.
Die berechneten Ergebnisse und die gerenderte Webseiten-Vorlagendatei.
Aufgrund seiner atomaren inkrementierenden Eigenschaften kann es zum Zählen verwendet werden.
Da die Datenablaufzeit eingestellt werden kann, wird das Ablaufdatum gespeichert. Es ist jedoch zu beachten, dass Memcache den Speicher auf der Grundlage des LRU-Prinzips (Least Recent Used Prinzip) wiederverwendet, wenn der zugewiesene Speicher nicht ausreicht, was dazu führen kann, dass Informationen im Voraus gelöscht werden.
Verwenden Sie Memcache zum Speichern von Sitzungsinformationen, um eine Sitzungsfreigabe auf mehreren Servern zu erreichen. Erforderliche Konfiguration: php.ini:

session.save_handler = memcache //设置session的储存方式为memcache 
memcache.hash_strategy = "consistent"//设置memcache的hash算法为一致性哈希算法。 
session.save_path = "tcp:/ip:port" //设置session储存的位置,多台memcache用逗号隔开。

Installation des Memcache-Servers

Die Installation von Memcache ist einfach. Laden Sie den Server nach dem Dekomprimieren in sein Verzeichnis herunter./configure -prefix=/path und kompilieren Sie ihn anschließend make / make test / make install, um das Ergebnis direkt ausführbarer Binärdateien zu erhalten.

Verwenden Sie den Befehl ./memcached, um den Server zu starten. Die allgemeinen Parameter lauten wie folgt:

-p Port-Listening-Port (Standard: 11211)
-d run Memcached im Hintergrund
-u Benutzername Konto, auf dem Memcached ausgeführt wird
-m n Maximale Speichernutzung, Einheit ist MB, Standard ist 64 MB
-c Verbindungen Maximale Anzahl von Verbindungen, Standard ist 1024

Allgemeine Befehle für Memcache

Nachdem Sie über den Memcache-Client oder Telnet eine Verbindung zum Memcache hergestellt haben, können Sie Memcache bedienen.

Die Memcache-Datenstruktur ist einfach, daher gibt es nur wenige Befehlszeilenbefehle. Hier ist ein allgemeiner Befehl, um das Befehlsformat kurz zu analysieren:

add key flags expire_time length \r\n value

Flags: Ob komprimiert/serialisiert werden soll, normalerweise 0.

expire_time: Wie lange es nach der Lagerung abläuft. Die Einheit ist Sekunden (s), und die maximale Länge beträgt 30 Tage. Die Länge, die 30 Tage überschreitet, wird als Zeitstempel betrachtet, der angibt, wann sie abläuft. Wenn sie auf 0 gesetzt ist, läuft sie nie ab.

Länge: Wertlänge Nachdem Sie die Länge eingegeben und die Eingabetaste gedrückt haben, liest die Befehlszeile die Längenzeichen, die Sie als Nächstes eingeben.

set key flags expire_time length  //如果有值则覆盖原值,没有则新增,add在有值时会存储失败
get key               //获取key的值
replace key flags expire_time length// 替换一个已存在的key
append/preappend key flags expire_time length// 给key的value后面/前面添加新内容。
preappend key flags expire_time length   // 给key的value前面添加新内容。
inc/dec key [n]             //key的值递增/递减1/[n]
delete key               //删除一个key
flush_all [n]              //[在n秒后]删除全部数据
stats [options]             //获取memcache[有关某一项]的详细信息

Memcache-Erweiterung und Anwendung von PHP

unter https://pecl php.net/index.php, um das erforderliche Memcache-Erweiterungspaket zu erhalten.

Wählen Sie unter Linux direkt die herunterzuladende Version aus (die neueste stabile Version wird empfohlen). Verwenden Sie nach der Dekomprimierung das PHPIZE-Tool im Dekomprimierungsverzeichnis, um die Konfigurationsdatei zu generieren und nach der Installation zu verwenden abgeschlossen, Erweiterung in /php.ini hinzufügen. Einzelheiten finden Sie im vorherigen Artikel: http://www.jb51.net/article/121314.htm.

Klicken Sie unter Windows auf den Link „Windows-Logo-DLL“ auf der rechten Seite des Links und wählen Sie auf der neu geöffneten Seite die benötigte Erweiterung je nach Version, 32-Bit/64-Bit, Thread aus -safe/non-thread-safe , spezifische Optionen können auf der phpinfo();-Seite eingesehen werden. Nachdem der Download abgeschlossen ist, legen Sie ihn im Verzeichnis phppath/ext/ ab und fügen Sie dann extension=php_memcacache.dll zu php.ini hinzu. Starten Sie den Server neu, um die Installation abzuschließen.

在phpinfo()页面中看到memcache扩展后,说明安装成功,我们就可以在php脚本中使用关于memcache的类函数库了。

在手册中我们可以找到许多关于php的memcache扩展的使用,以下是一个典型的memcache使用流程。

$m=new Memcache();
$m->connect($host,$port);
$m->add($key,$value[,flags,$expire_time]);
$content=$m->get($key);
$m->close();

这是一个简单的memcache连接程序,在进行memcache分布式存储时,还需要用到$memcache->addServer()向memcache集群中添加服务器。

相关推荐:

ThinkPHP框架中使用Memcached缓存数据步骤详解

ThinkPHP框架中使用Memcached缓存数据的方法

php-memcached扩展安装

Das obige ist der detaillierte Inhalt vonVerwendung von Memcache in der PHP-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn