• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            focus on linux, c/c++, lua

            動手搭建memcached環(huán)境

            上一篇文章提到了關(guān)于memcached在項目中的一些思考,在自己微創(chuàng)新之前,自己先動手做個試驗,這里給個匯總。
            第一步:安裝memcached服務(wù)器
            因為memcached要用到libevent模塊,所以在這之前應該先安裝libevent。
            sudo apt-get install libevent-devel
            然后下載memcached服務(wù)器,我裝的是最新的1.4.0版本
            $ wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz
            $ tar zxf memcached-1.4.0.tar.gz
            $ cd memcached-1.4.0
            $ ./configure
            $ make
            $ sudo make install
            默認情況下memcached安裝到/usr/local/bin下。
            然后到/usr/local/bin的目錄下啟動memcached服務(wù)器,用控制臺的方式啟動,方便觀察log。
            $ /usr/local/bin/memcached -p 11211 -m 64m -vv
            至此memcached的服務(wù)器已經(jīng)啟動,如果你想在項目用memcached就需要用到memcached提供的
            客戶端api,我最開始是用的站內(nèi)偶像達人Kevin Lynx 寫的一個輕型客戶端,支持windows版本。
            在這里可以找到。后來我還是去官方下載了一個libmemcached
            第二步:安裝libmemcached
            $ wget wget http://launchpad.net/libmemcached/1.0/1.0.2/+download/libmemcached-1.0.2.tar.gz
            $ tar zxf libmemcached-1.0.2.tar.gz
            $ cd libmemcached-1.0.2
            $ ./configure
            $ make
            $ sudo make install
            有的網(wǎng)友提到這里configure時memcached服務(wù)器路徑指向問題,有的用軟連接解決,這里我們的memcached
            已經(jīng)安裝到/usr/local的路徑下,所以不用擔心,不出意外,到這里是沒有什么問題的。
            至此,libmemcached已經(jīng)安裝完成,到/usr/local/bin下面可以看到一堆文件,我只關(guān)心我需要的兩個,其他的也沒深入看。到/usr/local/include下面也能看到libmemcached提供的頭文件,so文件也已經(jīng)生成,但是需要自己手工加載一遍。
            $ sudo ldconfig -v
            就能看到libmemcached的so文件加載成功了。
            接下來,我們就要寫簡單的代碼測試了,測試的代碼很簡單,就是官方的測試代碼,稍作了修改,有錯誤的地方請指正下,畢竟memcached也不是新鮮的技術(shù)了。
            #include <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <libmemcached/memcached.h>

            int main()
            {  
              memcached_st 
            *memc;
              uint32_t flags;
              memcached_return rc;
              memcached_server_st 
            *servers;
              memc
            = memcached_create(NULL);
              servers
            = memcached_servers_parse("127.0.0.1:11211");
              memcached_server_push(memc, servers);
              memcached_server_list_free(servers);
              memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 
            0);
              
            char* result_str;
              
            const char* pkey = "TestSet";
              
            //const char* pkey = "this is a key"; /*wrong!!! no space should appear in the key*/
              int result_str_length;
              result_str
            = memcached_get(memc, pkey, strlen(pkey),
              
            &result_str_length, &flags,  &rc);
              
            if (rc == MEMCACHED_SUCCESS)
              
            {
                 printf(
            "%s\n", result_str);
                 free(result_str);
              }

              
            else
              
            {
                  
            // insert into the memcached;
                 printf("we should insert the data into cache\n");
                 
            char* pdata = "this is a data";
                 rc 
            = memcached_set(memc, pkey, strlen(pkey),
                 pdata, strlen(pdata), 
            00);
              }

              memcached_free(memc);

              
            return 0;
            }
            其中遇到了一個小插曲就是測試時隨便寫了一個key 如上,
            key的字符串中帶了空格,后來發(fā)現(xiàn)服務(wù)器報error,查了下協(xié)議
            the key must not include control characters or whitespace.
            空格去掉就好了。
            然后是編譯連接
            $ gcc -g test.c -o test -lmemcached
            貌似g++編譯的時候 有類型轉(zhuǎn)換錯誤,暫時先不管gcc可以通過。
            運行,然后去服務(wù)器上看調(diào)試信息,數(shù)據(jù)都正常無誤。
            打完收工!

            posted on 2012-01-09 13:42 zuhd 閱讀(2397) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            免费精品久久久久久中文字幕 | 久久久久久久久久久免费精品| 免费国产99久久久香蕉| 久久99热这里只有精品国产 | 国产亚洲精品美女久久久| 久久综合久久综合久久| 久久久久精品国产亚洲AV无码| 久久精品国产99久久久古代 | 久久久久国产亚洲AV麻豆| 中文字幕久久波多野结衣av| 欧美久久综合性欧美| 久久WWW免费人成一看片| 99久久精品免费看国产一区二区三区| 色老头网站久久网| 久久国产乱子精品免费女| 久久久久久久精品成人热色戒| 88久久精品无码一区二区毛片| 国产69精品久久久久久人妻精品| 久久国产成人精品国产成人亚洲| 久久久久亚洲AV无码专区体验| 亚洲Av无码国产情品久久| 99久久国产综合精品五月天喷水 | 亚洲精品国产美女久久久| 久久精品国产国产精品四凭| 久久国产一区二区| 日产精品久久久久久久性色| 久久午夜夜伦鲁鲁片免费无码影视| 久久国产成人| 香蕉99久久国产综合精品宅男自 | 久久久亚洲裙底偷窥综合| 久久久久久久久久免免费精品| 精品久久久久久无码国产| 久久99精品国产| 久久精品国产精品亜洲毛片| 久久精品99无色码中文字幕| 久久精品亚洲乱码伦伦中文 | 无码人妻久久一区二区三区免费 | 亚洲中文字幕无码一久久区| 国产精品99久久久精品无码| 久久久久国产精品嫩草影院| 亚洲av日韩精品久久久久久a|