gpt4 book ai didi

php - 将表传输到 Memcache

转载 作者:行者123 更新时间:2023-11-29 15:06:56 25 4
gpt4 key购买 nike

我有一个大表,我想将结果存储在 Memcache 中。我在我的服务器上设置了 Memcache,但似乎没有任何关于如何有效传输大量数据的有用文档(我可以找到)。我目前能想到的唯一方法是编写一个mysql查询来获取表的键和值,然后将其保存在Memcache中。它不是一个特别可扩展的解决方案(特别是当我的查询生成几十万行时)。关于如何做到这一点有什么建议吗?

编辑:对于我正在尝试做的事情有些困惑。假设我有一个包含两个字段(键和值)的表。我正在动态提取信息,并且必须将其与键匹配并返回值。我想避免每次页面加载执行约 1000 个查询。Memcache 似乎是一个完美的替代方案,因为它设置为使用键值。假设这个表有 100K 行。这是我知道的唯一方法要将数据从数据库表获取到内存缓存,需要运行一个查询,循环遍历表中的每一行并创建一个单独的内存缓存行。

问题:这是使用内存缓存的好方法吗?如果是的话,有更好的方法来转移我的 table 吗?

最佳答案

您实际上可以提取数组中的所有行并将该数组存储在内存缓存中

memcache_set($memcache_obj, 'var_key', $your_array);

但是你必须记住一些事情

  • PHP 将从内存缓存中序列化/反序列化数组,因此如果您有很多行,它可能会比实际查询数据库慢
  • 你不能做任何过滤(NO SQL),如果你想过滤某些项目,你必须自己实现这个过滤器,它的性能可能比数据库引擎更差。
  • memcache 不会存储超过 1 兆字节 ...

我不知道你想实现什么目的,但 memcache 的一般用途是:

  • 存储SQL/耗时处理的结果,但结果行数应该很小
  • 存储一些预先创建的 (X)HTML blob 以避免数据库访问。
  • 用户 session 存储

关于php - 将表传输到 Memcache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1787687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com