ibireme / YYCache

High performance cache framework for iOS.
MIT License
2.37k stars 505 forks source link

问题请教: #12

Closed QQ920924960 closed 8 years ago

QQ920924960 commented 8 years ago

查看diskCache的相关代码:发现存取都要根据一个key来进行,假如我需要查询所有数据,该怎么做呢?

ibireme commented 8 years ago

Cache 一般不提供这种方法(举个例子:NSCache)。

查询所有数据时,数据的总大小是未知的,当缓存数据总量太大时,会占用很大的查询时间和内存,可能会引发问题。

QQ920924960 commented 8 years ago

可能我没有理解你的设计思维。那假如我需要取一定量的数据,比如前20条,这个需要能做到吗?

ibireme commented 8 years ago

缓存的内容是无序的。。 缓存的查询功能通常很弱,你的这种需求更适合直接用数据库(SQLite/Realm)来实现。

QQ920924960 commented 8 years ago

你的缓存框架好像不是将模型中的(属性和属性值)存到sqlite数据库中去,而是存的某个模型的描述信息是吧?

QQ920924960 commented 8 years ago

呵呵,其实我是把SQLite也理解成缓存的一种

ibireme commented 8 years ago

SQLite 功能强大的多啊~那可是个完整的数据库系统啊~

YYDiskCache 每条数据都可以配置是存放在 SQLite 还是文件里。 默认情况下,YYDiskCache 会以 20KB 为界限,20 KB 以下的单条数据存 SQLite,其他的存为文件,这个主要是为了性能考虑,详情见 http://blog.ibireme.com/2015/10/26/yycache/

QQ920924960 commented 8 years ago

恩,你这个我看了,我开始是以为你这款产品是FMDB的替代产品,我只是想做到把数据存储到客户端本地sqlite当做缓存,但是又不想写sql(想直接存对象),网上查了许多对FMDB的封装,发现都不够完善

QQ920924960 commented 8 years ago

非常感谢你的耐心解答,谢谢!