Heim Datenbank MySQL-Tutorial memcached几个容易被忽略但非常有用的命令

memcached几个容易被忽略但非常有用的命令

Jun 07, 2016 pm 03:58 PM
memcached mehrere 命令 Vernachlässigung Gebraucht

最近通读了一遍memcached的源码,在这个过程中发现了许多memcached平时没有注意不常用到的命令,但是经常在使用或运维memcached的时候会碰到正好能用到这些命令的需求,只是当时受限于所用的memcached 版本或memcached client或其他原因,不知道memcached还

最近通读了一遍memcached的源码,在这个过程中发现了许多memcached平时没有注意不常用到的命令,但是经常在使用或运维memcached的时候会碰到正好能用到这些命令的需求,只是当时受限于所用的memcached 版本或memcached client或其他原因,不知道memcached还有这些用法,现在给大家分享一下。

一、CAS和GETS

Memcached从1.2.4版本新增CAS(Check and Set)协议,用于处理同一个ITEM(key-value)被多个session更新修改时的数据一致性问题。

假设有两个session(A、B),要同时修改某个key的值x,并且修改的数据是基于原来数据的一个计算的结果。session A和B同时得到了key的值x,session A经过计算后应该更新为y,session B经过计算后也更新为y,但是session B其实期望的是拿到y值,并将其计算为Z后更新。造成这个问题的原因就是缺少一个类似于MySQL的事务,用于数据并发修改的一致性问题。

CAS命令着眼于解决一定的并发修改问题,引入了乐观锁的概念。在试图修改某个KEY的值之前,先由GETS命令得到某个KEY的值及其版本号,完成数据操作更新数据时,使用CAS谨慎更新,比较版本号是否与本地的版本号一致,否则放弃此次的修改。

Memcached在默认开启CAS协议后,每个key关联有一个64-bit长度的long型惟一数值,表示该key对应value的版本号。这个数值由Memcached server产生,从1开始,且同一Memcached server不会重复。在两种情况下这个版本数值会加1:

1、新增一个key-value对;

2、对某已有key对应的value值更新成功。删除item版本值不会减小。

首先为了获得KEY值的版本号,引入了GETS命令,可以发现GETS命令比GET命令多返回了一个数字,这个数字就是上面我们提到的KEY值的版本号。

然后是CAS命令,与SET命令类似,只是在最后面多了一个参数,也就是key值得版本号,只有版本号与存储的数据版本号一致时,更新操作才会生效。

set a 0 0 1
x
STORED

gets a
VALUE a 0 1 1  //最后一位就是a的版本号
x
END

set a 0 0 1
y
STORED

gets a
VALUE a 0 1 2    //新增或修改之后,版本号都会增加
y

cas a 0 0 1 1    //cas更新的时候,不同于set操作,最后一位要指定版本号,当本地版本号和服务器版本号相同的时候,更新才会有效
x
EXISTS

cas a 0 0 1 2
y
STORED
Nach dem Login kopieren

二、stats items和stats cachedump

你曾经是否也有想知道memcached里面都存了哪些数据的需求,你是否也曾经在寻找一个方法能像redis一样可以遍历memcached所有的key

其实就是应用我们平时经常用到的stats方法。stats方法不仅能获得memcached的一个概况信息,如果加上子命令还可以获得更多的更加详细的信息。如slabs,items等。

stats items命令,可以获得memcached内item组的相关信息,如分组内item的数量,踢掉次数等。后面运行cachedump命令的时候会用到这个命令的返回信息(item组序号)。

stats cachedump命令,可以将某个slab中的items全部dump出来,第一个参数就是上面stats items返回的items组号,也就是slab的编号,第二个参数为一次显示多少个item信息,如果为0就显示这个item组的全部items,第二列就是key。

stats items
STAT items:1:number 3
STAT items:1:age 943
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
END

stats cachedump 1 0
ITEM c [5 b; 1405246917 s]
ITEM b [1 b; 1405246917 s]
ITEM a [1 b; 1405246917 s]
END
Nach dem Login kopieren
虽然应用这两个命令并不能一次显示全部的key,但是如果我们自己根据stats items的返回值自己做一次迭代,或者仅仅是为了手动做几个item的抽样,那么就能很好的帮助我们了解memcached中数据的情况。
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So führen Sie SUDO-Befehle in Windows 11/10 aus So führen Sie SUDO-Befehle in Windows 11/10 aus Mar 09, 2024 am 09:50 AM

Mit dem Befehl sudo können Benutzer Befehle im Modus mit erhöhten Rechten ausführen, ohne in den Superuser-Modus wechseln zu müssen. In diesem Artikel erfahren Sie, wie Sie Funktionen simulieren, die Sudo-Befehlen in Windows-Systemen ähneln. Was ist das Shudao-Kommando? Sudo (kurz für „Superuser Do“) ist ein Befehlszeilentool, das es Benutzern von Unix-basierten Betriebssystemen wie Linux und MacOS ermöglicht, Befehle mit erhöhten Rechten auszuführen, die normalerweise Administratoren vorbehalten sind. Ausführen von SUDO-Befehlen in Windows 11/10 Mit der Veröffentlichung der neuesten Vorschauversion von Windows 11 Insider können Windows-Benutzer diese Funktion nun nutzen. Mit dieser neuen Funktion können Benutzer Folgendes tun

Wie überprüfe ich die MAC-Adresse der Netzwerkkarte in Win11? Wie erhalte ich mit dem Befehl die MAC-Adresse der Netzwerkkarte in Win11? Wie überprüfe ich die MAC-Adresse der Netzwerkkarte in Win11? Wie erhalte ich mit dem Befehl die MAC-Adresse der Netzwerkkarte in Win11? Feb 29, 2024 pm 04:34 PM

Dieser Artikel führt Leser in die Verwendung der Eingabeaufforderung (CommandPrompt) ein, um die physische Adresse (MAC-Adresse) des Netzwerkadapters im Win11-System zu finden. Eine MAC-Adresse ist eine eindeutige Kennung für eine Netzwerkschnittstellenkarte (NIC), die eine wichtige Rolle bei der Netzwerkkommunikation spielt. Über die Eingabeaufforderung können Benutzer problemlos die MAC-Adressinformationen aller Netzwerkadapter auf dem aktuellen Computer abrufen, was für die Fehlerbehebung im Netzwerk, die Konfiguration von Netzwerkeinstellungen und andere Aufgaben sehr hilfreich ist. Methode 1: „Eingabeaufforderung“ verwenden 1. Drücken Sie die Tastenkombination [Win+X] oder klicken Sie mit der rechten Maustaste auf das [Windows-Logo] in der Taskleiste und wählen Sie im sich öffnenden Menüelement [Ausführen] aus . Führen Sie das Fenster aus, geben Sie den Befehl [cmd] ein und dann

Wo ist der erweiterte Hyper-V-Sitzungsmodus? Tipps zum Aktivieren oder Deaktivieren des erweiterten Hyper-V-Sitzungsmodus mithilfe von Befehlen in Win11 Wo ist der erweiterte Hyper-V-Sitzungsmodus? Tipps zum Aktivieren oder Deaktivieren des erweiterten Hyper-V-Sitzungsmodus mithilfe von Befehlen in Win11 Feb 29, 2024 pm 05:52 PM

Im Win11-System können Sie den erweiterten Hyper-V-Sitzungsmodus über Befehle aktivieren oder deaktivieren. In diesem Artikel wird die Verwendung von Befehlen zur Bedienung vorgestellt und Benutzern dabei geholfen, Hyper-V-Funktionen im System besser zu verwalten und zu steuern. Hyper-V ist eine von Microsoft bereitgestellte Virtualisierungstechnologie, die in Windows Server und Windows 10 und 11 (außer Home Edition) integriert ist und es Benutzern ermöglicht, virtuelle Betriebssysteme in Windows-Systemen auszuführen. Obwohl virtuelle Maschinen vom Host-Betriebssystem isoliert sind, können sie über Einstellungen dennoch die Ressourcen des Hosts wie Soundkarten und Speichergeräte nutzen. Eine der wichtigsten Einstellungen ist die Aktivierung des erweiterten Sitzungsmodus. Der erweiterte Sitzungsmodus ist Hyper

Der Befehl cmdtelnet wird nicht als interner oder externer Befehl erkannt Der Befehl cmdtelnet wird nicht als interner oder externer Befehl erkannt Jan 03, 2024 am 08:05 AM

Das cmd-Fenster weist darauf hin, dass es sich bei Telnet nicht um einen internen oder externen Befehl handelt. Dieses Problem tritt nicht auf, da mit der Bedienung des Benutzers nicht allzu große Sorgen gemacht werden müssen Ein paar kleine Schritte können das Problem der CMD-Fensteraufforderung „Telnet ist kein interner oder externer Befehl“ lösen. Schauen wir uns die Lösung für die CMD-Fensteraufforderung „Telnet ist kein interner oder externer Befehl“ an. Das cmd-Fenster weist darauf hin, dass Telnet kein interner oder externer Befehl ist. Lösung: 1. Öffnen Sie die Systemsteuerung des Computers. 2. Programme und Funktionen finden. 3. Suchen Sie links nach „Windows-Funktionen aktivieren oder deaktivieren“. 4. Suchen Sie nach „Telnet-Client“.

Super praktisch! Sar-Befehle, die Sie zum Linux-Meister machen Super praktisch! Sar-Befehle, die Sie zum Linux-Meister machen Mar 01, 2024 am 08:01 AM

1. Übersicht Der Befehl sar zeigt Systemnutzungsberichte anhand von Daten an, die aus Systemaktivitäten gesammelt wurden. Diese Berichte bestehen aus verschiedenen Abschnitten, die jeweils die Art der Daten und den Zeitpunkt der Datenerfassung enthalten. Der Standardmodus des Befehls sar zeigt die CPU-Auslastung in verschiedenen Zeitschritten für verschiedene Ressourcen an, die auf die CPU zugreifen (z. B. Benutzer, Systeme, E/A-Planer usw.). Darüber hinaus wird der Prozentsatz der inaktiven CPU für einen bestimmten Zeitraum angezeigt. Der Durchschnittswert für jeden Datenpunkt wird unten im Bericht aufgeführt. Standardmäßig erfasst sar alle 10 Minuten Daten. Sie können diese Berichte jedoch mithilfe verschiedener Optionen filtern und anpassen. Ähnlich wie der Befehl uptime kann Ihnen auch der Befehl sar dabei helfen, die CPU-Auslastung zu überwachen. Durch sar können Sie das Auftreten einer übermäßigen Belastung verstehen

Artefakt unter Linux: Prinzipien und Anwendungen von eventfd Artefakt unter Linux: Prinzipien und Anwendungen von eventfd Feb 13, 2024 pm 08:30 PM

Linux ist ein leistungsstarkes Betriebssystem, das viele effiziente Kommunikationsmechanismen zwischen Prozessen bereitstellt, wie z. B. Pipes, Signale, Nachrichtenwarteschlangen, gemeinsam genutzten Speicher usw. Aber gibt es eine einfachere, flexiblere und effizientere Art der Kommunikation? Die Antwort ist ja, das ist eventfd. eventfd ist ein Systemaufruf, der in Linux Version 2.6 eingeführt wurde. Er kann zur Implementierung von Ereignisbenachrichtigungen verwendet werden, d. h. zur Übermittlung von Ereignissen über einen Dateideskriptor. eventfd enthält einen vom Kernel verwalteten 64-Bit-Ganzzahlzähler ohne Vorzeichen. Der Prozess kann den Zählerwert lesen/ändern, indem er diesen Dateideskriptor liest/schreibt, um eine Kommunikation zwischen Prozessen zu erreichen. Was sind die Vorteile von eventfd? Es verfügt über die folgenden Funktionen

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Mar 15, 2024 am 09:09 AM

Was ist der richtige Weg, einen Dienst unter Linux neu zu starten? Wenn wir ein Linux-System verwenden, stoßen wir häufig auf Situationen, in denen wir einen bestimmten Dienst neu starten müssen, aber manchmal können beim Neustart des Dienstes Probleme auftreten, z. B. wenn der Dienst nicht tatsächlich gestoppt oder gestartet wird. Daher ist es sehr wichtig, die richtige Methode zum Neustarten von Diensten zu beherrschen. Unter Linux können Sie normalerweise den Befehl systemctl verwenden, um Systemdienste zu verwalten. Der Befehl systemctl ist Teil des systemd-Systemmanagers

Welchen Computer sollten Absolventen der Geoinformatik wählen? Welchen Computer sollten Absolventen der Geoinformatik wählen? Jan 13, 2024 am 08:00 AM

Empfohlene Computer für Studierende mit Schwerpunkt Geoinformationswissenschaft 1. Empfehlung 2. Studierende mit Schwerpunkt Geoinformationswissenschaft müssen große Mengen geografischer Daten verarbeiten und komplexe Geoinformationsanalysen durchführen und benötigen daher einen Computer mit hoher Leistung. Ein Computer mit hoher Konfiguration kann eine schnellere Verarbeitungsgeschwindigkeit und mehr Speicherplatz bieten und professionelle Anforderungen besser erfüllen. 3. Es wird empfohlen, einen Computer zu wählen, der mit einem Hochleistungsprozessor und einem Speicher mit großer Kapazität ausgestattet ist, der die Effizienz der Datenverarbeitung und -analyse verbessern kann. Darüber hinaus können geografische Daten und Ergebnisse besser angezeigt werden, wenn Sie sich für einen Computer mit größerem Speicherplatz und einem hochauflösenden Display entscheiden. Da Studierende im Hauptfach Geoinformatik möglicherweise Software für geografische Informationssysteme (GIS) entwickeln und programmieren müssen, sollten Sie sich außerdem für einen Computer mit besserer Grafikverarbeitungsunterstützung entscheiden.

See all articles