Open
Bug 1513099
(bmo-redis)
Opened 6 years ago
Updated 6 years ago
BMO needs to support Redis as an alternative to Memcached, possibly replacing it
Categories
(bugzilla.mozilla.org :: General, enhancement)
Tracking
()
NEW
People
(Reporter: dylan, Unassigned)
References
(Depends on 1 open bug)
Details
(Keywords: bmo-big)
There is no direct equivalent of the Elasticache memcached in GCP. As such it would be useful if instead of memcached, BMO could make use of Redis. There's a number of options for this -- Cache::Redis, CHI with Cache::Redis, or perhaps Mojo::Redis (but the later has a warning about using it, I'll need to ask batman about it). Also open questions are if the calls we're making to memcached map well to redis, mostly the CAS (compare and set) operations used for rate limiting. I intend to ask smacleod about this.
Reporter | ||
Updated•6 years ago
|
Alias: bmo-redis
Reporter | ||
Comment 1•6 years ago
|
||
So, can we map the following memcached commands to redis? Basic caching (core bugzilla feature too) * get * set * delete Used for rate limiting: * get_multi * gets (returns a value and its CAS token) * cas (Check-And-Set or Compare-And-Swap)
Flags: needinfo?(smacleod)
Comment 2•6 years ago
|
||
(In reply to Dylan Hardison [:dylan] (he/him) from comment #1) > So, can we map the following memcached commands to redis? > > Basic caching (core bugzilla feature too) > * get https://redis.io/commands/get > * set https://redis.io/commands/set > * delete https://redis.io/commands/del > Used for rate limiting: > * get_multi https://redis.io/commands/mget > * gets (returns a value and its CAS token) > * cas (Check-And-Set or Compare-And-Swap) Redis doesn't work the same way, but you can handle the same use cases, see https://redis.io/topics/transactions Other things you might want to take a look at: - https://redis.io/topics/lru-cache#eviction-policies - https://redis.io/topics/data-types-intro (redis has fancier data types and can do a lot more. Might handle some of your use cases better with built-in things. Also information about expiry etc.)
Flags: needinfo?(smacleod)
Comment 3•6 years ago
|
||
(In reply to Steven MacLeod [:smacleod] from comment #2) > (In reply to Dylan Hardison [:dylan] (he/him) from comment #1) > > * gets (returns a value and its CAS token) > > * cas (Check-And-Set or Compare-And-Swap) > Redis doesn't work the same way, but you can handle the same use cases, see > https://redis.io/topics/transactions Forgot to mention, sharing the specific use cases could be helpful, as they might be solved by purpose made commands like https://redis.io/commands/incr
You need to log in
before you can comment on or make changes to this bug.
Description
•