当前位置:  开发笔记 > 编程语言 > 正文

你能在Memcache中存储PHP数组吗?

如何解决《你能在Memcache中存储PHP数组吗?》经验,为你挑选了2个好方法。

你能在Memcache中存储一个数组吗?

我想存储;

    用户ID号

    用户的照片网址

    用户名

作为一个阵列,有人告诉我你可以,然后有人告诉我你不能这是什么?



1> hobodave..:

是.

Memcache::set('someKey', array(
    'user_id' => 1,
    'url' => 'http://',
    'name' => 'Dave'
));

有关非常详细的示例,请参阅文档.


你有记录在memcache中存储5K记录的原因吗?我想你可能会忽略缓存的重点.

2> Jason..:

memcache中项目的最大存储大小为1,048,576字节(1MB),序列化数组确实需要一些空间.

如果你要将数组结构如下:

array(
    [0] => 1,
    [1] => 2,
    [2] => 3
)

key是自动生成的,value是用户id.

使用此结构编号为1-5000的5000个用户的序列化数组的字符串长度为67792个字符,50000个用户生成777794个字符的数组.

编号100000到150000生成一个838917个字符的序列化字符串.

因此,对于50k用户(如上一个问题所述),您可能会低于1MB的限制.如果您有本地缓存​​(APC等),请使用它,或者如果由于任何原因不一次需要所有ID,我强烈建议拆分结果或仅使用数据库.

还要考虑一下存储在memcached中的数据结构.如果您只是使用缓存来提供要查找的主键列表,那么您是否需要其他数据?

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有