Parte disso é respondido aqui, mas isso não é completamente uma duplicata, pois você está perguntando sobre caracteres permitidos e convenções.
Quanto aos caracteres válidos nas chaves Redis , o manual explica isso completamente:
As chaves do Redis são binárias seguras, isso significa que você pode usar qualquer sequência binária como chave, desde uma string como "foo" até o conteúdo de um arquivo JPEG. A string vazia também é uma chave válida.
Algumas outras regras sobre chaves:
Chaves muito longas não são uma boa ideia, por exemplo, uma chave de 1024 bytes é uma má ideia não apenas em termos de memória, mas também porque a pesquisa da chave no conjunto de dados pode exigir várias comparações de chave dispendiosas. Mesmo quando a tarefa em mãos é igualar a existência de um valor grande, recorrer ao hash (por exemplo com SHA1) é uma ideia melhor, especialmente do ponto de vista de memória e largura de banda.
Teclas muito curtas geralmente não são uma boa ideia. Há pouco sentido em escrever "u1000flw" como chave se você puder escrever "user:1000:followers". O último é mais legível e o espaço adicionado é menor em comparação com o espaço usado pelo próprio objeto-chave e pelo objeto de valor. Embora as teclas curtas obviamente consumam um pouco menos de memória, seu trabalho é encontrar o equilíbrio certo.
Tente ficar com um esquema. Por exemplo, "object-type:id" é uma boa ideia, como em "user:1000". Pontos ou traços são frequentemente usados para campos de várias palavras, como em "comment:1234:reply.to" ou "comment:1234:reply-to".
O tamanho máximo de chave permitido é 512 MB.