memcached几个容易被忽略但非常有用的命令
最近通读了一遍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
二、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
虽然应用这两个命令并不能一次显示全部的key,但是如果我们自己根据stats items的返回值自己做一次迭代,或者仅仅是为了手动做几个item的抽样,那么就能很好的帮助我们了解memcached中数据的情况。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perintah sudo membolehkan pengguna menjalankan arahan dalam mod keistimewaan tinggi tanpa bertukar kepada mod superuser. Artikel ini akan memperkenalkan cara untuk mensimulasikan fungsi yang serupa dengan arahan sudo dalam sistem Windows. Apakah Perintah Shudao? Sudo (singkatan untuk "superuser do") ialah alat baris perintah yang membenarkan pengguna sistem pengendalian berasaskan Unix seperti Linux dan MacOS untuk melaksanakan arahan dengan keistimewaan tinggi yang biasanya dipegang oleh pentadbir. Menjalankan arahan SUDO dalam Windows 11/10 Walau bagaimanapun, dengan pelancaran versi pratonton Windows 11 Insider terkini, pengguna Windows kini boleh mengalami ciri ini. Ciri baharu ini membolehkan pengguna

Artikel ini akan memperkenalkan pembaca kepada cara menggunakan gesaan arahan (CommandPrompt) untuk mencari alamat fizikal (alamat MAC) penyesuai rangkaian dalam sistem Win11. Alamat MAC ialah pengecam unik untuk kad antara muka rangkaian (NIC), yang memainkan peranan penting dalam komunikasi rangkaian. Melalui gesaan arahan, pengguna boleh dengan mudah mendapatkan maklumat alamat MAC semua penyesuai rangkaian pada komputer semasa, yang sangat membantu untuk menyelesaikan masalah rangkaian, mengkonfigurasi tetapan rangkaian dan tugas lain. Kaedah 1: Gunakan "Command Prompt" 1. Tekan kombinasi kekunci [Win+X], atau [klik kanan] klik [logo Windows] pada bar tugas, dan dalam item menu yang terbuka, pilih [Run]; . Jalankan tetingkap , masukkan perintah [cmd] dan kemudian

Tetingkap cmd menggesa bahawa telnet bukan perintah dalaman atau luaran Masalah ini pasti menyusahkan anda beberapa langkah kecil. Tetapan operasi boleh menyelesaikan masalah tetingkap cmd yang mendorong telnet bukan arahan dalaman atau luaran Mari kita lihat penyelesaian kepada tetingkap cmd yang mendorong telnet bukan arahan dalaman atau luaran yang dibawa oleh editor hari ini. Tetingkap cmd menggesa bahawa telnet bukan perintah dalaman atau luaran Penyelesaian: 1. Buka panel kawalan komputer. 2. Cari atur cara dan fungsi. 3. Cari Hidupkan atau matikan ciri Windows di sebelah kiri. 4. Cari “telnet client

Dalam sistem Win11, anda boleh mendayakan atau melumpuhkan mod sesi dipertingkatkan Hyper-V melalui arahan. Artikel ini akan memperkenalkan cara menggunakan arahan untuk mengendalikan dan membantu pengguna mengurus dan mengawal fungsi Hyper-V dalam sistem dengan lebih baik. Hyper-V ialah teknologi virtualisasi yang disediakan oleh Microsoft Ia dibina ke dalam Windows Server dan Windows 10 dan 11 (kecuali Home Edition), membenarkan pengguna menjalankan sistem pengendalian maya dalam sistem Windows. Walaupun mesin maya diasingkan daripada sistem pengendalian hos, mereka masih boleh menggunakan sumber hos, seperti kad bunyi dan peranti storan, melalui tetapan. Salah satu tetapan utama adalah untuk mendayakan Mod Sesi Dipertingkat. Mod sesi dipertingkatkan ialah Hiper

1. Gambaran Keseluruhan Perintah sar memaparkan laporan penggunaan sistem melalui data yang dikumpul daripada aktiviti sistem. Laporan ini terdiri daripada bahagian yang berbeza, setiap satu mengandungi jenis data dan masa data dikumpulkan. Mod lalai perintah sar memaparkan penggunaan CPU pada kenaikan masa yang berbeza untuk pelbagai sumber yang mengakses CPU (seperti pengguna, sistem, penjadual I/O, dsb.). Selain itu, ia memaparkan peratusan CPU terbiar untuk tempoh masa tertentu. Nilai purata untuk setiap titik data disenaraikan di bahagian bawah laporan. laporan sar mengumpul data setiap 10 minit secara lalai, tetapi anda boleh menggunakan pelbagai pilihan untuk menapis dan melaraskan laporan ini. Sama seperti arahan masa aktif, arahan sar juga boleh membantu anda memantau beban CPU. Melalui sar, anda boleh memahami berlakunya beban yang berlebihan

Apakah cara yang betul untuk memulakan semula perkhidmatan dalam Linux? Apabila menggunakan sistem Linux, kami sering menghadapi situasi di mana kami perlu memulakan semula perkhidmatan tertentu, tetapi kadangkala kami mungkin menghadapi beberapa masalah semasa memulakan semula perkhidmatan, seperti perkhidmatan tidak benar-benar berhenti atau bermula. Oleh itu, adalah sangat penting untuk menguasai cara yang betul untuk memulakan semula perkhidmatan. Di Linux, anda biasanya boleh menggunakan perintah systemctl untuk mengurus perkhidmatan sistem. Perintah systemctl adalah sebahagian daripada pengurus sistem systemd

LSOF (ListOpenFiles) ialah alat baris arahan yang digunakan terutamanya untuk memantau sumber sistem yang serupa dengan sistem pengendalian Linux/Unix. Melalui arahan LSOF, pengguna boleh mendapatkan maklumat terperinci tentang fail aktif dalam sistem dan proses yang mengakses fail ini. LSOF boleh membantu pengguna mengenal pasti proses yang sedang menduduki sumber fail, dengan itu mengurus sumber sistem dengan lebih baik dan menyelesaikan masalah yang mungkin berlaku. LSOF berkuasa dan fleksibel, dan boleh membantu pentadbir sistem mengesan masalah berkaitan fail dengan cepat, seperti kebocoran fail, deskriptor fail yang tidak ditutup, dsb. Melalui Perintah LSOF Alat baris arahan LSOF membenarkan pentadbir dan pembangun sistem untuk: Menentukan proses yang sedang menggunakan fail atau port tertentu, sekiranya berlaku konflik port

Linux ialah sistem pengendalian berkuasa yang menyediakan banyak mekanisme komunikasi antara proses yang cekap, seperti paip, isyarat, baris gilir mesej, memori kongsi, dll. Tetapi adakah cara yang lebih mudah, lebih fleksibel dan lebih cekap untuk berkomunikasi? Jawapannya ya, itulah eventfd. eventfd ialah panggilan sistem yang diperkenalkan dalam Linux versi 2.6 Ia boleh digunakan untuk melaksanakan pemberitahuan acara, iaitu, untuk menyampaikan acara melalui deskriptor fail. eventfd mengandungi pembilang integer tidak bertanda 64-bit yang diselenggara oleh kernel Proses ini boleh membaca/menukar nilai pembilang dengan membaca/menulis deskriptor fail ini untuk mencapai komunikasi antara proses. Apakah kelebihan eventfd? Ia mempunyai ciri-ciri berikut
