Hi Patrick,

The protocol docs say that they key must not include control characters or
whitespace, but as far as I can tell, the only really disallowed characters
are space, CR and LF. Colon is absolutely not disallowed, simple testing
shows you this:

set foo:bar 0 0 5
abcde
STORED
get foo:bar
VALUE foo:bar 0 5
abcde
END

Even TAB worked fine for me, so so much for the "no whitespace" rule:

set foo^Ibar 0 0 5
12345
STORED
get foo^Ibar
VALUE foo       bar 0 5
12345
END

Control characters are fine too:

set foo^Gbar 0 0 4
beep
STORED
get foo^Gbar
VALUE foobar 0 4
beep
END


This is against version 1.2.5 on Windows, I hardly think other versions work
differently, but different clients may or may not handle it nicely, so if
you want to be safe, just strip out all characters at or below 32.


/Henrik


On Wed, Mar 11, 2009 at 00:11, Patrick May <[email protected]> wrote:

>
> I'm writing a filter (appside) to filter out "control characters".
> I've got a feeling that the colon is one (":").  But are there any
> other control characters?  What's the complete list of memcache
> control characters which are disallowed in keys?
>
> Thanks for the great tool!
>
> - patrick may

Reply via email to