我正在尝试使用Memcached来缓存所有多语言字符串,而不是为所有PHP页面使用大数组。
我所做的是从数据库中获取翻译的短语,并在循环中将每个短语设置为memcached:
while (fetching database) {
$memcached->set($language.':'.$string_id, $translation, 0, 0);
}
问题是,大多数(并非所有,似乎是随机的)都会自动“过期”,不知道为什么。
这些是我的统计数据:
服务器目前的免费内存:超过1GB
总Memcached空间:16MB
目前Memcached使用:2.66MB
当我运行循环时,“驱逐”统计数据(删除项目以释放新项目的内存)会增加分配。这对我来说没什么意义,因为我设置永不过期,memcached仍有很多可用空间。
有谁知道可能会发生什么? 谢谢。
答案 0 :(得分:1)
0不是30天,它是0(即不会过期)。
16MB不足以使用。你正在快速地吹掉你的一块板,并试图将数据存储到另一块并没有任何空间。
如果确实希望它适合16MB以内,您可以调整平板以使它们具有固定大小。可能更容易让它足够用于处理各种数据量。