Php 在Memcache中更新/设置缓存数组的元素
我使用的CMS默认实现memcached,我正在努力扩展它。一个键包含一系列用户信息,比如Php 在Memcache中更新/设置缓存数组的元素,php,memcached,Php,Memcached,我使用的CMS默认实现memcached,我正在努力扩展它。一个键包含一系列用户信息,比如userstats\u id,还包含论坛帖子数量、他们喜欢的帖子数量等等信息。关键点如下所示: [userstats_1] => Array ( [forum_posts] => 178 [forum_likes] => 16 [forum_dislikes] => 0 [
userstats\u 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]中使用这个,那就更好了,因为这当然更有意义。因此,考虑到这种更改比缓存数组的其余元素更频繁,那么获取和设置缓存数组元素的最佳方法是什么
我想出的唯一方法是复制数组,操纵它,然后在缓存中重新设置它,但这似乎很疯狂。谢谢 不,不幸的是,由于memcached是一个简单的键值存储,您无法修改或访问由单个键寻址的值的一部分 所以你有两个选择:
获取整个数组,修改一个元素,然后设置整个数组
get
和set
或者另一种选择是不使用memcached,而是使用Redis,它扩展了简单的键值模型,包括支持您想要的更新类型的键值模型。Redis散列,您的意思是,我猜()看起来它们完全符合要求——它们基本上是Redis中的关联数组。感谢Catherine指出我的错误。我按照你的建议更新了答案。