Je ne comprends pas très bien la signification de votre code, et il ne semble pas correspondre à votre description.
Il n'est pas impossible d'utiliser Redis, mais l'efficacité peut être un peu faible. Il est recommandé d'utiliser le verrouillage optimiste pour résoudre ce problème.
Par exemple : Supposons qu'il y ait un champ de version dans la table de commande. Ce champ ne peut être incrémenté que dans un sens (généralement +1). Lors de la sélection, consultez également version :
.
SELECT ..., version FROM order
WHERE ...;
UPDATE order
SET ...,
version = version+1
WHERE version = 上一个SELECT语句带出来的version值
Supposons que l'utilisateur A et l'utilisateur B trouvent les commandes avec order_id=1, version=1 dans un certain laps de temps, l'un après l'autre ou en même temps. En raison de l'existence du verrouillage de ligne mysql lors de la MISE À JOUR, un seul utilisateur. la MISE À JOUR sera réussie (1 lignes affectées), la MISE À JOUR d'un autre utilisateur a échoué (0 lignes affectées), et vous pourrez alors juger si l'utilisateur a réussi à saisir la commande en fonction du nombre de lignes renvoyées après la MISE À JOUR.
Je ne comprends pas très bien la signification de votre code, et il ne semble pas correspondre à votre description.
Il n'est pas impossible d'utiliser Redis, mais l'efficacité peut être un peu faible. Il est recommandé d'utiliser le verrouillage optimiste pour résoudre ce problème.
Par exemple :
.Supposons qu'il y ait un champ de version dans la table de commande. Ce champ ne peut être incrémenté que dans un sens (généralement +1). Lors de la sélection, consultez également
version
:Supposons que l'utilisateur A et l'utilisateur B trouvent les commandes avec order_id=1, version=1 dans un certain laps de temps, l'un après l'autre ou en même temps. En raison de l'existence du verrouillage de ligne mysql lors de la MISE À JOUR, un seul utilisateur. la MISE À JOUR sera réussie (1 lignes affectées), la MISE À JOUR d'un autre utilisateur a échoué (0 lignes affectées), et vous pourrez alors juger si l'utilisateur a réussi à saisir la commande en fonction du nombre de lignes renvoyées après la MISE À JOUR.