pom.xml文件class.setnx(k,?)如果k中没有值,则赋值,如果有则不动。秒杀业务的实现——分布式锁机制7000元手机20先显示支付成功1元:1tomcat服务器必须有多个2数据库数据只有1副本3高并发是不可避免的,即对同一个资源的多线程操作,导致线程安全问题使用同步锁:适用于单个tomcat服务器同步锁不适合开发大型程序,因为它只能负责tomcat的姿态如果两个tomcat都使用同步锁,两个服务器共同读写数据库,肯定会出现并发问题,也就是手机卖了很多次。如何保证业务的实现??为了解决这种问题,使用了分布式锁,锁使用第三方操作,是公开的。原理:当一把锁被使用时,其他用户不能使用。策略:用户在redis中保存一个key。如果redis中有人使用了这个锁,其他人是不允许使用的。如果redis没有钥匙,说明我可以用这把锁。为了防止钥匙一直被释放,在锁中设置生存时间。示意图使用了redisredis单线程、单进程,所以不可能同时存储key。锁定setkey以解锁delkey。具体如何在这个方法中验证加锁jedis.set("aaa",v,setParams)是否加锁成功,返回ok解锁就会有问题,因为解锁方法都是最后,其他人可能会转移自己的锁,从而导致提前释放。所以需要设置密码,只是值。真实密码匹配或执行时间超过释放前。
