我在项目中用到缓存技术。但是怕缓存文件过多导致不好。于是想分目录。下面方法正是我需要的。
ThinkPHP内置的缓存可以支持包括File、Db、Apc、Memcache、Shmop、Sqlite、Xcache、Apachenote、Eaccelerator在内的缓存方式。系统的惯例配置默认使用文件方式缓存,也就是File方式。
文件方式默认的缓存目录位于项目的Runtime/Temp/ 目录下面,并且不再区分子目录。如果你的缓存数据比较多,就可以启用哈希子目录缓存,只需要简单配置下面的参数:
‘DATA_CACHE_SUBDIR’=>true, // 开启子目录缓存
‘DATA_PATH_LEVEL’=>1 // 子目录层次 默认为1
哈希子目录缓存仅对File方式的缓存有效。
设置以后,缓存文件会自动生成以缓存文件名的哈希规则为目录名的多层子目录。从而避免在同一目录下面缓存太多文件带来的性能损失。设置以后,缓存代码不用改变,还是使用:
S($name,$data); // 缓存数据
S($name); // 获取缓存数据
S($name,NULL); // 删除缓存数据