recherche

Maison  >  Questions et réponses  >  le corps du texte

队列 - java redis做app后台 怎么实现多人抢单

阿神阿神2766 Il y a quelques jours516

répondre à tous(1)je répondrai

  • 高洛峰

    高洛峰2017-04-18 10:05:55

    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.

    répondre
    0
  • Annulerrépondre