存储数据以便在php中进一步使用的最佳实践

时间:2014-04-05 12:29:13

标签: php codeigniter caching codeigniter-2

我想要一些方法来存储由类的某些函数生成的数据,稍后当下一个请求发送到同一类的某个其他函数时我应该能够访问该存储的数据,基本上我这样做是为了保存数据库查询重复相同的数据 我的项目是在codeigniter。

我的模块用作:
1.从table1生成用户列表并将其显示给前端的客户端..(这里我想以某种方式存储用户名和其他数据,如缓存或其他东西)。
2.前端客户端将在这些用户中进行选择,并将这些用户详细信息插入到DB中的table2。 所以基本上在输入数据到table2时我不想再次查询Table1并获得插入的详细信息..

我正在以某种全球的方式寻找一些缓存或存储数据。否则将数据存储在隐藏字段中将是个坏主意,因为数据的大小将是巨大的,如果超过最大帖子大小,帖子可能会产生问题。

如果有一些变量,我可以获取旧的存储数据并将其直接插入Table2。

这是我最初的想法,但没有运气:global variable in php codeigniter

2 个答案:

答案 0 :(得分:0)

CodeIgniter Active Record对您有用。 缓存查询

  

会话中的4000个用户数据可能不是最好的事情

docs

中的使用示例
$this->db->start_cache();
$this->db->select('field1');
$this->db->stop_cache();

$this->db->get('tablename');

//Generates: SELECT `field1` FROM (`tablename`)

$this->db->select('field2');
$this->db->get('tablename');

//Generates: SELECT `field1`, `field2` FROM (`tablename`)

$this->db->flush_cache();

$this->db->select('field2');
$this->db->get('tablename');

//Generates: SELECT `field2` FROM (`tablename`)

答案 1 :(得分:0)

使用一些简单快速的键值存储,如Memcached或Redis,它们也可以在内存中工作,并且可以快速查找键(Redis承诺时间复杂度为O(1))