正在加载......
类别:[Linux/Unix]  时间: 2007-12-21 19:31:50; 浏览: 91860; 评论: 1  

    前端时间玩了一下memcached,由于工作关系得过一段时间在玩它。哎,工作就是这样,老变!

    libeven

    memcached的使用需要libeven的支持,我们得先装上libeven。
    官方网站:http://www.monkey.org/~provos/libevent/
    下载地址:http://www.monkey.org/~provos/libevent-1.4.0-beta.tar.gz
    libevent安装方式比较简单:

以下是代码片段:
./configure && make
make install
    这样就好

    检查如下:

以下是引用片段:
[root@localhost memcached-1.2.2]# ls -l /usr/local/lib/ | grep even
lrwxrwxrwx   1 root root      21 Nov 26 11:32 libevent-1.4.so.2 -> libevent-1.4.so.2.0.0
-rwxr-xr-x   1 root root  267334 Nov 26 11:32 libevent-1.4.so.2.0.0
-rw-r--r--   1 root root  351694 Nov 26 11:32 libevent.a
lrwxrwxrwx   1 root root      26 Nov 26 11:32 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.0.0
-rwxr-xr-x   1 root root  101485 Nov 26 11:32 libevent_core-1.4.so.2.0.0
-rw-r--r--   1 root root  139080 Nov 26 11:32 libevent_core.a
-rwxr-xr-x   1 root root     866 Nov 26 11:32 libevent_core.la
lrwxrwxrwx   1 root root      26 Nov 26 11:32 libevent_core.so -> libevent_core-1.4.so.2.0.0
lrwxrwxrwx   1 root root      27 Nov 26 11:32 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.0.0
-rwxr-xr-x   1 root root  214596 Nov 26 11:32 libevent_extra-1.4.so.2.0.0
-rw-r--r--   1 root root  273270 Nov 26 11:32 libevent_extra.a
-rwxr-xr-x   1 root root     873 Nov 26 11:32 libevent_extra.la
lrwxrwxrwx   1 root root      27 Nov 26 11:32 libevent_extra.so -> libevent_extra-1.4.so.2.0.0
-rwxr-xr-x   1 root root     831 Nov 26 11:32 libevent.la
lrwxrwxrwx   1 root root      21 Nov 26 11:32 libevent.so -> libevent-1.4.so.2.0.0

    看见有很多libevent,就可以放心了。

    memcached

    官方网站:http://www.danga.com/memcached/download.bml
    下载地址:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz

    memcached安装需要些参数:

以下是代码片段:
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local
make
make install

   我们来运行看看:
   运行:

以下是代码片段:
/usr/local/memcached/bin/memcached -d -m 10 -p 11211 -u root

    结果:
以下是引用片段:
[root@localhost memcached-1.2.2]# /usr/local/memcached/bin/memcached -d -m 10 -p 11211 -u root
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

    查找原因,解决方案如下:

以下是代码片段:
LD_DEBUG=libs /usr/local/memcached/bin/memcached -v

    有如下显示:

以下是引用片段:
[root@localhost memcached-1.2.2]# LD_DEBUG=libs /usr/local/memcached/bin/memcached -v
     18999:     find library=libevent-1.4.so.2 [0]; searching
     18999:      search cache=/etc/ld.so.cache
     18999:      search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib          (system search path)
     18999:       trying file=/lib/tls/i686/sse2/libevent-1.4.so.2
     18999:       trying file=/lib/tls/i686/libevent-1.4.so.2
     18999:       trying file=/lib/tls/sse2/libevent-1.4.so.2
     18999:       trying file=/lib/tls/libevent-1.4.so.2
     18999:       trying file=/lib/i686/sse2/libevent-1.4.so.2
     18999:       trying file=/lib/i686/libevent-1.4.so.2
     18999:       trying file=/lib/sse2/libevent-1.4.so.2
     18999:       trying file=/lib/libevent-1.4.so.2
     18999:       trying file=/usr/lib/tls/i686/sse2/libevent-1.4.so.2
     18999:       trying file=/usr/lib/tls/i686/libevent-1.4.so.2
     18999:       trying file=/usr/lib/tls/sse2/libevent-1.4.so.2
     18999:       trying file=/usr/lib/tls/libevent-1.4.so.2
     18999:       trying file=/usr/lib/i686/sse2/libevent-1.4.so.2
     18999:       trying file=/usr/lib/i686/libevent-1.4.so.2
     18999:       trying file=/usr/lib/sse2/libevent-1.4.so.2
     18999:       trying file=/usr/lib/libevent-1.4.so.2
     18999:
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

    主要是看最后一行提示的错误,那么我们:

以下是代码片段:
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2

    OK!再次运行:

以下是代码片段:
/usr/local/memcached/bin/memcached -d -m 10 -p 11211 -u root
    成功!

    貌似用“ldconfig”也可以解决这个问题

     libmemcache   

    libmemcache是memcached C的客户端之一。我准备使用这个玩意。
    官网:http://people.freebsd.org/~seanc/libmemcache/
    下载:http://people.freebsd.org/~seanc/libmemcache/libmemcache-1.4.0.rc2.tar.bz2
    编译:

以下是代码片段:
./configure
make
make install

     写一个有libmemcache函数的程序
     然后    

以下是代码片段:
gcc a.c -o a.cgi -L/usr/local/include -lmemcache


    运行

以下是代码片段:
./a.cgi

    提示类似上面的“error while loading shared libraries”的错误,查了一下可用"ldconfig"解决这个问题,那上面的可否用这个命令解决呢?

    上面的gcc编译的时候,带有参数“-lmemcache”。
    -l参数后面跟的库名有规则的,库的命名方式有libxxxx.so或libxxxx.a,编译时要用-lxxxx就可以了。
    而“-l”的意思就是代表是个“lib”了。

    所以在你自己编写动态库或者静态库时,命名还是得按照 libxxxx.so的形式来。

    不得不认为libmemcache有点糟糕,编译它自带的一个程序编译竟然有问题,很无语!

以下是引用片段:
[root@login benchmark]# gcc benchmark.c -L/usr/local/include -lmemcache
benchmark.c: In function `main':
benchmark.c:100: warning: passing arg 2 of `mc_set' discards qualifiers from pointer target type
benchmark.c:108: warning: passing arg 2 of `mc_set' discards qualifiers from pointer target type
benchmark.c:121: warning: passing arg 2 of `mc_req_add' discards qualifiers from pointer target type
benchmark.c:145: warning: passing arg 2 of `mc_delete' discards qualifiers from pointer target type
benchmark.c:153: warning: passing arg 2 of `mc_add' discards qualifiers from pointer target type
benchmark.c:167: warning: passing arg 2 of `mc_delete' discards qualifiers from pointer target type

    解决方法:

    找到passing arg 2这个参数的定义:

以下是引用片段:
const char *key;

    把const去了:
以下是引用片段:
char *key;

    这样就好了!

    然后:

以下是代码片段:
[root@login memcache-test]# ./a.out

    执行时可能报以下的错误:

以下是引用片段:
./a.out: error while loading shared libraries: libmemcache.so.0: cannot open shared object file: No such file or directory

    解决方法:

    执行ldconfig命令即可!


    附:

    http://kapoc.blogdriver.com/kapoc/1200549.html
    ldconfig命令 - - 动态链接库管理命令

    为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig.此执行程序存放在/sbin目录下.

    ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

    ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.

也许您对下面的文章感兴趣:
  1. [2008-04-15 18:18:19] [翻译]What is Linux? -- 什么是Linux
  2. [2008-04-03 15:35:46] [翻译]What is Linux? -- Linux从这里开始
  3. [2008-03-29 22:56:08] uniq和sort对汉字的识别差异
  4. [2008-01-24 18:53:26] eAccelerator 0.9.5.2 安装
  5. [2008-01-23 10:35:20] cut命令学习
  6. [2008-01-16 15:31:20] linux和freebsd下的路由操作的区别
  7. [2008-01-15 18:49:54] 修改符号链接的属主的方法
  8. [2007-12-04 17:58:27] memcached英文文档学习
  9. [2007-12-05 19:57:35] cgi的写法
  10. [2007-11-06 11:02:43] PHP加速器eAccelerator文档翻译
  11. [2008-07-09 13:21:34] crontab命令的使用介绍及我的体会
  12. [2008-08-06 23:22:38] 让你的vim显示颜色
  13. [2008-11-28 22:30:26] SYN Flood攻击、SYN Cookie防御和Linux/FreeBSD的内核参数修改
  14. [2009-02-16 19:40:04] Linux进程的层次关系
  15. [2007-12-04 17:58:27] memcached英文文档学习
  16. [2009-02-12 22:44:51] 查看、分析memcached使用状态
  17. [2008-01-24 18:53:26] eAccelerator 0.9.5.2 安装
类别:[随便说说]  时间: 2007-12-20 12:22:58; 浏览: 32204; 评论: 0  

以下是引用片段:

回家以后你会听到你老爸老妈谈到一些同事孩子们的趣闻,这世界上总会有些不到30岁就做了总裁的人,而且碰巧他是你妈的同事的朋友的亲戚的孩子。我很纳闷他们这么早就成功了,人生剩下的时间干什么,我为此专门请教过一个从国外留学回来,不到30岁就做到XXO的人,此人严肃的跟我说,准备下一个成功,似乎他的人生就是从成功到成功(我承认这么说话很新闻联播),我服了,这就是精英,让我惭愧的精英啊。

   网上随意看,看到阿生的个人空间,上有一文:这就是你跟精英的差别。看了觉得有意思,上面就是里面的一段话。

   全文看下来,很有同感,大家的生活都很有共同点。

也许您对下面的文章感兴趣:
  1. [2008-03-16 22:03:29] 成守财奴了
  2. [2007-10-11 18:24:21] 我们是如何杀入女生澡堂的
  3. [2008-01-14 19:16:15] [不得不服]最新成语入库--正龙拍虎
  4. [2007-10-04 18:05:42] 长假期间你敢出去玩么
  5. [2007-09-23 19:11:58]
  6. [2007-07-30 08:53:02] 第三次搬家
  7. [2007-07-12 09:00:25] 毕业后上班流水帐
  8. [2007-04-24 09:41:21] 纪念可能是走路上班的最后一天
  9. [2007-02-28 09:28:27] 煎饼、馒头与烧饼
  10. [2006-05-24 23:20:00] 感觉很累了
  11. [2006-03-30 21:23:00] 二十二年了
  12. [2008-07-07 22:40:32] 发现我是个懒得写blog的人
  13. [2008-09-26 17:36:34] 思考:中国房地产与美百位经济学家联署质疑金融救援计划
  14. [2008-11-19 19:18:05] 越来越懒得写blog了
  15. [2009-02-13 18:56:33] 与君共勉:有想法 就行动
类别:[随便说说]  时间: 2007-12-19 19:30:51; 浏览: 22316; 评论: 0  

       看了当年明月的《明朝那些事儿》,觉得他里面写的王守仁很不错,以至于我买了本专门看这个人。学习一下他对人生的理念。

       有空的可以去他的blog看看:
       王守仁 从603节到731节
       603:http://blog.sina.com.cn/s/blog_49861fd50100075b.html
       731:http://blog.sina.com.cn/s/blog_49861fd50100086s.html

也许您对下面的文章感兴趣:
    很抱歉暂时没有!
类别:[C/C++学习]  时间: 2007-12-05 19:57:35; 浏览: 58821; 评论: 2  
Tags : C C++ Linux
类别:[C/C++学习]  时间: 2007-12-04 17:58:27; 浏览: 64263; 评论: 1  
类别:[PHP心得]  时间: 2007-11-06 11:02:43; 浏览: 56161; 评论: 1  
类别:[C/C++学习]  时间: 2007-10-31 19:18:56; 浏览: 35452; 评论: 0  
类别:[随便说说]  时间: 2007-10-30 19:25:09; 浏览: 18786; 评论: 1  
类别:[随便说说]  时间: 2007-10-27 21:52:53; 浏览: 8994; 评论: 0  
类别:[MySQL学习]  时间: 2007-10-20 14:26:18; 浏览: 27679; 评论: 1  
Tags : mysql
[195][10/20][|<][6][7][8][9][10][11][12][13][14][15][>|] | 回页首
© 2004 - 2017 芽雨快跑 - 本页面所有内容,未经芽雨许可,欢迎转载,请注明出处

京ICP备09017802号