架构师日记——Memcached简介和工作原理

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上保存数据、取得数据

猜你喜欢

转载自blog.csdn.net/qq_32198277/article/details/77699549