最近在CentOS中使用了memcached和libmemcached,调用memcached_add,memcached_get等接口函数总是报错, 错误码为MEMCACHED_SOME_ERRORS ,
memcached_strerror函数打印错误信息为:”SOME ERRORS WERE REPORTED”。
首先确认服务软件memcached是否运行正常。在命令行执行以下命令:
# echo -e ‘add my_key 0 60 11\r\nhello world\r’ | nc localhost 11211
STORED
[# echo -e ‘get my_key\r’ | nc localhost 11211
VALUE my_key 0 11
hello world
END
执行正常,说明服务端工作正常。网上google搜索问题,没有结果,后来灵感一现,怀疑可能是libmemcached devel开发包的版本跟memcached的版本不兼容。
决定重新安装CentOS最新的memcached和libmemcached程序:
yum install memcached
yum install libmemcached
yum install libmemcached-devel
重新配置好头文件后,程序工作一切OK!问题得以解决。
此外,yum升级都是rpm包安装,查看文件安装路径需要用到2条重要的rpm命令:
rpm -qa |grep libmemcached-devel #查询所有的安装包,找到libmemcached-devel的rpm包名全称
rpm -ql libmemcached-devel-1.0.4-3.el5 #查询指定包的安装详细列表和文件安装路径
后记:
使用memcached需要注意libmemcached和服务软件memcached的版本匹配问题。