Opened 17 years ago
Closed 17 years ago
#3241 closed enhancement (wontfix)
[patch] memcached backend can't use keys containing spaces
Reported by: | Owned by: | Jacob | |
---|---|---|---|
Component: | Core (Cache system) | Version: | dev |
Severity: | normal | Keywords: | memcached |
Cc: | Triage Stage: | Design decision needed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I wanted to use memcached to cache pages whose URLs contain spaces, but was told 'Client.MemcachedKeyCharacterError, "Control characters not allowed"'. The memcache module refuses to use keys longer than 250 characters or containing "control characters", which it defines as anything with a decimal ASCII code below 33 -- which includes the space character.
So the attached memcached backend uses a hash (SHA1) of the URL as the cache key as necessary. Seems to perform OK in my limited seat-of-the-pants usage; I suppose urllib.quote might be faster, but wouldn't help with long URLs.
Attachments (1)
Change History (4)
Changed 17 years ago by
Attachment: | memcached.py added |
---|
comment:1 Changed 17 years ago by
Summary: | memcached backend can't use keys containing spaces → [patch] memcached backend can't use keys containing spaces |
---|
comment:2 Changed 17 years ago by
Triage Stage: | Unreviewed → Design decision needed |
---|
comment:3 Changed 17 years ago by
Resolution: | → wontfix |
---|---|
Status: | new → closed |
This is something you'll need to deal with in your client code; hashing the cache keys makes it nearly impossible to introspect the cache.
revision of memcached backend that can handle keys > 250 characters or containing spaces