Commands¶
In order to connect to and interact with LSMCD, you can use telnet to connect to one of the IP addresses and port numbers set in Cached.Addr
.
Note that telnet does not work with SASL as user authorization is incompatible with the unencrypted text in telnet.
For example, with the default settings, you would connect using the following command:
telnet 127.0.0.1 11211
The following is a list of LSMCD commands usable in telnet
add¶
Add a new key/value pair, but only if the server doesn’t already hold data for this key.
Syntax¶
add <key> <flags> <TTL> <length> [noreply]
<value>
Parameters¶
- key - The name of the unique key by which data is accessed.
- flags - The 32-bit unsigned integer that the server stores with the data provided by the user, and returns along with the data when the item is retrieved.
- TTL - The length of time (in seconds) the key/value pair will be stored in cache. A
0
value means the data will "never expire" and should not be removed from the cache unless required. If the TTL is more than 30 days then LSMCD interprets it as UNIX timestamp for expiration. - length - The length of the data in bytes that needs to be stored in LSMCD.
- noreply - This optional parameter tells the server not to send any reply.
- value - The data that needs to be stored. This parameter needs to be given on the new line after executing the command with the above options.
Example
Request
add newkey 0 120 10
myvalueabc
Response
STORED
Output Notes
0
: no flags120
: store data for 2 minutes (120 seconds)10
: data is 10 bytes longmyvalueabc
: newkey will be associated with the valuemyvalueabc
Possible Errors
NOT_STORED
: Indicates that the provided key already exists in the LSMCD server so the data associated with that key was not updated.
append¶
Add data to an existing key after existing data.
Syntax¶
append <key> <flags> <TTL> <length> [noreply]
<value>
Parameters¶
- key - The name of the unique key by which data is accessed.
- flags - A 32-bit unsigned integer that the server stores with the data provided by the user, and returns along with the data when the item is retrieved.
- TTL - The length of time (in seconds) the key/value pair will be stored in cache. A 0 value means the data will “never expire” and should not be removed from the cache unless required. If the TTL is more than 30 days then LSMCD interprets it as UNIX timestamp for expiration.
- length - The length of the data in bytes that needs to be stored in LSMCD.
- noreply - This optional parameter tells the server not to send any reply.
- value - The data that needs to be stored. This parameter needs to be given on the new line after executing the command with the above options.
Example
Request
append mykey 0 120 10
defghijklm
Response
STORED
Output Notes
0
: no flags120
: store data for 2 minutes (120 seconds)10
: add 10 bytes of data to the end ofmykey
In this example, ifmykey
had a value ofmyvalueabc
, after running append, its value would bemyvalueabcdefghijklm
.
Possible Errors
NOT_STORED
: Indicates that the key does not exist in the LSMCD server and its data could not be modified.CLIENT_ERROR
: Indicates other errors such as syntax errors.
bget¶
Read the binary value from memory that is associated with the user-provided key.
Syntax¶
bget <key>
Parameters¶
- key - The name of the unique key by which data is accessed.
Example
Request
bget mykey
Response
VALUE mykey 0 10
abcdefghij
END
Output Notes
0
: no flags10
: data is 10 bytes longmyvalueabc
: "mykey" is associated with the value "myvalueabc"
cas¶
Check-and-Set an item; store data only if no one else has updated the item since its last fetch, determined with the cas token from the gets command. LSMCD assigns a unique 64-bit cas token to all items stored in it.
Syntax¶
cas <key> <flags> <TTL> <length> <cas unique key> [noreply]
Parameters¶
- key - The name of the unique key by which data is accessed.
- flags - A 32-bit unsigned integer that the server stores with the data provided by the user, and returns along with the data when the item is retrieved.
- TTL - The length of time (in seconds) the key/value pair will be stored in cache. A 0 value means the data will “never expire” and should not be removed from the cache unless required. If the TTL is more than 30 days then LSMCD interprets it as UNIX timestamp for expiration.
- length - The length of the data in bytes that needs to be stored in LSMCD.
- cas unique key - A unique token number obtained from gets comamand.
- noreply - This optional parameter tells the server not to send any reply.
Example
Request
cas mykey 0 120 10 2
abcdeabcde
Response
STORED
Output Notes
0
: no flags120
: store data for 2 minutes (120 seconds)10
: data is 10 bytes long2
: unique token number obtained from gets command
Possible Errors
ERROR
: Indicates an error while saving data or the wrong syntax.EXISTS
: Indicates that someone has modified the CAS data since its last fetch.NOT_FOUND
: Indicates that the provided key does not exist in the LSMCD server.
decr¶
Decrement a numerical key’s value by the given number if the key/value pair exists.
Syntax¶
decr <key> <value> [noreply]
Parameters¶
- key - The name of the unique key by which data is accessed.
- value - The data that needs to be stored.
- noreply - This optional parameter tells the server not to send any reply.
Example
Request
decr mykey 3
2
Output Notes
3
: Subtract 3 from the value of "mykey". In this example, if "mykey" had a value of "5", after running decr, its value would be "2".
Possible Errors
NOT_FOUND
: Indicates that the provided key does not exist in the LSMCD server.CLIENT_ERROR
: Indicates that the value associated with the provided key is not numerical.ERROR
: Indicates any other error such as a syntax error.
delete¶
Delete an existing key/value pair.
Syntax¶
delete <key> [noreply]
Parameters¶
- noreply - This optional parameter tells the server not to send any reply.
Example
Request
delete mykey
Response
DELETED
Possible Errors
ERROR
: Indicates incorrect syntax or an error while deleting data.NOT_FOUND
: Indicates that the provided key does not exist in the LSMCD server.
flush_all¶
Delete all key/value pairs immediately.
Syntax¶
flush_all [noreply]
Parameters¶
- noreply - This optional parameter tells the server not to send any reply.
Example
Request
flush_all
Response
OK
get¶
Read the value from memory that is associated with the user-provided key.
Syntax¶
get <key>
Parameters¶
- key - The name of the unique key by which data is accessed.
Example
Request
get mykey
VALUE mykey 0 10
myvalueabc
END
Output Notes
0
: no flags10
: data is 10 bytes longmyvalueabc
: "mykey" is associated with the value "myvalueabc"
gets¶
Read the value from memory that is associated with the user-provided key as well as its cas token (to be used with the cas command).
Syntax¶
gets <key>
Parameters¶
- key - The name of the unique key by which data is accessed.
Example
Request
gets mykey
Response
VALUE mykey 0 10 9
myvalueabc
END
Output Notes
0
: no flags10
: data is 10 bytes long9
: mykey's unique cas token number is 9
incr¶
Increment a numerical key’s value by the given number if the key/value pair exists.
Syntax¶
incr <key> <value> [noreply]
Parameters¶
- key - The name of the unique key by which data is accessed.
- value - The data that needs to be stored. This parameter needs to be given on the new line after executing the command with the above options.
Example
Request
incr mykey 4
Response
5
Output Notes
4
: Add 4 to the value of "mykey". In this example, if "mykey" had a value of "1", after running incr, its value would be "5".
Possible Errors
NOT_FOUND
: Indicates that the provided key does not exist in the LSMCD server.CLIENT_ERROR
: Indicates that the value associated with the provided key is not numerical.ERROR
: Indicates any other error such as a syntax error.
prepend¶
Add data to an existing key before existing data.
Syntax¶
prepend <key> <flags> <TTL> <length> [noreply]
<value>
Parameters¶
- key - The name of the unique key by which data is accessed.
- flags - A 32-bit unsigned integer that the server stores with the data provided by the user, and returns along with the data when the item is retrieved.
- TTL - The length of time (in seconds) the key/value pair will be stored in cache. A 0 value means the data will “never expire” and should not be removed from the cache unless required. If the TTL is more than 30 days then LSMCD interprets it as UNIX timestamp for expiration.
- length - The length of the data in bytes that needs to be stored in LSMCD.
- noreply - This optional parameter tells the server not to send any reply.
- value - The data that needs to be stored. This parameter needs to be given on the new line after executing the command with the above options.
Example
Request
prepend mykey 0 120 10
abcdeabcde
Response
STORED
Output Notes
0
: no flags120
: store data for 2 minutes (120 seconds)10
: add 10 bytes of data to the end of "mykey" In this example, if "mykey" had a value of "myvalueabc", after running prepend, its value would be "abcdeabcdemyvalueabc".
!!! failure "Possible Errors"** * NOT_STORED
: Indicates that the key does not exist in the LSMCD server and its data could not be modified. * CLIENT_ERROR
: Indicates other errors such as syntax errors.
quit¶
Terminate telnet session.
Syntax¶
quit
Example
Request
quit
Response
Connection closed by foreign host.
replace¶
Store a key/value pair, but only if it already exists.
Syntax¶
replace <key> <flags> <TTL> <length> [noreply]
<value>
Parameters¶
- key - The name of the unique key by which data is accessed.
- flags - A 32-bit unsigned integer that the server stores with the data provided by the user, and returns along with the data when the item is retrieved.
- TTL - The length of time (in seconds) the key/value pair will be stored in cache. A 0 value means the data will “never expire” and should not be removed from the cache unless required. If the TTL is more than 30 days then LSMCD interprets it as UNIX timestamp for expiration.
- length - The length of the data in bytes that needs to be stored in LSMCD.
- noreply - This optional parameter tells the server not to send any reply.
- value - The data that needs to be stored. This parameter needs to be given on the new line after executing the command with the above options.
Example
Request
replace mykey 0 120 10
myvalueabc
Response
STORED
Output Notes
0
: no flags120
: store data for 2 minutes (120 seconds)10
: data is 10 bytes longmyvalueabc
: "mykey" will be associated with the value "myvalueabc"
Possible Errors
NOT_STORED
: Indicates that the provided key does not already exist in the LSMCD server so the data associated with that key could not be updated.
set¶
Store a key/value pair, if the key exists already, overwrite it.
Syntax¶
set <key> <flags> <TTL> <length> [noreply] \r\n <value> \r\n
Parameters¶
- key - The name of the unique key by which data is accessed.
- flags - A 32-bit unsigned integer that the server stores with the data provided by the user, and returns along with the data when the item is retrieved.
- TTL - The length of time (in seconds) the key/value pair will be stored in cache. A 0 value means the data will “never expire” and should not be removed from the cache unless required. If the TTL is more than 30 days then LSMCD interprets it as UNIX timestamp for expiration.
- length - The length of the data in bytes that needs to be stored in LSMCD.
- noreply - This optional parameter tells the server not to send any reply.
- value - The data that needs to be stored. This parameter needs to be given on the new line after executing the command with the above options.
Example
Request
set mykey 0 120 10
myvalueabc
Response
STORED
Output Notes
0
: no flags120
: store data for 2 minutes (120 seconds)10
: data is 10 bytes longmyvalueabc
: “newkey” will be associated with the value “myvalueabc”
Possible Errors
ERROR
: Indicates incorrect syntax or an error while saving.
stats¶
Print or reset general statistics.
Syntax¶
stats [reset]
Parameters¶
- reset - If this optional parameter is used, LSMCD flushes its stored general statistics data instead of outputting it to the screen.
Example
Request
stats
Response
STAT pid 16825
STAT version 1.0.0
STAT pointer_size 64
STAT rusage_user 0.300000
STAT rusage_system 0.520000
STAT cmd_get 10
STAT cmd_set 11
STAT cmd_flush 2
STAT cmd_touch 2
STAT get_hits 8
STAT get_misses 2
STAT delete_misses 0
STAT delete_hits 1
STAT incr_misses 0
STAT incr_hits 1
STAT decr_misses 1
STAT decr_hits 1
STAT cas_misses 0
STAT cas_hits 1
STAT cas_badval 0
STAT touch_hits 2
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
END
Example
Request
stats reset
Response
RESET
touch¶
Update the expiration time for a key/value pair without fetching it.
Syntax¶
touch <key> <TTL> [noreply]
Parameters¶
- key - The name of the unique key by which data is accessed.
- TTL - The length of time (in seconds) the key/value pair will be stored in cache. A 0 value means the data will “never expire” and should not be removed from the cache unless required. If the TTL is more than 30 days then LSMCD interprets it as UNIX timestamp for expiration.
- noreply - This optional parameter tells the server not to send any reply.
Example
Request
touch mykey 1200
Response
TOUCHED
Output Notes
1200
: set "mykey" to be stored for 20 minutes (1200 seconds) from the moment the touch command is run.
verbosity¶
Change the verbosity level of the output of LSMCD.
Syntax¶
verbosity <level> [noreply]
Parameters¶
- level - Tells LSMCD to print output at a certain level of detail, this value should be between 1 and 3. Will always output OK.
- noreply - This optional parameter tells the server not to send any reply.
Example
Request
verbosity 1
Response
OK
version¶
Print LSMCD server API version. This is not the version of the code but the version of the API.
Syntax¶
version
Example
Request
version
Response
VERSION 1.0.0