1.Memcached简介
Memcached是一个开源、高性能,将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数,可以提高动态、数据库驱动之类网站的运行速度。
Memcached在使用是比较简单的,在操作上基本就类似于操作字典结构的对象一样。分布式缓存Memcached的分布式怎么理解?简单来说就是Memcached通过建立一个系统服务和应用系统完全独立开,两则不是相同的进程。
2.为什么需要用到Memcached?
在搭建服务器架构时如果使用到了集群,那么代理服务器会根据集群中服务器负载均衡分发到一个负载较小的服务器处理请求。就拿“登录”场景来说,第一次用户进行登录成功后在A服务器上将用户信息存储到Session,当用户第二次请求去加载某个页面时,由于负载均衡的调度将请求交给了另一台服务器C来处理,此时的C服务器是并不能访问到A服务器的Session,那么一般的程序逻辑会再一次让你返回登录页面重新进行登录(引发的问题)
根据上述引发的问题,实际上我们需要达到一个效果是:
将我们登录存储的用户信息放置到一个共享区域,也就是集群中的每个服务器都能访问的区域。
对于建立这个共享区域,其实就可以通过使用分布式缓存Memcached来解决。
当然还包括另外一个原因,如果统一将信息放到Session存储,对于单机架构的模式的服务器是很消耗内存的。
当然也有特殊的手段实现跨服务器的Seesion访问,但是也会造成很大的性能损耗,是并不推崇的,所以会通过分布式缓存Memcached将应用和缓存隔离开作为单独的服务进程。
通过使用分布式缓存Memcached会将集群中服务器的内存统一使用起来形成一个独立的数据共享区域,加入Memcached后架构参考图如下:
3. Memcached 与Redis对比
4. 下载安装
https://www.runoob.com/memcached/window-install-memcached.html
Memcached 支持许多平台:Linux、FreeBSD、Solaris、Mac OS,也可以安装在Windows上。
4.1 Linux系统
Linux系统安装memcached,首先要先安装libevent库。
sudo apt-get install libevent ibevent-dev # 自动下载安装(Ubuntu/Debian)
yum install libevent libevent-devel # 自动下载安装(Redhat/Fedora/Centos)
Ubuntu/Debian
sudo apt-get install memcached
Redhat/Fedora/Centos
yum install memcached
FreeBSD
portmaster databases/memcached
安装完后可以使用 whereis 查看路径:
whereis memcached
如这里的 /usr/local/bin/memcached 目录 。
Memcached命令的运行,进入到 memcached 的安装目录执行 查看帮助命令如下
/usr/local/memcached/bin/memcached -h
- -d是启动一个守护进程;
- -m是分配给Memcache使用的内存数量,单位是MB;
- -u是运行Memcache的用户;
- -l是监听的服务器IP地址,可以有多个地址;
- -p是设置Memcache监听的端口,,最好是1024以上的端口;
- -c是最大运行的并发连接数,默认是1024;
- -P是设置保存Memcache的pid文件。
作为前台程序运行:
/usr/local/memcached/bin/memcached -p 11211 -m 64m -vv
作为后台服务程序运行:
/usr/local/memcached/bin/memcached -p 11211 -m 64m -d
或者
/usr/local/memcached/bin/memcached -d -m 64M -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pid
查找允许 memcached 的进程 id:
ps -ef|grep memcached
第一行的第二个就是进程 id,使用 kill 命令停止进程,就关闭了 memcached 服务。
kill -9 37760