gpt4 book ai didi

php - 在 codeigniter 的单个缓存文件夹中管理两个不同的缓存文件

转载 作者:行者123 更新时间:2023-11-28 23:12:34 25 4
gpt4 key购买 nike

我需要帮助来解决 codeigniter 缓存的一个问题。

我正在运行两个函数来将结果存储在缓存中。这个函数在我的模型中:

public function cacheAllCurrencies()
{
$this->db->cache_on();
$this->db->select("name,icon,currency_code");
$this->db->from("currency");
$this->db->where("status='Active'");
$cache_currency_result = $this->db->get()->result();
$this->db->cache_off();
return $cache_currency_result;
}

public function cacheAllCategory()
{
$this->db->cache_on();
$this->db->select("name,url");
$this->db->from("category");
$this->db->where("parent_category='0'");
$this->db->where("status='Active'");
$this->db->order_by('name','ASC');
$cache_category_result = $this->db->get()->result();
$this->db->cache_off();
return $cache_category_result;
}

My these two functions are called in header view like below :

$CI =& get_instance();
$CI->load->model(PUBLIC_DIR.'/commonPage','common');
$currencies = $CI->common->cacheAllCurrencies();
$categories = $CI->common->cacheAllCategory();

现在,当所有页面加载时,它会根据打开的页面创建一个缓存文件,如 home、blog、blog+blogname 等。

两个查询在缓存文件夹中生成两个缓存文件

1580e4c2413cb09f6ed3bc7fae8cee45 - 第一个函数缓存结果d7e2452b0424f859e1a5984bd26cbd6c - 第二个函数缓存结果

现在,我有两个问题:

  1. 当我为该类别更新相同的货币表时,我需要删除 1580e4c2413cb09f6ed3bc7fae8cee45 缓存文件。
  2. 这个文件名是怎么产生的?我的意思是 codeigniter 如何生成缓存文件名。在我的缓存中,1580e4c2413cb09f6ed3bc7fae8cee45 用于货币,d7e2452b0424f859e1a5984bd26cbd6c 用于类别。

我希望这个解释是有道理的,我希望大多数 codeigniter 开发人员都遇到这个需要解决的问题。

谢谢,阿里

最佳答案

Codeigniter中,您可以使用表名清除数据库的缓存喜欢

$this->db->cache_delete('currency');
$this->db->cache_delete('category');

或者两个表同时缓存

$this->db->cache_delete('currency','category');

编辑:CodeIgniter 通过 md5() 加密 SQL 查询保存文件名

public function cacheAllCurrencies(){
$this->db->cache_on();
$this->db->select("name,icon,currency_code");
$this->db->from("currency");
$this->db->where("status='Active'");
//here you get filename
$file_name=md5($this->db->get_compiled_select());
$cache_currency_result = $this->db->get()->result();
$this->db->cache_off();
return $cache_currency_result;
}

关于php - 在 codeigniter 的单个缓存文件夹中管理两个不同的缓存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com