Je mets en cache certaines données dans redis et je lis les données de redis si elles existent, sinon je lis les données de la base de données et j'écris les données dans redis.
Je trouve qu'il existe plusieurs façons de mettre à jour redis après la mise à jour de la base de données. Par exemple:
Je suis un peu confus et je ne sais pas comment choisir.
Pourriez-vous me dire les avantages et les inconvénients de chaque façon et il vaut mieux me dire d'autres façons de mettre à jour redis ou recommander un blog sur ce problème.
Le stockage et le cache des données réels doivent être synchronisés en utilisant la troisième approche que vous avez déjà décrite dans votre question.
Lorsque vous ajoutez des données à votre magasin définitif (c'est-à-dire votre base de données SQL), vous devez mettre ces données en file d'attente sur un bus de service ou une file d'attente de messages, et laisser un service asynchrone faire toute la synchronisation en utilisant une sorte de processus d'arrière-plan.
Vous ne voulez pas entrer dans ces cas (lorsque vous n'utilisez pas un bus de service et un service asynchrone):
À propos de l'utilisation de l'expiration de la clé Redis, c'est une bonne idée. Étant donné que Redis peut expirer les clés à l'aide de son mécanisme intégré, vous ne devez pas implémenter l'expiration des clés de l'ensemble du processus d'arrière-plan. Si une clé existe, c'est parce qu'elle est toujours valide.
BTW, vous ne serez pas toujours sur ce cas (si une clé n'est pas expirée, cela signifie qu'elle ne doit pas être remplacée). Cela peut dépendre de votre domaine réel.