当前位置:网站首页>Redis transaction and Message Subscription Publishing
Redis transaction and Message Subscription Publishing
2022-07-18 01:40:00 【_ Bar _ Ady】
redisServices
Concept
Plusieurs commandes peuvent être exécutées à la fois,L'essence est une collection de commandes.Dans une transaction
Toutes les commandes sont sérialisées,Exécuter séquentiellement sans être inséré par une autre commande,Pas de bouchons
Action
Dans une file d'attente,Une fois、Séquence、Exécution exclusive d'une série de commandes
Commandes courantes

5Quelques exemples
Case1:Exécution normale

Case2:Abandon de la transaction

Case3:Asseyez - vous.

Case4:Débiteur ennemi

Case5:watchSurveillance
Serrure pessimiste(Pessimistic Lock), Comme son nom l'indique,C'est très pessimiste,Chaque fois que je vais chercher les données, je pense que quelqu'un d'autre va les modifier,Donc chaque fois que vous prenez des données, elles sont verrouillées,Pour que quelqu'un d'autre prenne ces donnéesblockJusqu'à ce qu'il ait la serrure.Beaucoup de ces mécanismes de verrouillage sont utilisés dans les bases de données relationnelles traditionnelles,Comme la serrure,Serrures de montre, etc,Lisez la serrure.,Écrivez les serrures, etc,Tout est verrouillé avant l'opération
La serrure optimiste(Optimistic Lock), Comme son nom l'indique,C'est très optimiste,Chaque fois que je vais chercher les données, je pense que personne d'autre ne va les modifier,Pour ne pas verrouiller,Mais au fur et à mesure que vous mettez à jour les données, vous verrez si quelqu'un d'autre a mis à jour les données pendant cette période,Des mécanismes tels que le numéro de version peuvent être utilisés.La serrure optimiste s'applique au type d'application Multi - lecture,Cela augmente le débit,
Stratégie de verrouillage optimiste:La version soumise doit être supérieure à la version actuelle de l'enregistrement pour effectuer la mise à jour
1Initialisation des soldes disponibles et des soldes dus par carte de crédit
2 Pas de tampons , Surveillance avant mise en marche multi, S'assurer que les deux montants changent dans la même transaction .
3C'est surveillé.key,SikeyModifié, L'exécution de la dernière transaction a échoué 
4Une fois exécutéexec Toutes les serrures de surveillance précédemment ajoutées seront annulées
5WatchDirectives,Comme une serrure optimiste,Lorsque la transaction est engagée,SiKeyLa valeur de a été modifiée par un autre client,Par exemple,listDéjà par un autre clientpush/popC'est parti.,Toute la file d'attente des transactions ne sera pas exécutée
6AdoptionWATCHLa commande surveille plusieursKeys,SiWATCHAprès quoi?KeyLa valeur de a changé,EXECToutes les transactions commandées seront abandonnées,Retour en même tempsNullmulti-bulkRéponse pour aviser l'appelant que l'exécution de la transaction a échoué
3Phase
Ouvert:ParMULTIDémarrer une transaction
En ligne.:Filez plusieurs commandes dans la transaction,Ces ordres ne sont pas exécutés immédiatement,Au lieu de cela, mettez - le dans la file d'attente des transactions en attente d'exécution
Mise en œuvre:ParEXECLa commande déclenche la transaction
3Caractéristiques
Opération d'isolement séparée:Toutes les commandes de la transaction sont sérialisées、Exécution séquentielle.Transaction en cours d'exécution,Ne sera pas interrompu par une demande de commande envoyée par un autre client.
Il n'y a pas de concept de niveau d'isolement:Les commandes dans la file d'attente ne seront pas réellement exécutées tant qu'elles n'auront pas été engagées,Parce qu'aucune instruction n'est réellement exécutée avant qu'une transaction ne soit engagée,Il n'existe pas non plus”Requête dans la transaction pour voir les mises à jour dans la transaction,Impossible de voir la requête en dehors de la transaction”C'est un problème de tête
L'atomicité n'est pas garantie:redisSi une commande de la même transaction échoue,Les commandes subséquentes seront toujours exécutées,Pas de retour en arrière
redisAbonnement à la publication
Concept
Un mode de communication de messages entre les processus :Expéditeur(pub)Envoyer un message,Abonnés(sub)Recevoir un message.
Abonnez - vous au diagramme des messages de publication

Commandes courantes
CAS


边栏推荐
- 不同类型的印刷机作用
- Excel fast l count the number of red data in all lines [commonly used in teaching]
- Matlab底层源码实现图像动态二值化
- Common vulnerability types of tcp/ip protocol
- TCP/IP协议常见漏洞类型
- 001 hierarchy selector
- 云服务器跟物理机哪个更适合做高防服务器
- 029. Copying and moving of documents
- Typescript 14 starting from 0: built in tool type
- 030. deletion and link of documents
猜你喜欢

JMeter 21天打卡 day02

Today's sleep quality record is 80 points

Restore of data encryption returned by a website

小程序webview页面转发后,打开页面空白

Smiling face detection based on machine learning

Realizing Halcon scale with MATLAB low-level source code_ image_ Max operator effect

029. Copying and moving of documents

Data Lake (19): SQL API reads Kafka data and writes it to iceberg table in real time

STM32 application development practice tutorial: application development of persistent storage of environmental parameters

002 descendant selector
随机推荐
Network security (1)
【C 练习】下列代码输出的结果是什么
From March to June, after summary, more than 200 pages of true question notes and detailed explanations (including core test sites and 6 major factories)
计算方法工程数学第一节课Doolittle
How much do you know about programming paradigms -- clarify the mainstream programming paradigms
阿同的小心愿
Node connects to the database for addition, deletion, modification and query
Detailed installation steps of mysql5.6 version
JMeter 21 day clock in day04
How can Volvo be confident to maintain "zero casualties" in traffic safety in the era of electrification?
2020ccpc Qinhuangdao exam results (ruler)
去掉CocosCreator自带的加载界面
C语言实现三子棋
结构体相关类型解析
云服务器跟物理机哪个更适合做高防服务器
UML class diagram
A Tong's little wish
MFC pet store information management system
【C 练习】打印菱形
Markdown extended syntax