因此,我正在开发一个web应用程序--它必须为可伸缩性而构建。它将频繁的MySQL查询存储到缓存中。我已经准备好了几乎所有的东西--但我关心的是在哪里缓存数据的最佳实践。我和一些人谈过,其中一个人建议在所有的memcache节点上拆分每个键/值。
意思是如果我存储这个例子:'somekey','this is the value‘
它将被分到3个memcache服务器上。
这是一种更好的方式吗?或者memcache更多地建立在一对一的关系上?例如。
将值存储在服务器A上,直到它发生故障-转到服务器B并存储在那里。
这是我目前从我所做的研究和过去使用memcache的经验
我有一个简单的例子,我设置了一个5秒的值。问题是,在5秒后,我仍然得到一个值,而我期望的是'false‘。
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$memcache->set('foo', 'bar', 0, 5); // 5 seconds expiry
var_dump($memcache->get('foo')); // bar
当我尝试在php中使用memcache时,我已经成功地安装了php和memcached扩展。我编写了一个memtest.php来测试它并取得了成功。这是测试。
<?php
$memcache = new Memcache;
$memcache->connect('xxxxxx', 11211) or die ("Could not connect");
$memcache->set('key', 'test');
$get_value = $memcache->get('key');
这是关于GAE / Java Memcache的一个非常普遍的问题:
我有一个名为Network的对象,它存储在Memcache中,我还有另一个名为User的对象,它引用了Network。
Network network=Memcache.get(networkKey);
user._network=network; //user references an object that came from Memcache...
现在我有一堆更改user._network的代码(不涉及Memcache):
user._network= //在不接触Memcache的情况下对对象进行一些更改
我的代码是从数据中获取数据base.It需要大约5秒来加载来自database.So的数据,我使用memcached缓存来缓存数据库data.so它需要大约1秒才能将页面缓存到load.But,问题是当我更新数据库中的数据时,我的网页显示旧的缓存data.so,memcache中是否有任何自动更新机制,或者如何使用memcache显示经常更新的数据。下面是我的代码:
$memcache = new Memcache;
$memcache->connect('localhost',portno) or die ("Could not connect"
我对memcached很失望。使用它远非易事。
举个例子:
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
$memcache->set('id', $array, 120);
我大约在一个小时前设置了这个--它仍然在那里!手册说可以使用“从当前时间开始的秒数”作为参数。那么为什么过期被忽略了呢?
另一件困扰我的事情是,有时值不是写出来的。这一切几乎都是随机的。"argyleblank
Memcache在线程中似乎不起作用。
我收到警告:
Warning: Memcache::get(): No servers added to memcache connection in test.php on line 15
class Test extends Thread {
protected $memcache;
function __construct() {
$this->memcache = New Memcache;
$this->memcache->connect('localho
每次我尝试使用memcached的add()函数时,都会得到以下错误:
A PHP Error was encountered
Severity: Warning
Message: MemcachePool::add(): The lowest two bytes of the flags array is reserved for pecl/memcache internal use
Filename: libraries/memcached_library.php
Line Number: 92
会出什么问题呢?我使用这个库来实现codeigniter:
我现在被屏蔽了。
问题是:我有一个存储在memcache中的图书列表的“视图”。如果我添加了一本新书,我希望将新书添加到存储图书列表的memcache变量中。更新和删除也是如此。
您可以说:“您可以刷新密钥并再次收集所有数据”。但由于最终的一致性,当我添加并立即查询新数据时,新数据不再存在。
你可以说:“使用祖先来避免最终的一致性”。书籍是根实体,为了提高性能,在这个级别使用祖先并不是一个好主意。
因此,我们的想法是尽可能少地从数据存储中读取数据,并使memcache同步。
现在我的代码,这不起作用:
class Book(ndb.Model):
""" A B
因此,在我的web应用程序中使用memcache时,我正在阅读有关memcache和memcached的内容。只是想弄清楚一些事情。首先,当他们说安装memcached时,这意味着安装memcache,对吗?只有d代表守护进程,对吗?memcached和memcache有什么不同的安装方法吗?
第二个是php库,memcache vs memcached。我理解这一点,我只是对安装部分有点困惑,当有人说安装memcache,然后我又读到其他帖子说安装memcached。这是我计划用来安装memcache的url,当然是最新版本的: