A convention seems to be colon (:) but I'm a web developer so I personally prefer slash (/) for the separator. Slash is already so important separator within URLs which are meant to be Uniform Resource Locators so kind of keys for resources. Why to take a different approach with colon (:)? Does it help anything?
Consider this example:
We have an RESTful API for toy objects. There is a one:
http://example.com/api/toy/234
Where we have it stored? We use Redis and slashes so the key is obvious:
toy/234
This is the unique key for the toy. The key can now be used also on client side:
{
key: "toy/234",
color: "red",
url: function () {
return API_BASE_URL + this.key;
}
}
An user requests an object with key toy/666. How to get it from Redis? A Node.js related example:
redis.get(key, function reply_callback(error, toystring) {
var toy = JSON.parse(toystring);
...
}
No need to convert slashes to colons and vice versa. Convenient, don't you think?
Warning: always ensure that user is able to access only things you intended. The raw URL-to-key approach above is able to fetch user/1/password as well, as noted by commentators. This should not be a problem if you use Redis as a public read-only cache.