mysql事务具有原子性,隔离性,一致性的特点。

redis保证在multi,exec之间的语句作为一个整体执行,redis在exec后,是无法回滚的,会出现部分成功,部分失败情况。
隔离性(mysql默认可重复读:事务中多次读取同一数据是一致的):
redis的事务类似mysql的串行化隔离界别,执行期间不会乱入其他语句。redis在事务使用乐观锁。
redis通过watch来监测数据,在执行exec前,监测的数据被其他人更改会抛出错误,取消执行。而exec执行时,redis保证不会插入其他人语句来实现隔离。
不是。redis是一个数据库,只是和mysql这类的关系型数据库有些区别而已,mycat才是一个数据库中间件。
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
redis数据库属于非关系型数据库,数据存放在内存堆栈中,效率比较高。
其存储数据是以json格式字符串存储字典的,而类似的关系型数据库无法实现这种数据的存储。
在爬取数据时,将数据暂存到redis中,等数据采集完成后,在从redis里将数据读取,并写入mysql数据库中。
在数据采集方面不在多说,只需将项目settings文件下的pipelines管道文件里的本地数据管道注释,让redis来接收数据即可。
代码脚本可自行上网查下,很简单的。