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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                #### Redis作為mysql的緩存服務器(讀寫分離) * * * * * 一、redis簡介 Redis是一個key-value存儲系統。和Memcached類似,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。在部分場合可以對關系數據庫起到很好的補充作用。它提供了Java,C/C++(hiredis),C#,PHP,JavaScript,Perl,Object-C,Python,Ruby等客戶端,使用很方便。 二、架構圖 ![](https://box.kancloud.cn/6b5d04614aff422e8e2fbbbb06b080df_921x190.png) 大致結構就是讀寫分離,將mysql中的數據通過觸發器同步到redis中。 三、安裝LNMP環境 四、安裝redis 1、安裝redis 2、安裝php的redis擴展 3、測試是否安裝成功 五、讀寫分離 這里只是簡單的做了一下讀,沒有寫操作的相關代碼,過一會測試,直接到數據庫里執行update來模擬寫操作。 1、在mysql中插入一些測試數據 ~~~ [iyunv@redis ~]# mysql -u root -p123456 mysql> create database mytest; mysql> CREATE TABLE `test` (`id` int(7) NOT NULL AUTO_INCREMENT, `name` char(8) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; mysql> INSERT INTO `test` VALUES (1,'sven'),(2,'jim'),(3,'zhu'),(4,'wang'),(5,'ftd'),(6,'test'),(7,'test01'),(8,'test02'),(9,'test03'); mysql> select * from mytest.test; +----+--------+ | id | name | +----+--------+ | 1 | sven | | 2 | jim | | 3 | zhu | | 4 | wang | | 5 | ftd | | 6 | test | | 7 | test01 | | 8 | test02 | | 9 | test03 | +----+--------+ ~~~ ~~~ <?php $redis = new Redis(); $redis->connect('127.0.0.1',6379) or die ("could net connect redis server"); $query = "select * from test limit 8"; //這里讀取了8條數據 for ($key = 1; $key < 9; $key++) { if (!$redis->get($key)) { $connect = mysql_connect('127.0.0.1','root','123456'); mysql_select_db(mytest); $result = mysql_query($query); //如果沒有找到$key,就將該查詢sql的結果緩存到redis while ($row = mysql_fetch_assoc($result)) { $redis->set($row['id'],$row['name']); } $myserver = 'mysql'; break; } else { $myserver = "redis"; $data[$key] = $redis->get($key); } } echo $myserver; echo "<br>"; for ($key = 1; $key < 9; $key++) { echo "number is <b><font color=#FF0000>$key</font></b>"; echo "<br>"; echo "name is <b><font color=#FF0000>$data[$key]</font></b>"; echo "<br>"; } ?> ~~~ 第一次訪問,redis中沒有對應的KEY ![](https://box.kancloud.cn/8b56ca16383d2521defe013f5c64151b_612x415.png) 再次訪問,此時redis中已有相關數據 ![](https://box.kancloud.cn/3e7801cbedb5d593a24442cd7bee2c2c_617x423.png) 到這里,我們已經實現了redis作為mysql的緩存服務器,但是如果更新了mysql,redis中仍然會有對應的KEY,數據就不會更新,此時就會出現mysql和redis數據不一致的情況。所以接下來就要通過mysql觸發器將改變的數據同步到redis中。 六、通過gearman實現同步 * * * * * https://www.iyunv.com/thread-52670-1-1.html
                  <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>

                              哎呀哎呀视频在线观看