<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        將MySQL數據映射到Memcached中

        來源:懂視網 責編:小采 時間:2020-11-09 15:40:08
        文檔

        將MySQL數據映射到Memcached中

        將MySQL數據映射到Memcached中:作者:張立冰 出處:http://www.libing.name/2009/02/06/mysql-map-data-to-memcachedmysql-map-data-to-memcached.html 差不多在一年前,寫過一篇文章介紹將MySQL數據映射到Memcached,當時MySQL和Memcached Functions
        推薦度:
        導讀將MySQL數據映射到Memcached中:作者:張立冰 出處:http://www.libing.name/2009/02/06/mysql-map-data-to-memcachedmysql-map-data-to-memcached.html 差不多在一年前,寫過一篇文章介紹將MySQL數據映射到Memcached,當時MySQL和Memcached Functions

        作者:張立冰 出處:http://www.libing.name/2009/02/06/mysql-map-data-to-memcachedmysql-map-data-to-memcached.html 差不多在一年前,寫過一篇文章介紹將MySQL數據映射到Memcached,當時MySQL和Memcached Functions for MySQL都還不夠成熟,時過一年,Memc

        作者:張立冰
        出處:http://www.libing.name/2009/02/06/mysql-map-data-to-memcachedmysql-map-data-to-memcached.html

        差不多在一年前,寫過一篇文章介紹將MySQL數據映射到Memcached,當時MySQL和Memcached Functions for MySQL都還不夠成熟,時過一年,Memcached Functions for MySQL

        測試環境在Linux下進行,版本系統為CentOS5.
        以下為相關軟件,包括其版本和下載地址:

        mysql-5.1.30 下載
        memcached-1.2.6 下載
        libevent-1.4.7-stable 下載
        memcached_functions_mysql-0.8 下載
        libmemcached-0.26 下載


        編譯安裝MySQL,安裝因個人細好而定,省略許多與測試無關的編譯細節及參數。

        [root@localhost ~]#tar xzf mysql-5.1.30.tar_001.gz
        [root@localhost ~]#cd mysql-5.1.30
        [root@localhost ~]#./configure --prefix=/usr/local/mysql51
        [root@localhost ~]#make
        [root@localhost ~]#make install
        [root@localhost ~]#./scripts/mysql_install_db --user=mysql --skip-name-resolve
        [root@localhost ~]#/usr/local/mysql51/bin/mysqld_safe

        省略列出安裝memcached和libevent的相關命令,具體可按照實際情況安裝,測試時我將libevent默認安裝,memcached安裝于/usr/local/memcached目錄下。
        啟動memcached.

        /usr/local/memcached/bin/memcached -d -m 50 -u root -p 11211

        編譯安裝libmemcache.

        [root@localhost ~]#tar xzf libmemcached-0.26.tar.gz
        [root@localhost ~]#cd libmemcached-0.26
        [root@localhost ~]#./configure --with-memcached=/usr/local/memcached/bin/memcached
        [root@localhost ~]# make && make install

        編譯安裝Memcache UDFs for MySQL.

        [root@localhost ~]# tar xzf memcached_functions_mysql-0.8.tar.gz
        [root@localhost ~]# cd memcached_functions_mysql-0.8
        [root@localhost ~]# ./configure --with-mysql-config=/usr/local/mysql51/bin/mysql_config
        [root@localhost ~]# make && make install

        編譯完成后將編譯好的庫文件復制到mysql的插件目錄下,以便于加載使用。

        cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql51/lib/mysql/plugin/

        進入memcached_functions_mysql的源碼目錄,在目錄下有相關添加UDF的SQL文件用于初始化。

        [root@localhost ~]# mysql 

        注:如果對這些UDFs不熟悉或者不懂,可進行源碼目錄參看README,里邊有相應的說明。

        至此,相關軟件的編譯和安裝完成,進行測試,我們要達到的目的是當MySQL有新記錄插入時,同時插入到Memcached中,當記錄更新時同步更 新Memcached中的記錄,刪除時同時也刪除Memcached相關的記錄,為此創建三個觸發器來實現,如果對MySQL的觸發程序不熟悉可以參考 MySQL手冊第21章,下面SQL中的memcached為需要操作的表名,SQL如下:

        #插入數據時插入Memcached
        create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);
        #更新記錄時更新Memcached
        create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);
        #刪除記錄時刪除Memcached相應的記錄
        create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key);

        以下為測試記錄,在對MySQL操作的同時操作Memcached來查看情況,當然你也可以在啟動Memcached的時候帶-vv參數來查看相關信息.

        MySQL操作相關的記錄:

        [root@localhost ~]#mysql -S /tmp/mysql51.sock 
        Welcome to the MySQL monitor. Commands end with ; or /g.
        Your MySQL connection id is 6
        Server version: 5.1.30 Source distribution

        Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

        mysql> use test;
        Database changed

        mysql> create table `memcached` (`key` varchar(10), `value` varchar(100));
        Query OK, 0 rows affected (0.00 sec)

        mysql> create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);
        Query OK, 0 rows affected (0.00 sec)

        mysql> create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);
        Query OK, 0 rows affected (0.00 sec)

        mysql> create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key);
        Query OK, 0 rows affected (0.00 sec)

        mysql> insert into memcached values("keyi", "valuei"),("keyu","valueu"),("keyd", "valued");
        Query OK, 3 rows affected (0.00 sec)
        Records: 3 Duplicates: 0 Warnings: 0

        mysql> update memcached set `value`="update" where `key`="keyu";
        Query OK, 1 row affected (0.00 sec)
        Rows matched: 1 Changed: 1 Warnings: 0

        mysql> delete from memcached where `key`="keyd";
        Query OK, 1 row affected (0.00 sec)

        mysql> quit
        Bye

        Memcache查看時的記錄:

        [root@localhost ~]#telnet 127.0.0.1 11211
        Trying 127.0.0.1...
        Connected to 127.0.0.1.
        Escape character is '^]'.
        get keyi
        VALUE keyi 0 6
        valuei
        END
        get keyu
        VALUE keyu 0 6
        valueu
        END
        get keyd
        VALUE keyd 0 6
        valued
        END
        get keyu
        VALUE keyu 0 6
        update
        END
        get keyd
        END
        quit
        Connection closed by foreign host.

        至此,我們基本實現的將MySQL的數據同步到Memcached中,性能暫時還沒有測試,當然上面只是簡單的實現的數據映射的功能,如果在實現的 生產環境中,則需要考慮名字空間,高可靠性的問題,這些都是可以通過數據庫名-表名-關鍵字的方面能達到KEY唯一的目的,而高可靠性則是一個比較大的問 題。

        您可能還喜歡

      1. 數據的并行壓縮
      2. Random Tips
      3. 將MySQL數據映射到Memcached
      4. 提高 Linux 上 socket 性能
      5. PHP5 像使用數組一樣使用Memcache
      6. 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        將MySQL數據映射到Memcached中

        將MySQL數據映射到Memcached中:作者:張立冰 出處:http://www.libing.name/2009/02/06/mysql-map-data-to-memcachedmysql-map-data-to-memcached.html 差不多在一年前,寫過一篇文章介紹將MySQL數據映射到Memcached,當時MySQL和Memcached Functions
        推薦度:
        標簽: 數據 映射 作者
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费福利在线观看| 亚洲av最新在线观看网址| 91免费福利视频| 国产精品亚洲w码日韩中文| 亚洲国产美女精品久久久| 日韩精品免费一区二区三区| 亚洲视频无码高清在线| 在线观看人成视频免费| 亚洲成av人在线观看网站 | 粉色视频成年免费人15次| 国产精品成人免费综合| 免费国产黄网站在线观看动图 | 男女猛烈激情xx00免费视频| 男人的天堂亚洲一区二区三区 | 无码免费午夜福利片在线| 亚洲国产美女在线观看| 成人午夜18免费看| 污视频网站在线观看免费| 亚洲人成在线播放网站| 99热在线免费播放| 国产精品亚洲四区在线观看| 国产精品美女自在线观看免费| 青青久久精品国产免费看| 在线亚洲97se亚洲综合在线| 久久免费精彩视频| 亚洲一区二区三区国产精华液| 免费a级黄色毛片| 久久久久久久99精品免费观看| 亚洲高清视频免费| 免费国产成人午夜私人影视| 中文字字幕在线高清免费电影| 亚洲性色高清完整版在线观看| 国产一级理论免费版| a毛片全部免费播放| 亚洲五月丁香综合视频| 亚洲精品网站在线观看不卡无广告 | 国产无遮挡无码视频免费软件| 国产亚洲精品影视在线| 久久亚洲中文字幕精品一区| 国产福利在线免费| 免费人成激情视频在线观看冫|