Pergunta

Eu estou usando memcache para projetar um cache para a camada de modelo de uma aplicação web, um dos meus maiores problemas é a consistência dos dados. Ele veio para os meus dados de cache mente como este: (Key = consulta, valor = lista de ids objeto de resultado da consulta) para cada ID da lista: (Key = object.id, valor = objeto)

Assim, cada vez que uma consulta é feita: Se a consulta já existe eu recuperar os objetos sinalizadas na lista do cache. Se isso não acontecer, todos os objetos das listas são armazenados no cache substituir qualquer outro valor antigo.

Tem alguém usar essa alternativa, que é Deus? quaisquer outras ideias?

Foi útil?

Solução

O cache é um daqueles temas em que não há uma resposta certa -. Isso depende do seu domínio

A política de cache que você descreve pode ser suficiente para o seu domínio. No entanto, você não parecem estar preocupados com dados antigos. Muitas vezes, eu esperaria ver um timestamp contra algumas das entidades - se o valor em cache é mais velho do que algum parâmetro definido sistema, então seria considerado obsoleto e re-forçado

.

Para mais discussão sobre algoritmos de cache, consulte Wikipedia (para iniciantes)

Outras dicas

Bem-vindo ao mundo da programação de simultaneidade. Você vai querer aprender um pouco sobre mútua exclusão . Se você nos dizer o idioma / plataforma que você está desenvolvendo para podemos descrever mais especificamente as suas opções.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top