Opened 9 years ago
Closed 9 years ago
#27152 closed Cleanup/optimization (fixed)
Comma-delimited servers list not supported in memcached caches `LOCATION`
| Reported by: | Ed Morley | Owned by: | Ed Morley |
|---|---|---|---|
| Component: | Core (Cache system) | Version: | 1.10 |
| Severity: | Normal | Keywords: | |
| Cc: | emorley@… | Triage Stage: | Ready for checkin |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Currently Django's memcached backends only support a semicolon delimited servers list in the cache config, such as:
CACHES = {
'default': {
'LOCATION': 'server1.foo.com;server2.foo.com',
},
}
This is because the backend just does:
self._servers = server.split(';')
However cloud memcached offerings such as Memcachier and Memcached Cloud typically use a comma-delimited list in the automatically set environment variable, eg:
MEMCACHIER_SERVERS='foo.us-east-5.heroku.prod.memcachier.com:11211,bar.us-east-5.heroku.prod.memcachier.com:11211'
Given that the caches LOCATION parameter contains only domain name and port (and not say passwords), it should never contain a comma - so we should be fine to also split on them too.
Change History (7)
comment:1 by , 9 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|---|
| Type: | Bug → Cleanup/optimization |
comment:2 by , 9 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:3 by , 9 years ago
| Owner: | changed from to |
|---|
Ah I have this finished locally already - sorry thought I'd set the ticket assignee already!
comment:5 by , 9 years ago
| Cc: | added |
|---|---|
| Has patch: | set |
I guess
server.replace(',', ';').split(';')should work.