你能在Memcache中存储PHP数组吗?
你能在Memcache中存储一个数组吗?
我想存储;
- 用户 ID 号
- 用户的照片网址
- 用户名
作为一个数组,有人告诉我你可以,然后有人告诉我你不能,这是哪一个?
你能在Memcache中存储一个数组吗?
我想存储;
作为一个数组,有人告诉我你可以,然后有人告诉我你不能,这是哪一个?
是的。
Memcache::set('someKey', array(
'user_id' => 1,
'url' => 'http://',
'name' => 'Dave'
));
有关非常详细的示例,请参阅文档。
memcache 中项目的最大存储大小为 1,048,576 字节 (1MB),序列化数组确实会占用一些空间。
如果你要简单地构建你的数组,
array(
[0] => 1,
[1] => 2,
[2] => 3
)
键是自动生成的,值是用户 ID。
使用此结构的编号为 1-5000 的 5000 个用户的序列化数组的字符串长度为 67792 个字符,50000 个用户生成777794个字符的数组。
编号为 100000 到 150000 将生成一个包含838917个字符的序列化字符串。
因此,在50k用户(如上一个问题中所述),您可能会低于1MB的限制。如果你有一个本地缓存(APC等),请改用它,或者如果出于任何原因不需要一次所有的ID,我强烈建议拆分结果或简单地使用数据库。
还要考虑您存储在 memcached 中的数据结构。如果您使用缓存只是为了为您提供要查找的主键列表,那么是否需要其他数据?