recherche

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

redis事务具有原子性和持久性吗?

redis事务具有原子性和持久性吗?

redis设计与实现 书中说:

Redis的事务总是具有ACID中的原子性、一致性和隔离性,当服务器运行在AOF
持久化模式下,并且appendfsync选项的值为always时,事务也具有耐久性。

可看网上资料,又说redis事务不满足原子性和持久性:

求解答~~

迷茫迷茫2769 Il y a quelques jours781

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

  • 迷茫

    迷茫2017-04-24 09:14:18

    Cela est principalement dû à des doutes sur l'atomicité de redis. Il a maintenant été vérifié que redis ne garantit pas l'atomicité. Lorsque l'exécution de la commande échoue dans la transaction, elle ne sera pas annulée.

    Il est important de noter que même lorsqu'une commande échoue, toutes les autres commandes de la file d'attente sont traitées – Redis n'arrêtera pas le traitement des commandes.

    répondre
    0
  • PHPz

    PHPz2017-04-24 09:14:18

    Tout d'abord, redis est monothread, il n'y a donc pas de concept de transaction, à moins que vous n'utilisiez mutil pour encapsuler manuellement un ensemble de commandes et les exécuter dans leur ensemble, plus précisément, si une instruction dans l'ensemble échoue, sera-t-il annulé ? Vous pouvez faire un test vous-même.
    Mono-thread, donc chaque commande est atomique. La cohérence et l'isolation sont destinées aux transactions. Les transactions Redis sont exécutées en encapsulant un groupe de commandes ensemble, elles sont donc isolées car elles bloquent les autres. Quant à l'exécution des commandes, quant à la cohérence. , si le test que vous effectuez ci-dessus est annulé, alors il est cohérent, s'il n'est pas annulé, alors il n'est pas cohérent.

    répondre
    0
  • Annulerrépondre