问题标签 [memcached]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2954 浏览

python - 如何测量 Django 缓存性能?

我有一个在 Django 上运行的相当小的(每天大约 4.5k 页面浏览量)网站,使用 PostgreSQL 8.3 作为数据库。

我将数据库用作缓存和会话后端。我听说过很多关于为此目的使用 Memcached 的好消息,我肯定想试一试。但是,我想确切地知道这种更改的好处是什么:我想我的网站可能还不够大,无法让更好的缓存后端有所作为。关键是:安装和配置 memcached 的人不是我,我不想浪费任何人的时间或浪费很少的时间。

如何测量使用 db 作为缓存后端引入的开销?我查看了 django-debug-toolbar,但如果我理解正确的话,它不是你想放在生产站点上的东西(你必须设置DEBUG=True它才能工作)。不幸的是,我无法在我的笔记本电脑上完全重现生产设置(我有不同的操作系统、CPU 和更多的 RAM)。

有没有人对不同的 Django 缓存/会话后端进行基准测试?有谁知道如果我正在做的性能差异是什么,例如,对每个请求进行一次会话写入?

0 投票
2 回答
931 浏览

memcached - 是否可以在 Apache iBatis 中注入 memcached?

我一直在使用一个需要缓存 SQL 查询的分布式应用程序来处理一个复杂的项目:因为我一直在使用 iBatis 框架,所以我想使用 memcached - sysadmin 需要它 - 作为缓存引擎。可能吗?如果是,是否有人知道现有的解决方案/实现?我已经知道 OSCACHE 也可以在集群中工作,但我想知道在切换到新架构之前是否可以使用现有架构。提前谢谢了!!!

0 投票
2 回答
810 浏览

ruby-on-rails - 仅将缓存资金用于单个模型?

我想使用缓存资金,但我不想开始自动缓存所有内容(我正在使用大型生产应用程序、TB 级数据等)。如何仅将其用于我指定的模型?现在我有:

然后在我想用缓存钱缓存的模型中:

但这不起作用;对 is_cached 的调用给出以下错误:NoMethodError: undefined method `create' for Config:Module

有任何想法吗?如果做不到这一点,我可以在任何地方寻求缓存资金的帮助吗?我找不到邮件列表或任何东西。

0 投票
3 回答
718 浏览

ruby-on-rails - 有没有一个很好的用于 Rails 的缓存记忆插件?

我有一个模型:

我想记住 balance 方法并将其存储在 memcached 中。当然,问题是缓存值需要在任何时候创建付款或购买时过期。我可以在付款和购买的 after_save 回调中插入代码,以使他们帐户的缓存余额过期,但在我看来,如果我可以这样说的话,会更容易理解/维护:

是否有现有的 gem/插件可以做到这一点?在我开始自己写之前,这是个好主意吗?我看到的缺点是,对于正在修改 Purchase 的 Dollar_amount 方法的人来说,他们需要考虑缓存问题可能不太明显(如果他们无意中引入了对另一个模型的依赖,比如 SubPurchase 或其他东西,它会搞砸的。)但是由于这无论如何都不是很明显,我认为拥有一个简洁的声明性语法是值得的 - 至少在它中断时,很清楚如何修复它。

想法?

编辑:为了响应语义艺术的回答,我将更明确地说明“只需将过期时间放在相关回调中”方法的问题 - 问题是你最终会在整个代码库中过期 - 它从 after_save 回调开始付款,但也许它在购买的单独观察者中,然后你有多态关联、继承树等。我提出的语法迫使开发人员将所有这些案例放在一个整齐的列表中。这样,当您收到诸如“用户余额有时不同步并且他们不太确定如何复制问题”之类的错误报告时,更容易弄清楚发生了什么。

0 投票
2 回答
9198 浏览

ruby-on-rails - 在 Rails 中使用 memcached 的最佳实践?

随着我们应用程序中的数据库事务变得越来越耗时,我们开始使用 memcached 来减少传递给 MySQL 的查询量。

总而言之,它运行良好,确实节省了大量时间。

但由于缓存作为一种解决方法“悄无声息地出现”,为应用程序提供更多动力,我们的许多模型现在都包含如下代码:

这变得越来越痛苦,因为填充和刷新缓存发生在应用程序的多个类中。

现在,我想知道是否有更好的方法来抽象 memcached 逻辑,使其在所有需要的模型中更强大和更易于使用?

我正在考虑使用某种 memcached-module,它包含在所有需要的模块中。

但在玩之前,我想:让我们先问专家:-)

谢谢

马特

0 投票
2 回答
1305 浏览

memcached - memcached 成百上千个 tcp 套接字是否合理?

我正在使用 Merb::Cache 来存储 txt/xml,并注意到我让我的 merb 运行的时间越长,我打开的打开 tcp 套接字的数量就越大——我相信这会导致一些主要的性能问题。

ETC...

我的相关代码是:

&&

这段代码是直接错误的还是我使用了错误版本的内存缓存?

我有 memcached 1.2.8 并具有以下内容:

libmemcached-0.25.14.tar.gz memcached-0.13.gem

这有点让我发疯..

0 投票
1 回答
3841 浏览

php - PHP Memcache 用户创建的对象

需要一些有关 Memcache 的帮助。

我创建了一个类并希望将其对象存储在 Memcache 中,发现这样做有问题,请告诉我哪里出错了。以下是我的代码

问题是当我尝试使用 $objMemcache->get($key) 检索对象时,我无法确定对象是否实际存储在 Memache 中,var_dump 函数什么也不打印。

请帮忙。


你能解释一下我的代码中的错误吗?

感谢灵魂合并、弗兰克和凯文,解决方案奏效了,只是另一个疑问。

将类变量设为私有可以正常工作,但是当我尝试使用 json_encode() 将类对象转换为 JSON_STRING 时,它再次给了我一个空值,对此有任何建议

0 投票
2 回答
162 浏览

mysql - 生产环境中随机长 DB 查询/Memcache 获取

我无法诊断我在 ubuntu scalr/ec2 生产环境中遇到的问题。

问题显然是随机的,数据库查询和/或 memcache 查询将花费比应有的更长的时间。我见过一个简单的 select 语句需要 130 毫秒或 Memcache 提取需要 65 毫秒!每个请求可能会发生几次,导致某些请求花费的时间是应有的两倍。

为了诊断问题,我编写了一个非常简单的脚本,它只连接到 MySql 服务器并运行查询。

该脚本始终返回非常高的最大时间,因此我消除了任何 Rails 作为问题的根源。我还在 Python 中编写了相同的东西来消除 Ruby。事实上,Python 也花费了过多的时间!

MySql 和 Memcache 都在自己的盒子上,所以我考虑了网络延迟,但看pings 和tracerouteing 看起来很正常。

在各自的机器上运行查询/获取也会返回预期的时间,并且我在我的登台机器上运行相同版本的 gems 而没有这个问题。

我真的很难过这个......对我可以尝试诊断的任何想法有什么想法吗?谢谢

0 投票
2 回答
260 浏览

ruby-on-rails - Rails 中最好的 Memcache 解决方案

环顾网络,我看到了许多在 rails 中使用 memcached 的插件和模式。我正在做一个新项目,想知道最好的解决方案是什么。谷歌出现了很多旧的结果,我不确定这是最新最好的做事方式。

0 投票
3 回答
5221 浏览

macos - 使用股票 apache 和 php5 在 Mac OSX 上启用 memcache

我一生都无法弄清楚如何在 Mac OSX 上启用 memcache 以与 apache 一起工作。我已经安装了 memcache,并且可以通过 php 命令行验证它是否正常工作。

以下命令:

报告支持 memcache。

但是,如果我在浏览器中加载执行 phpinfo() 的本地测试脚本,它不会报告已安装 memcahe。在我的浏览器中运行一个脚本来实例化一个新的 memcache 对象报告:

我已经编辑了 php.ini 并添加了 extensions=memcache.so

我已经通过转到系统偏好设置->共享并禁用和启用 Web 共享来重新启动 apache。我什至尝试使用 sudo apachectl restart 从命令行重新启动 apache。

当通过浏览器执行时,我可能会错过什么阻止 php 识别 memcache?

谢谢!