memcache如何存储数据?

时间:2010-12-09 16:39:59

标签: memcached outputcache

我是缓存的新手,不知道数据如何存储在缓存中。我曾尝试在线阅读一些示例,但每个人都提供了存储和获取数据的代码片段,而不是解释如何使用memcache缓存数据。我已经读过它将数据存储在键值对中,但我无法理解这些键值对存储在哪里?

也有人可以解释为什么进入缓存的数据被散列或加密?在序列化数据和散列数据之间我有点困惑。

3 个答案:

答案 0 :(得分:19)

来自Memcache page on Wikipedia的几句引言:

  

Memcached的API提供了一个巨大的哈希   表分布在多个   机器。当桌子满了,   后续插入导致旧数据   最近最少使用(LRU)清除   顺序。

  

服务器将值保存在RAM中;如果   服务器耗尽RAM,丢弃   最古老的价值观。因此,客户   必须将Memcached视为暂时的   缓存;他们不能假设这些数据   存储在Memcached中仍然存在   当他们需要时。

Wikipedia页面的其余部分内容非常丰富,可能对您有所帮助。

答案 1 :(得分:2)

它们存储在服务器的内存中,如果您经常使用相同的键/值,并且您知道它们不会在一段时间内更改,您可以将它们存储在内存中以便更快地访问。

答案 2 :(得分:2)

我对memcached并不是很熟悉,所以不管怎么说: - )

Memcachedseparate process or set of processes that store a key-value store in-memory so they can be easily accessed later。从某种意义上说,它们提供另一个全局范围,可以由程序的不同方面共享,使值可以计算一次,并在许多不同的单独的区域中使用你的程序。从另一个意义上讲,它们提供了一个 fast 健全数据库,可用于存储瞬态数据。 数据不会永久存储,但一般情况下它会被存储超出特定请求的生命周期(Memcached可能永远不会存储您的数据,所以每次读取都会错过,但那是通常表示您没有为您的用例正确设置它。)

进入缓存的数据不必进行散列或加密(但可以发生在数据上,具体取决于缓存机制。)

Serializing数据实际上与这两个概念无关 - 相反,它是将数据从一种格式(通常一种适用于内存存储)更改为另一种格式(通常适合存储在持续的媒介。)这个过程的另一个术语是marshalling和解组。