Detaillierte Erläuterung der Verwendung von Cache() im kohärenten Datenbankbetrieb des ThinkPHP5-Frameworks

jacklove
Freigeben: 2023-04-02 08:32:02
Original
2079 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Verwendung von Cache () im kohärenten Betrieb der ThinkPHP5-Framework-Datenbank vorgestellt. Er analysiert die Anwendungsszenarien des Caches in ThinkPHP5 in Form von Beispielen und die Betriebsfähigkeiten wie das Festlegen, Aktualisieren und Löschen Cache im kohärenten Betrieb. Freunde, die es brauchen Sie können sich auf Folgendes beziehen:

Dieser Artikel beschreibt die Verwendung von Cache() für kohärente Operationen der thinkPHP5-Framework-Datenbank. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Einführung

Das Cache-System, das mit TP5 geliefert wird, ist ein Dateityp Cache. Das heißt, Dateicache. Die Speicheradresse lautet: Stammverzeichnis..runtimecache (das Stammverzeichnis bezieht sich auf öffentlich).

Im Vergleich zu Redis weist dieses Cache-System definitiv Einschränkungen im Memcached auf, und die Komplexität automatischer Aktualisierungen und zwischengespeicherter Daten ist unterschiedlich. Für einige einfache Fragen ist es jedoch sehr hilfreich. Beispielsweise sind Artikel und andere Inhalte gut zu verwenden.

Cache kann für Auswahl-, Such-, Wert- und Spaltenmethoden sowie deren Ableitungsmethoden verwendet werden. Nach Verwendung der Cache-Methode wird der Datenbankabfragevorgang innerhalb des Cache-Gültigkeitszeitraums nicht erneut ausgeführt Daten im Cache werden direkt abgerufen. Informationen zu den Typen und Einstellungen des Datencaches finden Sie im Abschnitt „Cache“.

Speichercache

1. Einfache Speicherung

//查询news表中id=10的新闻存储于cache中,写true默认读取配置的中缓存时间,db():助手函数
db('news')->cache(true)->find(10);
//你也可以自定义时间,60秒表示
db('news')->cache(true,60)->find(10);
Nach dem Login kopieren

2 . Geben Sie die Cache-ID an

//缓存标识可以理解为键,就是当你想要去取出缓存中的某条数据的令牌,id=15的存进cache并且给定下标为key
db('news')->cache('key')->find(15);
//当你想要去取出id=15的这条数据时候
$data = \think\Cahce::get('key');
Nach dem Login kopieren

Sie können diese Daten überall lesen, ähnlich wie bei session()

3. Die Cache-Methode unterstützt das Festlegen des Caches Tags

db('news')->cache('key',60,'tagName')->find(15);
Nach dem Login kopieren

Cache wird aktualisiert

Sehen Sie es sich jetzt so an. Es liegt ein Problem vor . Wenn Ihr Projekt über einen längeren Zeitraum ausgeführt wird, werden immer mehr Cache-Dateien generiert. Die Zeit, die beim Suchen von Cache-Dateien verschwendet wird, ist möglicherweise langsamer als beim direkten Abfragen der Datenbank. Was zu tun?

TP5 verfügt über eine automatische Cache-Aktualisierungsmethode. Das heißt, wenn dieselben Daten gelöscht oder aktualisiert werden, wird die alte Cache-Datei automatisch gelöscht.

//查询id=328的存进cache
$list = db('news')->cache(true)->find(328);
//现在进行测试下,你手动去数据库修改id=328的某个字段的值,然后再次进行第一次的查询请求发现数据库修改的字段没变,这时候就是读取的缓存,然后
db('news')->update(['id'=>328,'title'=>'测试']);
//这时候你再次请求会发现获取的数据改变了 ,这时候不再是读取的缓存,因为你做了更新操作,重新写进缓存了,当然,以上说的这种情况前提是使用的主键查询的
Nach dem Login kopieren

Artikel, die Sie interessieren könnten:

thinkPHP3.2 implementiert Paging-Custom-Style-Methodenerklärung

Laravel-Framework + Blob-Implementierung einer Multi-Image-Upload-Funktion, BeispiellösungAnalyse

Swoole 1.10 . 0 neue Version veröffentlicht, die eine Reihe neuer Funktionsanalysen hinzufügt

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von Cache() im kohärenten Datenbankbetrieb des ThinkPHP5-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage