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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                1、memcached是什么 memcached 是以 LiveJournal 旗下 Danga?Interactive 公司的 Brad?Fitzpatric 為首開發的一款軟件,是一款高性能key/value數據緩存 2、memcached程序的應用場景 場景一:數據庫前端緩存 ![](https://box.kancloud.cn/9b8ceb3ce6988e9b74215ec182352999_549x414.png) 說明: * 數據庫常常是網站系統的瓶頸,數據庫訪問量大,常常會造成網站訪問不了 * 由于每次執行查詢(SQL)語句,都要進行一系列復雜的I/O操作,影響系統性能 * 假如每次都取得相同的數據,每次讓數據庫執行復雜的SQL語句,數據庫如果會說話,肯定會發牢騷,你都問了這么多遍了,難道還記不住嗎? 由于memcached是基于分布式的緩存系統,可獨立于網站應用本身。我們可以把SQL語句當成key,執行SQL語句獲取到的值當作Value值。當第二次發起SQL語句,應用程序會先查詢memcached,如果沒有,應用程序在查詢數據庫,然后存儲到memcached中 場景二:服務器間數據(session)共享 當后端有多臺應用程序(APP)服務器的時候,由于memcached是分布式內存對象緩存系統,不管是哪臺服務器產生的session都可以存儲在memcached中,其他服務器也可以讀取到 案例:基于php使用memcache存儲session * 在php.ini中全局設置 session.save_handler = memcache session.save_path = "tcp://192.168.20.136:11211" * 在程序文件中添加(index.php) ini_set("session.save_handler", "memcache"); ini_set("session.save_path", "tcp://127.0.0.1:11211"); 如果采用php-memcached的擴展引擎,則需要如下配置 ini_set("session.save_handler", "memcached"); // 是memcached不是memcache ini_set("session.save_path", "127.0.0.1:11211"); // 不要tcp: 3、memcached的特點 * 協議簡單 memcached 的服務器客戶端通信并不使用復雜的 XML 等格式,而使用簡單的基于文本行的協議。因此,通過 telnet 也能在 memcached 上保存數據、取得數據。下面是例子。 $?telnet?localhost?11211 Trying?127.0.0.1... Connected?to?localhost.localdomain?(127.0.0.1). Escape?character?is?'^]'. set?foo?0?0?3?????(保存命令) bar???????????????(數據) STORED????????????(結果) get?foo???????????(取得命令) VALUE?foo?0?3?????(數據) bar???????????????(數據) * 基于libevent的事件處理 libevent 是個程序庫,它將 Linux 的 epoll、BSD 類操作系統的 kqueue 等事件處理功能封裝成統一的接口。即使對服務器的連接數增加,也能發揮 O(1)的性能 * 內置內存存儲方式 為了提高性能,memcached中保存的數據都存儲在memcached內置的內存存儲空間中,由于數據僅存在內存中,因此當重啟memcached或重啟操作系統后,會導致全部緩存數據消失,另外,會基于LRU算法自動刪除不適用的緩存。因此memcached不適用存儲需要持久化的數據 * memcached不互相通信的分布式 memcached 盡管是“分布式”緩存服務器,但服務器端并沒有分布式功能。各個 memcached 不會互相通信以共享信息。那么,怎樣進行分布式呢?這完全取決于客戶端的實現。 * memcached 支持許多平臺 4、memcached的常用命令 ~~~ [admin@node7 ~]$ telnet localhost 11211 Trying ::1... Connected to localhost. Escape character is '^]'. set mykey 0 60 5 (set命令,設定一個key,緩存時間60秒) louis STORED get mykey (get命令獲取) VALUE mykey 0 5 louis END add testkey 0 60 5 (add命令追加一個key) alexs STORED replace testkey 0 60 5 (replace修改key的值) louis STORED get testkey VALUE testkey 0 5 louis END append testkey 0 60 10 (append命令追加key的值) louisalexs STORED get testkey VALUE testkey 0 15 louislouisalexs END delete testkey (delete刪除key) DELETED stats (stats命令查看狀態) STAT pid 27619 STAT uptime 76269 STAT time 1519362991 STAT version 1.4.15 STAT libevent 2.0.21-stable STAT pointer_size 64 STAT rusage_user 3.322436 STAT rusage_system 1.245913 STAT curr_connections 10 STAT total_connections 11 STAT connection_structures 11 STAT reserved_fds 20 STAT cmd_get 5 STAT cmd_set 6 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 3 STAT get_misses 2 STAT delete_misses 2 STAT delete_hits 1 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 315 STAT bytes_written 198 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT bytes 0 STAT curr_items 0 STAT total_items 6 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT evictions 0 STAT reclaimed 1 END ~~~ ~~~ 通過nc操作管理memcached服務 [root@node7 ~]# printf "get key003\r\n"|nc localhost 11211 VALUE key003 0 10 oldboy0982 END [root@node7 ~]# printf "set mykey01 0 60 10\r\noldboy0982\r\n"|nc localhost 11211 STORED [root@node7 ~]# printf "get mykey01\r\n"|nc localhost 11211 VALUE mykey01 0 10 oldboy0982 END ~~~
                  <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>

                              哎呀哎呀视频在线观看