本篇文章是通过watch(监控)+mutil(事务)实现应用于在分布式高并发处理等相关场景。下边先通过redis-cli.exe来测试多个线程修改时,遇到问题及解决问题。
高并发下修改同一个key遇到的问题:
1)定义一个hash类型的key,key为:lock_test,元素locker的值初始化为0。
2)实现高并发下对locker元素的值递增:定义64个多线程,并发的对lock_test元素locker的值进行修改。
packagecom.dx.es;importjava.util.concurrent.CountDownLatch;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;public classTest_UnLock {public static voidmain(String[] args) {final JedisPool pool =RedisUtil.getPool();//获得jedis对象
Jedis jedis =pool.getResource();
jedis.hset("lock_test", "locker", "0");
String val= jedis.hget("lock_test", "locker");
System.out.println("lock_test.locker的初始值為:" +val);
jedis.close();int threahSize = 64;final CountDownLatch threadsCountDownLatch = newCountDownLatch(threahSize);
Run