Kache提供了一套数据缓存方案。无缓存场景下,数据从远程服务器加载到客户端,生成数据对象供客户端应用使用。
使用Kache作为应用的缓存方案,流程则为:每次需要加载数据之前,开发者先从Kache中获取数据
若Kache返回一个空值则证明该缓存项不存在,需要再次从远程服务器获取数据,数据返回,生成数据对象的同时,通过Kache存入缓存,供下次使用;
若Kache返回数据,则可直接生成数据对象。
使用方法import Kache的头文件 KCH.h
#import 'KCH.h'Kache的每个实例是一个缓存空间不同的缓存空间互相独立。开发者可以单独初始化Kache实例对象,并指定FileToken作为标记,开题报告,或直接使用Kache提供的静态方法,开题报告,操作默认空间。
Kache提供的所有静态方法,都有对应Kache的实例方法。
添加缓存
把ID为“123456”的一个数据“ThisIsADemoData.”存入缓存,1小时候过期。
取出KEY为“123456”的数据,并打印。
NSString *demoData = [Kache valueForKey:@'123456']; NSLog(@'Data:%@', demoData);使用KPool。KPool提供了一个可变大小的缓存池,原理是:当存入Pool中的对象超过配置文件中配置的KACHE_DEFAULT_POOL_SIZE,则最早过期的一个将被清除。自己定义的Pool可以指定这个值。
一个缓存控件内可以使用多个Pool,开发者可以选择自己定义或使用默认的。
读取Pool中的值与普通对象一样。
使用KQueue。KQueue提供了一个可变大小的缓存队列。与KPool一样,开发者可以选择使用默认或自定义的。
KQueue中的对象不允许指定过期时间,全部使用默认值,切没有KEY,只能通过push方法存入和pop方法获取。
调用save方法把缓存空间归档,调用load方法重新载入
[Kache save]; // 归档 [Kache load]; // 重新载入,每次启动自动调用配置文件kache.conf通过修改配置文件可以改变Kache控件的工作状态
#define KACHE_DEFAULT_POOL_SIZE 20 #define KACHE_DEFAULT_QUEUE_SIZE 10 // Default expired time, 10 Days. #define KACHE_DEFAULT_LIFE_DURATION 864000 // 把内存归档到磁盘的阈值,单位 byte #define ARCHIVING_THRESHOLD 50000github地址:
https://github.com/gaosboy/kache