Een deel hiervan wordt hier beantwoord, maar dit is niet helemaal een duplicaat, omdat je vraagt naar toegestane tekens en conventies.
Wat betreft geldige tekens in Redis-sleutels , de handleiding legt dit volledig uit:
Redis-sleutels zijn binair veilig, dit betekent dat u elke binaire reeks als sleutel kunt gebruiken, van een string als "foo" tot de inhoud van een JPEG-bestand. De lege string is ook een geldige sleutel.
Een paar andere regels over sleutels:
Zeer lange sleutels zijn geen goed idee, bijvoorbeeld een sleutel van 1024 bytes is een slecht idee, niet alleen qua geheugen, maar ook omdat het opzoeken van de sleutel in de dataset verschillende kostbare sleutelvergelijkingen kan vereisen. Zelfs als het de taak is om het bestaan van een grote waarde te matchen, is het een beter idee om deze te hashen (bijvoorbeeld met SHA1), vooral vanuit het oogpunt van geheugen en bandbreedte.
Zeer korte toetsen zijn vaak geen goed idee. Het heeft weinig zin om "u1000flw" als sleutel te schrijven als je in plaats daarvan "user:1000:followers" kunt schrijven. Dit laatste is beter leesbaar en de toegevoegde ruimte is gering in vergelijking met de ruimte die wordt gebruikt door het sleutelobject zelf en het waardeobject. Hoewel korte toetsen natuurlijk wat minder geheugen verbruiken, is het jouw taak om de juiste balans te vinden.
Probeer je aan een schema te houden. Bijvoorbeeld "object-type:id" is een goed idee, zoals in "user:1000". Punten of streepjes worden vaak gebruikt voor velden met meerdere woorden, zoals in "comment:1234:reply.to" of "comment:1234:reply-to".
De maximaal toegestane sleutelgrootte is 512 MB.