Perintah CAS Memcached
Memcached CAS (Check-And-Set or Compare-And-Swap) arahan digunakan untuk melaksanakan operasi "check-and-set"
Ia hanya kali terakhir pada klien semasa Selepas nilai diperoleh, nilai boleh ditulis hanya jika nilai yang sepadan dengan kunci belum diubah suai oleh klien lain.
Semakan dilakukan melalui parameter cas_token, iaitu nilai unik 64-bit yang diberikan oleh Memcach kepada elemen sedia ada.
Sintaks:
Format sintaks asas bagi arahan CAS adalah seperti berikut:
cas key flags exptime bytes unique_cas_token [noreply] value
Penerangan parameter adalah seperti berikut:
kunci: Kunci dalam struktur nilai kunci digunakan untuk mencari nilai cache.
bendera: Parameter integer yang boleh termasuk pasangan nilai kunci, yang digunakan oleh pelanggan untuk menyimpan maklumat tambahan tentang pasangan nilai kunci .
exptime: Tempoh masa untuk menyimpan pasangan nilai kunci dalam cache (dalam saat, 0 bermakna selamanya)
-
bait: Bilangan bait yang disimpan dalam cache
unique_cas_tokenNilai unik 64-bit yang diperoleh melalui arahan gets.
noreply (pilihan) : Parameter ini memberitahu pelayan bahawa tidak perlu mengembalikan data
nilai: Nilai yang disimpan (sentiasa dalam baris kedua) (boleh difahami secara langsung sebagai nilai dalam struktur nilai kunci)
Instance
Untuk menggunakan CAS pada perintah Memcached, anda perlu mendapatkan token daripada pembekal perkhidmatan Memcached melalui arahan gets.
Fungsi arahan gets sama dengan perintah get asas. Perbezaan antara kedua-dua arahan adalah yang mendapat pulangan lebih sedikit maklumat: nilai integer 64-bit yang sangat mirip dengan pengecam "versi" untuk pasangan nama/nilai.
Langkah contoh adalah seperti berikut:
Jika token unik tidak ditetapkan, ralat pelaksanaan arahan CAS berlaku.
Jika kunci kekunci tidak wujud, pelaksanaan gagal.
Tambah pasangan nilai kunci.
Dapatkan token unik melalui perintah gets.
Gunakan arahan cas untuk mengemas kini data
Gunakan arahan get untuk menyemak sama ada data dikemas kini
cas tp 0 900 9 ERROR <− 缺少 token cas tp 0 900 9 2 memcached NOT_FOUND <− 键 tp 不存在 set tp 0 900 9 memcached STORED gets tp VALUE tp 0 9 1 memcached END cas tp 0 900 5 1 redis STORED get tp VALUE tp 0 5 redis END
Output
Jika data berjaya ditambahkan, output:
STORED
Keterangan maklumat output:
DISIMPAN: Output selepas berjaya disimpan.
RALAT: Ralat menyimpan atau ralat sintaks.
WUJUD: Pengguna lain turut mengemas kini data selepas nilai terakhir.
TIDAK_DAPAT: Nilai kunci tidak wujud pada perkhidmatan Memcached.