目录
EhCache和Guava Cache虽然简单、高效,但是它们都是本地缓存(EhCache可以分布式部署,但是需要依赖Terracotta,显然不利于维护),一般只是用在单个应用程序实例内部。在实际的分布式系统中,缓存更多地用于缓存数据库的热点数据,以减轻数据库负担,常用的分布式缓存有Redis和Memcached。
MemCached是一个开源、高性能的分布式键值缓存组件,在许多互联网公司都有应用。
官方介绍的特性如下:
- 键值存储,数据类型无关:仅存储原始类型,必须提前序列化
- 客户端和服务端共同完成逻辑:客户端负责选择某一台服务器,服务器负责具体的数据读写
- 服务器互相分离:服务器本身没有容灾、同步、广播等机制,需要依赖客户端完成
- 操作时间复杂度为O(1)
- 默认使用LRU+存活时间两种清除机制,并使用懒清除机制保证效率(在执行get时才会检查过期时间,并清除过期数据),需要注意的是,这里的LRU策略不是全局的,而是在Slab内的
1.安装
Memcached可以运行在Linux和Windows平台上,这里以Linux为例。首先需要去官网下载安装包(目前最新的是1.5.12版本):
wget https://memcached.org/latest
然后解压:
tar -zxvf memcached-1.5.12.tar.gz
此时还不能进行安装,需要先安装依赖组件libevent-dev:
sudo apt-get install libevent-dev
然后进入解压后的目录,执行configure文件,这里按照官方示例,只配置了prefix属性,即安装目录:
./configure --prefix=/usr/local/memcached
在memcached安装包解压后的目录下运行以下命令可以查看configure文件的所有可配置项:
./configure --help
然后使用make进行编译和安装:
make && sudo make install
由于Memcached没有自动加环境变量,这里我们在~/.bashrc中配置一下别名:
sudo vim ~/.bashrc
在文件中输入 alias memcached="/usr/local/memcached/bin/memcached"并保存退出。最后刷新一下配置:
source ~/.bashrc
现在可以使用 memcached -h 命令验证是否安装成功,如果能够成功输出帮助信息,说明安装已经成功。
2.使用
2.1 常用选项
首先来看一下memcached提供的一些常用选项。
- -p port 或 --port=<port>:指定监听的TCP端口,默认11211(粗斜体代表可替换内容,下同)
- -U port 或 --udp-port=<port>:指定监听的UDP端口,默认为0,即不开启
- -l host 或 --listen=<host>:指定监听的主机IP地址,如果是本机可以不写
- -u user<