<?php

/**
* 分布式的 memcache set 实现
*/ /**
* 创建缓存实现memcache 添加分布式服务器 并设置权限
*/ function createCache() {
$arr = array(
array("host" => "127.0.0.1", "port" => 11211, "weight" => 20), //127.0.0.1:11211的权重是20%
array("host" => "127.0.0.1", "port" => 11212, "weight" => 80), //127.0.0.1:11212的权重是80%
);
$cache = new memcache();
foreach ($arr as $ele) {
//使用长连接,并且设置不同memcache服务器的权重,将memcache服务器添加到连接池
$cache->addServer($ele["host"], $ele["port"], true, $ele["weight"]);
}
return $cache;
} header("content-type:text/html;charset=utf-8");
$cache = createCache();
for ($i = 0; $i < 10; $i++) {
//由于使用了分布式,所以这里不需要使用connect或者pconnect打开链接,
//set方法会调用memcache的分布式缓存分配算法,按照权重将缓存项缓存到连接池的某个服务器
if ($cache->set($i, $i, 0, 3600)) {
echo "缓存成功,key:$i,value:$i";
} else {
echo "缓存失败";
}
echo "<br/>";
}
?>
<?php

/**
* 分布式的 memcache get 实现
*/ function createCache() {
$arr = array(
array("host" => "127.0.0.1", "port" => 11211, "weight" => 20),
array("host" => "127.0.0.1", "port" => 11212, "weight" => 80)
);
$cache = new memcache();
foreach ($arr as $ele) {
$cache->addServer($ele ["host"], $ele ["port"], true, $ele ["weight"], 1);
}
return $cache;
} header('content-type:text/html;charset=utf-8');
$cache = createCache();
$val;
for ($i = 0; $i < 10; $i ++) {
$val = $cache->get($i);
if (false === $val) {
echo "缓存获取失败";
} else {
echo "缓存获取成功:,key:$val,value:$val";
}
echo "<br/>";
}
$cache->close();
?>

memcache分布式小实例的更多相关文章

  1. MemCache分布式内存对象缓存系统

    MemCache超详细解读 MemCache是一个自由.源码开放.高性能.分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而 ...

  2. memcache分布式 [一致性hash算法] 的php实现

    最近在看一些分布式方面的文章,所以就用php实现一致性hash来练练手,以前一般用的是最原始的hash取模做分布式,当生产过程中添加或删除一台memcache都会造成数据的全部失效,一致性hash就是 ...

  3. Memcache分布式锁 转发 https://www.cnblogs.com/li150dan/p/9529090.html

    在分布式缓存的应用中,会遇到多个客户端同时争用的问题.这个时候,需要用到分布式锁,得到锁的客户端才有操作权限 下面通过一个简单例子介绍: 这里引用的是Memcached.ClientLibrary.d ...

  4. 记录memcache分布式策略及算法

    摘要 http://wenku.baidu.com/link?url=eUmpWDGFiFguyQLxwmXwRYmbnW7Wm1Bo79dGoomSnmOPWDIA5-FFSTNRI7MBQq8QG ...

  5. Python_爬虫小实例

    爬虫小实例 一.问题描述与分析 Q:查询某一只股票,在百度搜索页面的结果的个数以及搜索结果的变化. 分析: 搜索结果个数如下图: 搜索结果的变化:通过观察可以看到,每个一段时间搜索结果的个数是有所变化 ...

  6. Memcache分布式锁

    在分布式缓存的应用中,会遇到多个客户端同时争用的问题.这个时候,需要用到分布式锁,得到锁的客户端才有操作权限 下面通过一个简单例子介绍: 这里引用的是Memcached.ClientLibrary.d ...

  7. winform 异步读取数据 小实例

    这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...

  8. MemCache分布式缓存的一个bug

    Memcached分布式缓存策略不是由服务器端至支持的,多台服务器之间并不知道彼此的存在.分布式的实现是由客户端代码(Memcached.ClientLibrary)通过缓存key-server映射来 ...

  9. CSS应用内容补充及小实例

    一.clear 清除浮动 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

随机推荐

  1. UVa 10837 A Research Problem 欧拉函数

    题意: 给你一个欧拉函数值 phi(n),问最小的n是多少. phi(n) <= 100000000 , n <= 200000000 解题思路: 对于欧拉函数值可以写成 这里的k有可能是 ...

  2. 查看ASM 使用率

    有两种方法: 1.查看v$asm_diskgroup视图 SQL> select group_number,name,total_mb,free_mb from v$asm_diskgroup; ...

  3. intel集成显卡linux驱动安装

    https://01.org/linuxgraphics/documentation/build-guide-0 https://01.org/linuxgraphics/community/mesa ...

  4. BZOJ1674: [Usaco2005]Part Acquisition

    1674: [Usaco2005]Part Acquisition Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 259  Solved: 114[Sub ...

  5. javascript 判断整数

    判断整数的方法有两种:正则判断和逐字判断. 由于逐字判断效率过于低下,这里就不予描述了,有兴趣的看客可以自己谷歌. 1.正则判断 var r = /^\+?[1-9][0-9]*$/; //正整数 c ...

  6. 如何获取jqGrid中选择的行的数据

    原文地址:http://hi.baidu.com/feifan3211/item/c5831f44158761a5df2a9fc1 如何获取jqGrid中选择的行的数据? 下面可以获取选择一行的id, ...

  7. [Java] 模板引擎 Velocity 随笔

    Velocity 是一个基于 Java 的模板引擎. 本博文演示 Velocity 的 HelloWord 以及分支条件. HelloWord.vm,模板文件. templateDemo.java, ...

  8. openStack 云平台使用一般杂记

    1. To launch an instance,you must at least specify the flavor,image name,network,security group,keyp ...

  9. Cantor表(中等)

    2 3 1/2 2/1 题目分析 这是NoI的一道题目,不过题目比较有创意也比较适合新生,就是一道简单的找规律的题目,首先找到第N个数应该在第几个斜行,然后判断这一行是奇数还是偶数,偶数分母递减,分子 ...

  10. oracle防火墙端口问题

    Oracle服务端口方面会有很多的问题,下面就将为您介绍在防火墙上开放Oracle服务端口的方法,希望对您学习Oracle服务端口方面能有所帮助. 要使Oracle客户端能正常连接到设置有防火墙的安装 ...