Hello! 2012/7/30 steven <suy...@gmail.com>: > 我要做类似一个秒杀的程序, > 用户有一定的积分,用户可以用积分兑换商品. > 比如有10个商品,用户请求兑换这个商品的时候,我需要先去判断他的积分是否足够, > 然后再判断他今天消耗的积分是否超出每日上限,如果都满足,我就扣去他的积分, > 然后把商品给他,他兑换成功. > > 目前是用跑在resin下的java web应用程序来处理这个逻辑的, > 高并发下除非加锁或者加同步,否则很难避免线程安全的问题, > 我们的数据库用的是redis, > 如果这部分逻辑用lua来写,是否能解决这个问题呢? > 原子性的保证应该在后端做,否则前端无法方便地 scale. 对于 redis 后端有两种做法: 1. 使用 redis 事务:http://redis.io/topics/transactions/ 2. 使用 redis 服务器端 Lua 脚本支持:http://redis.io/commands/eval Best regards, -agentzh