我使用的CMS默认实现了memcached,我正在努力扩展它。一个键包含一系列用户信息,如userstats_id
,并包含论坛帖子计数,他们喜欢等等的帖子数量等信息。关键看起来像这样:
[userstats_1] => Array
(
[forum_posts] => 178
[forum_likes] => 16
[forum_dislikes] => 0
[now_online] => 1
)
我正在扩展此密钥的使用,因为我还想存储用户正在浏览的特定论坛,例如:
[userstats_forumbrowsing_1] => Array
(
[forum_browsing] => 'Foobar'
)
如果我能在[userstats_1]中拥有这个更好,那当然更有意义。因此,考虑到这种情况比缓存数组的其他元素更频繁地更改,获取和设置缓存数组的元素的最佳方法是什么?
我想出的唯一方法是复制数组,操纵它然后在缓存中重新设置它,但这看起来很疯狂。谢谢!
答案 0 :(得分:5)
不,遗憾的是,因为memcached是一个简单的键值存储,您无法修改或访问单个键所解决的值的一部分。
所以你有两个选择:
get
整个数组,修改一个元素,然后set
整个数组。get
和set
。哪个更好取决于零件的相对尺寸,它们的使用模式以及保持一致性的重要性。
或者另一种选择是不使用memcached,而是使用Redis,它扩展了简单的键值模型以包含data types,包括支持您想要的更新类型的hashes。 p>