Cassandra 2.0中的缓存类型

Cassandra 2.0中的缓存类型,cassandra,Cassandra,我对Cassandra 2.0中的缓存类型有点困惑。“all”是指整个表数据缓存还是最近访问的(键+行)缓存?例如,如果表有“n”行,它是否只缓存最近访问的“x”行(或)缓存所有“n”行,而不考虑可访问性?您能否解释有关所有/keys\u only/rows\u only类型的更多详细信息 缓存 (默认值:仅限keys_)优化缓存内存的使用,无需手动调整。将缓存设置为以下值之一: all keys_only rows_only none Cassandra w

我对Cassandra 2.0中的缓存类型有点困惑。“all”是指整个表数据缓存还是最近访问的(键+行)缓存?例如,如果表有“n”行,它是否只缓存最近访问的“x”行(或)缓存所有“n”行,而不考虑可访问性?您能否解释有关所有/keys\u only/rows\u only类型的更多详细信息

缓存 (默认值:仅限keys_)优化缓存内存的使用,无需手动调整。将缓存设置为以下值之一:

    all
    keys_only
    rows_only
    none

Cassandra weights the cached data by size and access frequency. Use this parameter to specify a key or row cache instead of a table
缓存,与早期版本一样

谢谢


Ramesh

ALL
表示
行仅
键仅
缓存的联合。这并不意味着要缓存整个表


来源:源代码(我查看了trunk==2.1);搜索
Caching.ALL
Caching.key\u ONLY
Caching.ROWS\u ONLY

谢谢Daniel!我计划使用一个表来替代MemCache。因此,根据您的回答,我假设为该表设置缓存“ALL”是正确的。请分享您对此的看法。是的,我认为如果您有大量内存,这可能会起作用,但请注意,根据您的查询,您不能总是跳过主存储,因为您不知道缓存的结果是否满足查询。当然,如果你一次只要求一行的话,那就行了。缓存有一些主要的更改,但它们在生产分支中还不可用。正如Daniel所说,如果您创建的行多于列,那么使用all的想法将会适得其反。如果您也在创建宽行(因为您最终会以缓存的名义消耗内存),那么这也会适得其反,您可能会发现这很有用: