memcache缓存技术

memcached概述

  • memcache是一种缓存技术,属于client/server结构的服务,客户端memcache,服务器端memcached

命令说明

  • memcached -d install 以守护模式开启memcached
  • memcached -d unistall 关闭缓存服务

常用操作

  • 实例化对象
    $memcache = new memcache();

  • 设置
    $memcache->set("name", "root", 3600);

  • 获取
    $memcache->get("name");

  • 删除

    $memcache->delete("name"); // 删除一个缓存
    $memcache->flush(); // 删除所有缓存

  • 关闭连接

    $memcache->close(); //关闭链接

数据类型

  • 标量数据,直接存储为字符串类型
  • 非标量数据,进行序列化后存储

分布式服务器集群

分布式算法
取余算法

      使用crc32()循环冗余算法将key转换成数字,然后和服务器数量取余数,确定使用哪一台服务器

$server_count = 3; // 服务器数量
$key=  "title";
//先通过key,得到一个数字,crc32()循环冗余算法
$crc32_key = crc32($key);
$v = $crc32_key % $server_count; // 余数
//然后根据$v 确定使用哪一台memcache服务器

一致性哈希算法
memcache缓存技术_第1张图片

将一个环分成2^23个区域,将memcached服务器放置在某些点位上,用key计算成数字2^23取余,然后顺时针查找举例最近的服务器,将数值存储在改memcached服务器上

  • 举例
$host1 = "192.168.1.1";
$port="11211";
$host2 = "192.168.1.2";
$port = "11211";
$host3 = "192.168.1.3";
$port = "11211";

$memcache = new Memcache();
//增加多台memcache服务器
$memcache->addServer($host1, $port1);
$memcache->addServer($host2, $port2);
$memcache->addServer($host3, $port3);

你可能感兴趣的:(缓存技术,memcached,缓存)