Redis缓存Key管理


通过自定义配置文件来管理redis的key

自定义配置文件

我们在项目根目录下的config文件夹中,创建cache_key.config.php文件, 用于保存缓存key配置

return array(
    //用户
    'userAvatar'   =>  'u:a',
    'userNameCache' =>  'u:nc',
    'userSendPhoneCode' => 'u:spc',
    'userSendEmailCode' => 'u:sec',
);

数组的键命名尽量清晰,能望文知意, 以便于我们编码. 数组的值尽可能的短, 节省内存.

扩展Module

在module的基类中, 新增一个获取缓存key的方法

namespace modules\web;

use Cross\Core\CrossArray;
use Cross\Core\Loader;
use Cross\Exception\CoreException;
use Cross\MVC\Module;

class WebModule extends Module
{
    /**
     * 获取缓存key配置
     *
     * @param string $config_name
     * @param string $key
     * @return array|string
     * @throws CoreException
     */
    protected function getCacheKey($config_name, $key = null)
    {
		//避免重复加载配置文件
        static $config = null;
        if (null === $config) {
            $config = $this->loadConfig('cache_key.config.php');
        }

        $cache_key_prefix = $config->get($config_name);
        if (!$cache_key_prefix) {
            throw new CoreException("未定义的缓存key: {$config_name}");
        }

        if (!empty($key)) {
            return sprintf('%s:%s', $cache_key_prefix, $key);
        }

        return $cache_key_prefix;
    }
}

在Module中可以调用以下方法来获取指定的缓存key了

$this->getCacheKey("缓存key名称")

灵活使用配置文件, 能让代码更整洁