一、事务的基本概念
1.事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条sql语句、一组sql语句或者整个程序。(一般一个程序中包含多个事务)
2.事务的开始和结束可以由用户显式控制,如果用户没有显式地定义事务,则由数据库管理系统按默认规定自动划分事务。在SQL中,定义事务的语句一般有三条:
BEGIN TRANSATION; //开始事务
COMMIT; //将事务中所有对数据库的更新写到磁盘上的物理数据库中去,事务正常结束
ROLLBACK; //回滚事务,回滚到事务开始时的状态
例如,YII框架中使用:
$transaction = Yii::$app->db->beginTransaction();
try{
//执行程序,或者脚本中的一些方法,或者一些sql语句
$this->actionShareAirTransport();
......
//提交事务
$transsction->commit();
} catch(Exception $e){ //出现异常
//回滚事务,回滚到事务开始时的状态
$transaction->rollback();
//返回错误
return '数据出现错误,已回滚';
}
redis事务的使用:redis中的事务不能回滚,mysql的事务可以回滚
一般情况下,redis接收到一个客户端连接发来的命令,立刻执行并返回结果。但是当连接发出