初识Memcache---(1)memcache安装与启动

来源:互联网 发布:二级域名推广淘宝客 编辑:程序博客网 时间:2024/06/08 00:50

帮别的项目组解决问题时,发现他们用了memcache。虽然我们目前没有用到,但感觉了解下还是必要的,所以亲自动手,从最初的安装配置入手,这里着重记录下安装过程中出现的错误及解决方案,也给大家提供参考。
网上对于Memcache的介绍很多,这里我摘录了一个比较直白的介绍:
Memcache是自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。
1、安装memcache服务端
安装memcached需要先安装libevent,安装命令如下:

Debian/Ubuntu: apt-get install libevent-dev Redhat/Centos: yum install libevent-devel

查看安装是否成功libevent

[root@localhost memcached-1.4.34]# ls -al /usr/lib64 | grep libevent

安装Memcached

[root@localhost installPackage]# tar -zxvf memcached-1.4.34.tar.gz[root@localhost installPackage]# cd memcached-1.4.34[root@localhost memcached-1.4.34]# ./configure && make && make test && sudo make install

检查memcached是否安装成功:

[root@localhost memcached-1.4.34]# ls -al /usr/local/bin/mem*

这里写图片描述

安装过程中可能遇到的错误:
(1)没有安装gcc编译器
这里写图片描述
解决方法:
[root@localhost memcached-1.4.34]# yum install gcc make (如果有没有安装gcc编译器,make,先安装)
(2)如果make test时出现下面Error,没有安装perl
这里写图片描述
解决方法:
[root@localhost memcached-1.4.34]# yum install perl-Test*
(3)检测到时钟错误。您的创建可能是不完整的
这里写图片描述
解决方法:

修改当前时间:[root@localhost ~]# date -s '2017/2/24 13:47:00'Fri Feb 24 13:47:00 CST 2017将当前系统时间写入CMOS中去[root@localhost ~]# clock -w

如下图:
这里写图片描述
2、启动Memcache服务
执行命令:

root@localhost memcached-1.4.34]# /usr/local/bin/memcached  -d -m 128 -p 11211 -u root

命令详解:
memcached命令参数解释:
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached 服务
-d restart 重起memcached 服务
-d stop|shutdown 关闭正在运行的memcached 服务
-d install 安装memcached 服务
-d uninstall 卸载memcached 服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
-P 是保存Memcache的pid文件,这里保存在 /tmp/memcached.pid

3、测试启动是否成功
用telnet测试是否可以连接到memcache

[root@localhost ~]# telnet 192.168.56.102  11211

成功会显示如下信息:
这里写图片描述
本次测试中出现如下信息:
这里写图片描述
出现上面的图片所示错误,原因之一是防火墙没有添加规则。

1) 关闭服务器端防火墙

[root@localhost memcached-1.4.34]# service iptables stop

2) 添加防火墙规则

[root@localhost memcached-1.4.34]# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT     //增加规则,还未增加到/etc/sysconfig/iptables文件里[root@localhost memcached-1.4.34]# service iptables save  ////将规则保存在/etc/sysconfig/iptables文件里 [root@localhost memcached-1.4.34]# service iptables restart如果还是报同样的错误:执行命令[root@localhost memcached-1.4.34]# iptables –F  //清空规则缓冲区一定要注意执行顺序。

现在服务器端Memcache已安装好,我们可以执行命令看下效果:
这里写图片描述
回车后系统自动保存,并返回正常值STORED
存入命令格式为
\r\n
注意在设定bytes字节后,存入的值的长度一定要与之匹配,否则无法保存成功,像name字段为4字节,所以存入的hell长度为4。

Memcache使用注意事项

  1. Key的最大长度是250个字符
  2. Key不能有空格和控制字符
  3. 过期时间最长为30天,如果时间大于30天,值会设置为不缓存
  4. 最大能存储的单个item不能大于1MB,可考虑在客户端拆分到多个key中
0 0