<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Redis 事務命令multi,exec,watch,unwatch,discard 語法錯誤前期的執行不會被回滾,錯誤不應該出現在正式環境中。 不像mysql的事務完全回滾。 Redis 事務可以一次執行多個命令, 并且帶有以下三個重要的保證: * 批量操作在發送 EXEC 命令前被放入隊列緩存。 * 收到 EXEC 命令后進入事務執行,事務中任意命令執行失敗,其余的命令依然被執行。 * 在事務執行過程,其他客戶端提交的命令請求不會插入到事務執行命令序列中。 一個事務從開始到執行會經歷以下三個階段: * 開始事務。 * 命令入隊。 * 執行事務。 * * * ## 實例 以下是一個事務的例子, 它先以**MULTI**開始一個事務, 然后將多個命令入隊到事務中, 最后由**EXEC**命令觸發事務, 一并執行事務中的所有命令: ~~~ redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED redis 127.0.0.1:6379> GET book-name QUEUED redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED redis 127.0.0.1:6379> SMEMBERS tag QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming" ~~~ 單個 Redis 命令的執行是原子性的,但 Redis 沒有在事務上增加任何維持原子性的機制,所以 Redis 事務的執行并不是原子性的。 事務可以理解為一個打包的批量執行腳本,但批量指令并非原子化的操作,中間某條指令的失敗不會導致前面已做指令的回滾,也不會造成后續的指令不做。 > **這是官網上的說明 From redis docs on[transactions](http://redis.io/topics/transactions):** > > It's important to note that even when a command fails, all the other commands in the queue are processed – Redis will not stop the processing of commands. 比如: ~~~ redis 127.0.0.1:7000> multi OK redis 127.0.0.1:7000> set a aaa QUEUED redis 127.0.0.1:7000> set b bbb QUEUED redis 127.0.0.1:7000> set c ccc QUEUED redis 127.0.0.1:7000> exec 1) OK 2) OK 3) OK ~~~ 如果在 set b bbb 處失敗,set a 已成功不會回滾,set c 還會繼續執行。 * * * ## Redis 事務命令 下表列出了 redis 事務的相關命令: | 序號 | 命令及描述 | | --- | --- | | 1 | [DISCARD](https://www.runoob.com/redis/transactions-discard.html) 取消事務,放棄執行事務塊內的所有命令。 | | 2 | [EXEC](https://www.runoob.com/redis/transactions-exec.html) 執行所有事務塊內的命令。 | | 3 | [MULTI](https://www.runoob.com/redis/transactions-multi.html) 標記一個事務塊的開始。 | | 4 | [UNWATCH](https://www.runoob.com/redis/transactions-unwatch.html) 取消 WATCH 命令對所有 key 的監視。 | | 5 | [WATCH key \[key ...\]](https://www.runoob.com/redis/transactions-watch.html) 監視一個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那么事務將被打斷。 |
                  <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>

                              哎呀哎呀视频在线观看