В чем реальная разница между откатом и сбросом?Например, в SQL Server внутри транзакции я проверяю ошибки в каждом операторе, а затем условно прерываю транзакцию.
Здесь вы можете использовать ERR
ответ Redis, который, например, phpredis правильно обрабатываеткак условие ошибки.
Следующий код обнаруживает ошибку ZADD
, например.
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->multi();
$redis->set('ch1',1978); //good command
$f = $redis->zadd('ch2',1231); //this will fail
if (!$f) {
$redis->discard();
echo "Transaction aborted";
}
else {
$redis->exec();
echo "Transaction committed";
}