当前位置:网站首页>Analyse de la stratégie de lecture et d'écriture du cache
Analyse de la stratégie de lecture et d'écriture du cache
2022-07-23 07:11:00 【Développement de logiciels】
Préface
Soulever le cache,Nous avons d'abord pensé que le cache est un composant qui stocke les données,Son rôle est de permettre un retour plus rapide des demandes de données.
Nous mettons généralement en cache des données qui ne changent pas souvent et qui nécessitent un accès rapide,La pratique courante est d'écrire ces données en mémoire,Retour rapide des résultats souhaités lorsque l'accès est nécessaire.
En fait,,Il y a une grande différence de vitesse entre deux types de matériel,Structure utilisée pour harmoniser les différences de transmission de données entre les deux,Peut être appelé cache.
Dans le processus de développement quotidien,Nous mettons souvent les données dans un cache local(escache)Ou Cache externe(Redis)Moyenne.
Politiques de lecture et d'écriture mises en cache
La mise en cache semble simple,Tout ce qu'il faut, c'est lire le cache en premier,Requête à partir de la base de données par erreur de cache,Écrire dans le cache une fois la requête trouvée.Mais en fait,,Selon les différents scénarios d'affaires,Les politiques de lecture et d'écriture du cache sont également différentes.Nous utilisons le cache le plus commun+Scénarios de base de données pour l'analyse.
Cache Aside(Contournement du cache)Stratégie
Cache AsideC'est la stratégie la plus utilisée,Le cache n'interagit pas directement avec la base de données,C'est l'application qui traite à la fois avec le cache et la base de données.Cache AsideC'est le nom de,CacheSur le côté application(aside).
En lisant les données
- Le programme doit déterminer si les données existent déjà dans le cache
- Quand les données existent déjà dans le cache( C'est le cache hit ,cache hit),Renvoie les données directement du cache
- Quand il n'y a pas de données dans le cache(C'est - à - dire que le cache manque,cache miss),Lisez d'abord les données de la base de données,Et dans le cache,Puis les données sont retournées
Lors de l'écriture des données
- Mettre à jour d'abord la base de données
- Supprimer les données correspondantes dans le cache
Read-Write Through (Lire et écrire à travers)Stratégie
Read/Write Through Pattern Le serveur central considère le cache comme le stockage de données primaire , Lisez les données et écrivez - les . Le Service cache est responsable de la lecture et de l'écriture de ces données DB, Cela réduit la responsabilité de la demande .
En lisant les données (Read Through)
- Lire les données du cache, Lisez et retournez directement à .
- Si ça ne se lit pas , Le composant cache charge d'abord à partir de la base de données , Retour de la réponse après l'écriture au cache .

Lors de l'écriture des données (Write Through)
- Vérifiez d'abord le cache.,Il n'existe pas dans le cache,Mise à jour directe de la base de données.
- Cache hit, Mettre à jour le cache en premier , Puis le service cache met à jour la base de données lui - même ( Mise à jour simultanée du cache et de la base de données )

In Cache AsideEn bas., Quand une demande de lecture s'est produite ,Si cache Aucune donnée correspondante n'existe dans , C'est le client lui - même qui écrit les données cache,Et Read-Through La politique est que le Service de cache écrit le cache lui - même , C'est transparent pour les clients .
Read/Write Through La politique est caractérisée par le fait que les noeuds de cache, et non les utilisateurs, traitent avec la base de données ,Au cours de notre développement, Cette stratégie est moins utilisée , La raison en est que les composants de cache que nous utilisons généralement (RedisOuMemcached) N'offre pas la possibilité d'écrire dans la base de données . Cache local seulement Guava CacheDansLoading CacheOui.Read Through L'ombre de la Stratégie .
Comme vous pouvez le voir,,Parce queWrite Through La base de données doit être mise à jour en même temps que les données sont écrites , A un impact plus important sur la performance . Pouvons - nous mettre à jour la base de données de façon asynchrone ?C'est la suite.Write BackStratégie.
Write-Back( écriture de cache asynchrone )Stratégie
Write-BackStratégie etRead-Write Through Le point commun de la politique est que les deux sont des services de mise en cache qui sont responsables de la lecture et de l'écriture du cache et de la base de données .
La différence est queWrite-Back Utiliser le cache comme source de données fiable , Écrivez seulement dans le cache à chaque fois , L'écriture dans la base de données est asynchrone , Par exemple, lorsque les données sont retirées du cache, elles sont stockées dans la base de données ou mises à jour par lots après un certain temps .
Avantages: C'est que la vitesse de lecture et d'écriture est très rapide , Parce que tout est lu et écrit directement à partir du cache . Il y a une certaine tolérance à l'indisponibilité de la base de données dans le service , Lorsque la base de données n'est pas disponible , Peut également traiter les résultats normalement , Mettre à jour les données après la récupération de la base de données . Il réduit également la pression de la base de données , L'opération write Database peut être effectuée lorsque le trafic est faible .
Inconvénients:Risque de perte de données, Si le service cache est suspendu et que les données ne sont pas écrites dans la base de données à temps ,Les données seront perdues.
Parfait pour la scène: Scénarios où les données changent fréquemment et où les exigences en matière de cohérence des données sont moins élevées ,Comme le nombre de vues、C'est bon.
Résumé
Les trois stratégies de lecture et d'écriture du cache ont leurs propres avantages et inconvénients , Nous devons choisir ce qui est le mieux adapté à un scénario d'affaires particulier . Si vous lisez plus et écrivez moins , Et des exigences élevées en matière de cohérence des données ,Peut être utiliséCache AsideStratégie. Si vous écrivez plus et lisez moins , Et les exigences en matière de cohérence des données ne sont pas élevées ,C'est bon.Read-Write ThroughOuWrite-BackStratégie.
Ryan.ou
边栏推荐
- PHP 防止或检测页面被刷新 post重复提交问题
- Livegbs design document of security camera internet live broadcast scheme
- How to quickly shut down the computer shut down command sharing
- 电脑待机要按什么键解除 解除电脑睡眠模式的步骤
- 无法打开代理服务器提示代理服务器没有设置为完全访问该怎么办?
- 事件抽取文献整理(2020-2021)
- 电脑时间经常不准怎么办?设置自动更新校对电脑时间的教程
- Scientific computing and Simulation - a brief introduction and application of the nonlinear least square problem of Gauss Newton method
- 电脑分区时出现'磁盘上没有足够的空间完成此操作'的解决办法
- 局域网SDN技术硬核内幕 - 02 前传 多核技术为摩尔定律续一秒
猜你喜欢
随机推荐
删除文件时需要system权限怎么办 你需要来自system的权限才能删除的解决办法
Is it safe to apply for a stock trading account online?
STL container -string Simulation Implementation
Huawei shengteng competition materials
Shell脚本
How to add a website as a trusted trusted site setup tutorial
How to embed the monitoring image into wechat official account for live broadcast
龙芯掌门人吐苦水:我们有世界第一性能的CPU,但可惜没人用!
Kali tools sqlmap common usage
电脑桌面卡住了怎么办?电脑死机桌面卡死现象的解决办法介绍
CAN总线详解
LUR caching algorithm
DataGrip使用教程(GIF版)
Computer prompts how to deal with insufficient memory. The solution of insufficient computer C disk
OWA动态密码短信认证方案,解决outlook邮件双因子认证问题
局域网SDN技术硬核内幕 - 3 前传 突破多核的瓶颈——虚拟化
How to solve the problem that telnet is not an internal or external command? Telnet is not an internal or external command solution
What is the difference between 32-bit and 64 bit computers
电脑分区时出现'磁盘上没有足够的空间完成此操作'的解决办法
NULL与nullptr






![[matlab project practice] sine sweep (sine sweep signal)](/img/14/9f66d1c90d56409fd4d5c7540d9c27.png)

