一、怎么预防数据库超售现象

1. 设置事务隔离级别为 serializable

serializable事务隔离级别,一般不建议使用,他是串行执行事务的

2. 在数据表上设置乐观锁

程序实现

3. 利用Redis

Redis读写性能2万/秒MySQL读性能5千/秒,写入3千/秒

Redis是单线程的NoSQL数据库,但是采用的是非阻塞执行

因为Redis是单线程,反而有时候处理速度比其他多线程的速度还快,因为它避免了多线程之间的切换

因为Redis的单线程是非阻塞执行的,客户端的发送的多条指令之间,Redis的单线程可能去执行其他客户的指令,所以并发修改数据容易产生超售的结果。


Redis引入了事务机制(批处理),一次性把多条命令传递给Redis执行,这就避免了其他客户端中间插队,出现超售的现象。


二、redis 实战

参考:http://c.biancheng.net/view/4544.html