redis-事务特征(批量化操作)
来源:互联网 发布:nga宁芙淘宝店地址 编辑:程序博客网 时间:2024/06/15 02:56
一.redis事务概述
1.概念
和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制。在redis中,MULTI/EXEC/DISCARD/这三个命令是我们实现事务的基石
2.mysql事务与redis事务比较
mysql-事务:目的为了保证数据完整性,安全
redis-事务:目的为了进行redis语句的批量化执行
3.redis事务特征
1.在事务中的所有命令都将会被串行化的顺序执行,事务执行期间,redis不会再为其它客户端的请求提供任何服务,从而保证了事物中的所有命令被原子的执行
2.和关系型数据库中的事务相比,在redis事务中如果有某一条命令执行失败,其后的命令忍让会被继续执行。
3.我们可以通过MULTI命令开启一个事务,有关系型数据库开发经验的人可以将其理解为”BEGIN TRANSACTION”语句。在该语句之后执行的命令都将被视为事务之内的操作,最后我们可以通过执行EXEC/DISCARD命令来提交/回滚该事务内的所有操作。这两个redis命令可被视为等同于关系型数据库中的COMMIT/ROLLBACK语句。
4.在事务开启之前,如果客户端与服务器之间出现通讯故障并导致网络断开,其后所有待执行的语句都将不会被服务器执行。然而如果网络中断事件是发生在客户端执行EXEC命令之后,那么该事务中的所有命令都会被服务器执行
5.当使用Append-Only模式时,redis会通过调用系统函数write将该事务内的所有写操作在本次调用中全部写入磁盘。然而如果在写入的过程中出现系统崩溃,如电源故障到导致的宕机,那么此时也许只有部分数据被写入到磁盘,而另外一部分数据却已经丢失。Redis服务器会在重新启动时执行一系列必要的一致性检测,一旦发现类似问题,就会立即退出并给出相应的错误提示。此时,我们就要充分利用redis工具包中提供的redis-check-aof工具,该工具可以帮助我们定位到数据不一致的错误,并将已经写入的部分数据进行回滚。修复之后我们就可以再次重新启动redis服务器了
二.命令解释
1.开启事务
multi:开启事务用于标记事务的开始,其后执行的命令都将被存入命令队列,直到执行EXEC时,这些命令才会被原子的执行,类似与关系型数据中的:begin transaction
- QUEUED:这是把命令添加到队列,还没有执行,当你提交事务才会依次执行
2.提交事务
exec:提交事务,类似与关于性数据中的:commit 执行批量化
3.事务回滚
discard:事务回滚,类似与关系型数据库中的:rollback 不执行批量化
命令并没有执行
与其叫事务,还不如叫批量化执行
- redis-事务特征(批量化操作)
- redis-事务操作
- java操作redis事务
- 事务和批量复制操作
- Hibernate事务与批量操作.
- android数据库 批量 事务 操作
- android数据库 批量 事务 操作
- android数据库 批量 事务 操作
- java批量操作redis命令
- JdbcTemplate batchUpdate 批量操作加事务
- ibatis 做批量操作(含事务)
- 使用事务操作SQLite数据批量插入
- 浅谈FMDB事务批量更新操作耗时
- jboss 事务超时引起批量操作失败
- C#中事务批量操作sql语句
- Redis事务、持久化
- ServiceStack.Redis常用操作 - 事务、并发锁
- ServiceStack.Redis常用操作 - 事务、并发锁
- IOS获取图片中某个像素点的像素值,包括ARGB的各个值
- Sublime Text 插件安装
- 【模拟试题】花园
- 1010. 一元多项式求导
- pandas层次化索引
- redis-事务特征(批量化操作)
- 黑马程序员总结2--python高级编程
- selenium自动化之radio,select,checkbox
- 44-45-函数参数的秘密
- 如何在word中的方框里打钩
- ATOM下的C\C++编译
- Webpack执行命令参数详解
- DFS-lintcode解法总结
- php封装一个多文件上传