redisdao 來控制秒殺物件是否放入快取中
@repository
public class redisdao
private runtimeschemaschema = runtimeschema.createfrom(seckill.class);
public seckill getseckill(integer seckillid)
} finally
} catch (exception e)
return null;
}public string putseckill(seckill seckill) finally
} catch (exception e)
return null;
}}
@configuration
public class jedisconfig ")
private string host;
@value("$")
private int port;
@value("$")
private int timeout;
@bean
public jedispool redispoolfactory()
}
@autowired
redisdao redisdao;
private integer id =1;
@test
public void seckill()
}}
-- 秒殺執行儲存過程
delimiter $$ -- console ; 轉換為 $$
-- 定義儲存過程
-- 引數: in 輸入引數; out 輸出引數
-- row_count(): 返回上一條修改型別sql的影響行數
-- 0:未修改資料; >0 表示修改的行數; <0 表示sql錯誤/未執行修改
create procedure `spring`.`execute_seckill`( in v_seckill_id int , in v_phone varchar(255) , in v_kill_time timestamp , out r_result int )
begin
declare
insert_count int default 0;
start transaction;
insert ignore into success_killed
( seckill_id, user_phone, create_time )
values
( v_seckill_id, v_phone, v_kill_time );
select
row_count( ) into insert_count;
if ( insert_count = 0 ) then
rollback;
set r_result = - 1;
elseif ( insert_count < 0 ) then
rollback;
set r_result = - 2;
else
update seckill
set number = number - 1
where
seckill_id = v_seckill_id
and end_time > v_kill_time
and start_time < v_kill_time and number > 0;
select
row_count( ) into insert_count;
if ( insert_count = 0 ) then
rollback;
set r_result = 0;
elseif ( insert_count < 0 ) then
rollback;
set r_result = - 2;
else commit;
set r_result = 1;
end if;
end if;
end;
$$-- 儲存過程定義結束
set @r_result = -3;
call execute_seckill(1, 11111111118, now(), @r_result);
select @r_result;
-- 獲取結果
-- 儲存過程
-- 1:儲存過程優化:事務行級鎖持有時間
-- 2:不要過度依賴儲存過程
-- 3:簡單的邏輯可以應用儲存過程
-- 4:qps:乙個秒殺單6000/qps-- 秒殺執行過程
騰訊雲雙12限時秒殺
騰訊雲伺服器在 12 月份推出多個秒殺活動專場,針對各種不同需求的使用者推出了各項優惠措施,從 1 核2g 到 16 核32g 有各種不同檔位的伺服器均提供各種優惠,另外新老使用者也有不同的活動,以下我們來看下本次 12 月騰訊雲伺服器活動內容。騰訊雲www.cppcns.com伺服器 12 月專場...
springboot單機秒殺之queue佇列
一 queue佇列,類似水管,水從入口進從水龍頭出,水龍頭要一直著水就會出來,沒有水就會等水出來。所以我們用到兩個方法,新增和取值。add 增加乙個元索 如果佇列已滿,則丟擲乙個iiiegaislabeepeplian異常 put 新增乙個元素 如果佇列滿,則阻塞 因為我們是秒殺,我們指定佇列長度後...
MySQL限時解答
mysql在國內各個行業的使用率越來越高,使用場景也越多,相應的遇到的疑惑也越來越多。在遇到這些問題之後,目前已有的解決途徑有 1 培訓 這是從長計議的方式,不能解決燃眉之急 2 bbs 目前bbs相當沒落,提出問題之後,回答時間和質量均不好保證 3 qq群 即時通訊工具的訊息很容易被淹沒,有能力回...