Memcached CAS command
The Memcached CAS (Check-And-Set or Compare-And-Swap) command is used to perform a check and set operation
It is only after the last value of the current client, the key
The value can only be written if the corresponding value has not been modified by other clients.
The check is passed. cas_token
Parameter, which is a unique 64-bit value assigned by Memcach to an element that already exists.
Syntax:
The basic syntax format of the CAS command is as follows:
cas key flags exptime bytes unique_cas_token [noreply]
value
The parameters are described as follows:
key
Key valuekey-value
In the structurekey
Used to find cached valuesflags
Can include integer parameters for key-value pairs, which clients use to store additional information about key-value pairsexptime
Length of time to save key-value pairs in the cache (in seconds, 0 means forever)bytes
Number of bytes stored in the cacheunique_cas_token
Pass throughgets
A unique 64-bit value obtained by the command.noreply
(optional): this parameter tells the server that there is no need to return datavalue
The stored value (always in the second line) (which can be directly understood askey-value
In the structurevalue
)
Example
To use the CAS command on Memcached, you need to get through the Memcached service provider gets
Command to get the token (token).
gets
The function of the command is similar to the basic get
Orders. The difference between the two commands is that gets
A little more information is returned: the 64-bit integer value is very much like the “version” identifier of the name / value pair.
The steps of the example are as follows:
If no unique token is set, the CAS command executes incorrectly.
If the key
key
Does not exist, execution failed.Add key-value pairs.
Pass through
gets
Command to get a unique token.Use
cas
Command to update dataUse
get
Command to see if the data is updated
cas tp 0 900 9
ERROR <− lack token
cas tp 0 900 9 2
memcached
NOT_FOUND <− Key tp does not exist
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
If the data is added successfully, the output:
STORED
Output information description:
STORED
Output after being saved successfullyERROR
Save error or syntax error.EXISTS
Another user is also updating the data after the last valueNOT_FOUND
The key value does not exist on the Memcached service