Memcached是什么
Memcached是一款开源的、高性能的、分布式的内存对象缓存系统
Memcached能干什么
最主要的功能就是:在内存中缓存数据,以减轻数据库负载。
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
Memcached特点
1.在内存中以键/值对存储,性能好
2.协议简单(基于文本行),功能强大
3.基于libevent的事件处理,无阻塞通信,对内存读写速度非常快
4.基于客户端的分布式,服务端多个Memcached之间不互相通信
5.服务端以守护进程运行,客户端可以用任何语言来编写
安装
Centos
sudo yum install memcached
Ubuntu
sudo apt-get isntall memcached
启动
memcached -d -m 10 -u root -l 192.168.1.106 -p 9922 -c 256 -P /tmp/memcached.pid
解析
- -d选项是启动一个守护进程
- -m是分配给Memcache使用的内存数量,单位是MB,这里是10MB
- -u是运行Memcache的用户,这里是root
- -l是监听的服务器IP地址,这里指定了服务器的IP地址127.0.0.1
- -p是监听的端口,这里设置了9922,最好是1024以上的端口
- -c选项是最大运行的并发连接数,默认是1024,这里设置了256
- -P是设置保存Memcache的pid文件,这里是保存在 /tmp/memcached.pid
常用的还有几个需要了解: - -f 块大小增长因子,默认是1.25
- -n 最小分配空间, key+value+flags 默认是 48byte
- -I 每个slab page的大小
- -v/-vv 详细显示工作时各种参数
关闭
先输入以下命令找到pid
ps aux|grep memcached
然后kill掉
kill -9 上面找到的pid
Memcached基本的工作原理
Memcached是以守候程序的方式运行于一个或者多个服务器,随时等待客户端的链接,通过启动memcached服务器端,配置相应的监听IP、端口内存大小等参数,客户端可通过指定的服务器端IP,将数据以key-value的方式存储
Memcached的两阶段哈希
客户端存取数据时,首先参考节点列表计算出key的哈希值(阶段一哈希),进而选中一个节点;客户端将请求发送给选中的节点,然后Memcached节点通过一个内部的哈希算法(阶段二哈希),进行真正的数据(item)存取
Memcached的通信协议
Memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。因此,通过telnet也能在memcached上保存数据、取得数据