x => Item-A ID, Item-B ID, … {User-A}:Service Y => Item-X ID, Item-Y ID, … {User-B}:Service X => Item-C ID, Item-D, … User ID Information Redis Item ID
Redis Item a ID Item B ID Item D ID Item C ID Item F ID Item e ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Redis Item a ID Item B ID Item D ID Item C ID Item F ID Item e ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
command • Recommend items increased • Need access to multiple Redis nodes to retrieve information 2 Concentration of Targeting • There is content recommended by many people • Concentration of access to specific node
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F Item D X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F Item D Caffeine Cache time: 5s Eviction: size-based X Y Z
3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F Item D Caffeine Cache time: 5s Eviction: size-based X Y Z
and unexpected behavior that can be easily controlled - The growth of the service sometimes be a problem. And it usually comes just when you’ve forgotten about it. - Define system requirements for the system in numerical terms
test them one by one. - The evolution of technology bring us another difficulty. There is no silver bullet yet. - Logs and metrics are very important. If they are missing, add them as needed.