<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # :-: **redis的使用** ### 悲觀鎖 解釋:悲觀鎖(Pessimistic Lock), 顧名思義,就是很悲觀。 每次去拿數據的時候都認為別人會修改,所以每次在拿數據的時候都會上鎖。 場景:如果項目中使用了緩存且對緩存設置了超時時間。 當并發量比較大的時候,如果沒有鎖機制,那么緩存過期的瞬間, 大量并發請求會穿透緩存直接查詢數據庫,造成雪崩效應。 ### 樂觀鎖 監控key,就是一個或多個key添加一個樂觀鎖 在此期間如果key的值如果發生的改變,則不能為key設定值 exec,discard,unwatch命令都會清除連接中的所有監視。 ``` mssql類型 <?php $error_level = error_reporting(0); $con = new mysqli('localhost','root','root','test'); if(!$con){ echo "數據庫連接失敗"; } $sql = "select * from products where id=1"; $result = mysqli_query($con,$sql); $aa= mysqli_fetch_row($result); if($aa[3]>0){ sleep(1); $sql = "update products set store=store-1 where id=1"; if(mysqli_query($con,$sql)){ echo "更新成功"; } }else{ echo "沒有庫存"; } ``` ``` <?php // ini_set('default_socket_timeout', -1); $redis =new Redis(); $redis->connect("127.0.0.1", 6379); $redis->watch('sales');//樂觀鎖 監視作用 set() 初始值0 $sales=$redis->get('sales'); $n=100; if($sales>=$n){ exit('秒殺結束'); } //開啟事務 $redis->multi(); $redis->incr('sales'); //將 key 中儲存的數字值增一 ,如果 key 不存在,那么 key 的值會先被初始化為 0 ,然后再執行 INCR 操作。 $res=$redis->exec(); //成功1 失敗0 if($res){ //秒殺成功 include 'db.php'; $sql="update products set store=store-1 where id=1"; if($mod->exec($sql)){ echo "秒殺完成"; } }else{ exit('搶購失敗'); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看