i have some common sql,and frequent use the result of sql,and add some other condition to select.i need to cache the result. i try to put sql result in redis,but the key cannot adopt the requirement,i don't recognize sql relation through key. table
for example i want to put the order table which all type = 2 put in cache,and then i use the result filter all department_id =4. the key redis cannot fill it. this example is simple,in requirement,it can be complex sql with some table join result. what cache technology can solve this problem?
( 3 months ago )
As you indicate, there is a mismatch between a relational database and a key-value store (or cache).
The usual way to overcome the mismatch is to de-normalize your data. That is cache specific results which can then be retrieved with a single key lookup.
So, from your example, you would cache the result of the select AND the filter in one cache key-value.
Of course, doing this on data that is written then raises the problem of consistency.