今日在研究秒殺系統,用資料庫的樂觀鎖可以實現,但是在高併發下可能並不好,所以就想到了快取系統redis,因為redis本身也有鎖機制,廢話不多說,直接上**,請大神指點不足的地方。
class a
}public class myrunnable implements runnable
@override
public void run() 進來,秒殺蘋果。。。。",name);
boolean b = redisinfooperate.setsuccess(redistemplate, "test_redis_watch_111", "");
if(b)取走乙個蘋果,剩餘{}蘋果",name,count);
redishash.put("test_redis_watch", count);
}else沒搶到,因為賣光了",name);
}redisinfooperate.delkeylock(redistemplate, "test_redis_watch_111");
break;
}logger.info("使用者{}排隊等待中。。。。",name);
thread.sleep(500);
}catch(exception e)}}
}public class redisinfooperate
});return flag;
}/***
* 判斷key值是否存在
* @param redistemplate
* @param key
* @return
* @return: boolean
* @throws
* @author yuanxin
* @date 2023年5月25日 上午11:29:28
*/@suppresswarnings("unchecked")
public static boolean i***it(redistemplate redistemplate,final string key)
});return flag;
}/**
* 刪除併發鎖資料(防止資料太多)
* @param redistemplate
* @param key
* @return: void
* @throws
* @author yuanxin
* @date 2023年5月24日 下午3:24:56
*/@suppresswarnings("unchecked")
public static void delkeylock(redistemplate redistemplate,final string key)
});}
/***
* 模糊匹配刪除
* @param redistemplate
* @param key
* @return: void
* @throws
* @author yuanxin
* @date 2023年5月25日 上午11:29:58
*/@suppresswarnings("unchecked")
public static void delkeylockmutil(redistemplate redistemplate,final string key)
}return null ;
}});}}
用Redis輕鬆實現秒殺系統
秒殺系統,是典型的短時大量突發訪問類問題。對這類問題,有三種優化效能的思路 寫入記憶體而不是寫入硬碟 非同步處理而不是同步處理 分布式處理 用上這三招,不論秒殺時負載多大,都能輕鬆應對。更好的是,redis能夠滿足上述三點。因此,用redis就能輕鬆實現秒殺系統。用我這個方案,無論是電商平台 秒殺,...
用Redis輕鬆實現秒殺系統
秒殺系統,是典型的短時大量突發訪問類問題。對這類問題,有三種優化效能的思路 寫入記憶體而不是寫入硬碟 非同步處理而不是同步處理 分布式處理 用上這三招,不論秒殺時負載多大,都能輕鬆應對。更好的是,redis能夠滿足上述三點。因此,用redis就能輕鬆實現秒殺系統。用我這個方案,無論是電商平台 秒殺,...
用Redis輕鬆實現秒殺系統
秒殺系統,是典型的短時大量突發訪問類問題。對這類問題,有三種優化效能的思路 寫入記憶體而不是寫入硬碟 非同步處理而不是同步處理 分布式處理 用上這三招,不論秒殺時負載多大,都能輕鬆應對。更好的是,redis能夠滿足上述三點。因此,用redis就能輕鬆實現秒殺系統。用我這個方案,無論是電商平台 秒殺,...