===============================================
MemcacheQ - Simple Queue Service over Memcache
Features
- damn simple
- very fast
- multiple queue
- concurrent well
- memcache protocol compatible
Getting Started
Download
See: http://code.google.com/p/memcacheq/downloads/list
Installation
See: http://memcachedb.org/memcacheq/INSTALL.html
Please take a look at 'ChangLog' file in the distribution, see what's new.
Commands
Only two commands are used to operate the queue:
Append a message to the tail of queue::
set 0 \r\n
\r\n
STORED\r\n
**Note:** MQ will create a new queue automatically if your queue is not existed. The original 'expire time' field is ignored by server.
**Consume a message from the head of queue**::
get \r\n
VALUE \r\n
\r\n
END\r\n
Examples
---------
Assuming you are using PHP memcache::
Limitation
===========
The message body is stored in Berkeley DB with fixed length. Any message that is shorter than the declared length will automatically be padded with space character (0x20 in the ASCII character set).
In Berkeley DB, as the official document refers,
"For the Queue access method, the record length must be enough smaller than the database's page size that at least one record plus the database page's metadata information can fit on each database page."
"The minimum page size is 512 bytes, the maximum page size is 64K bytes, and the page size must be a power-of-two."
So we have a limit on the message body size with a max of a bit less than *64K*.
Other tips
===========
use 'stats queue' to see your current queues::
$ telnet 127.0.0.1 22201
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
stats queue
STAT test1 12231/12
STAT test2 23/23
STAT test3 1212/12
STAT test4 1/1
END
delete a queue::
$ telnet 127.0.0.1 22201
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
delete test1
DELETED
Feedback
=========
MemcacheDB mailing list now hosts on Google Group: http://groups.google.com/group/memcachedb
* To subscribe to maillist, send email to memcachedb-subscribe@googlegroups.com
* To post to maillist, send email to memcachedb@googlegroups.com
* To unsubscribe from maillist, send email to memcachedb-unsubscribe@googlegroups.com
Please report your bugs and issues to the Maillist.
Last updated by Steve Chu: 12/09/2009