我很好奇,在PHP中序列化是否有大小限制。能否将包含5000个键和值的数组序列化以便存储到缓存中?
我希望能在社交网络网站上缓存用户的好友列表,缓存需要经常更新,但几乎每次加载页面时都需要读取。
在单个服务器设置中,我认为APC比memcache更适合这种情况。
我很好奇,在PHP中序列化是否有大小限制。能否将包含5000个键和值的数组序列化以便存储到缓存中?
我希望能在社交网络网站上缓存用户的好友列表,缓存需要经常更新,但几乎每次加载页面时都需要读取。
在单个服务器设置中,我认为APC比memcache更适合这种情况。
如果您想要缓存它(因此我假设性能是问题),请使用apc_add而不是将其转换为字符串以避免性能损失+在内存中获得缓存。
如上所述,唯一的大小限制是可用内存。
还有一些需要注意的地方: 序列化的数据在多字节和单字节字符编码之间不可移植。 PHP5类包括NUL字节,可能会对不希望它们的代码造成破坏。
根据您的使用情况,似乎最好使用数据库来完成这个任务,而不是仅依赖PHP的可用资源。使用MySQL等数据库的优点在于,它们专门针对存储和查找等内存管理方面进行了工程化设计。
不断地序列化和反序列化数据以更新或更改少量信息真的很无聊。
我有一个情况,其中unserialize在一个大的序列化对象上抛出异常,大小为65535(魔术数字:16位全位= 65536)