memcache作为一个内存对象缓冲系统,常常用于提高系统的性能,减轻数据库负载等用处,当然还有很多其他的使用场景,这里主要介绍如何进行缓存的使用
下面将会使用php来介绍memcache的使用
1、普通连接使用
a、连接
$mem = new Memcache();
$host = "127.0.0.1";
$port = "11211";
$mem->connect($host, $port);
b、设置值
$mem->set('animal','dog',0,10);
这里的10代表的是当前这个key的过期时间,单位秒
c、获取值
$mem->get('animal');
d、删除key
$mem->delete('animal');
e、清空key
$mem->flush();
2、集群使用
准备好多台memcache服务器,不过这个和原先的普通连接使用有点不同,采用的是addServer方法来添加服务器,然后组成一个集群,如下所示
$mem = new Memcache();
$config = [
[
'host' => "127.0.0.1",
'port' => '11211'
], [
'host' => "192.168.92.134",
'port' => '11211'
]
];
foreach ($config as $item) {
$mem->addServer($item['host'], $item['port']);
}
$mem->set('animal', 'dog', 0, 10);
$mem->close();
?>
memcache采用一种crc32算法来把key转化成对应的数字,然后再对服务器数量取余,来决定存储在哪一台服务器上,这个是memcache的集群存储算法。
3、其他知识点
a、缓存过期处理:
memcache对于缓存过期的数据,采用的是懒惰模式处理(对于过期的数据,不会立即删除,而是会直到进行下一次get操作时,才会删除)
b、缓存空间满的处理:
当遇到缓存空间已满,不够存储时,这时要是存储新数据进去,memcache会把旧的缓存项删除,然后腾出空间才能存储新数据。它采用的是和redis一样的算法(LRU策略,最近最少使用)进行删除