导航:首页 > 编程语言 > php数组缓存

php数组缓存

发布时间:2022-10-15 16:43:42

php可以存储数组吗

可以的。

先用serialize序列化数组,再存入COOKIE,读出来时用unserialize得到原来的数组

代码:

//存入

$arr = array(1,2,3);

$arr_str = serialize($arr);

setcookie("a",$arr_str);

//取出

$arr_str = $_COOKIE['a'];

$arr = unserialize($arr_str);

2. 设定多键值cookie,注意必须给键值

$arr = array(1,2,3);

setcookie("a[0]", $arr[0]);

setcookie("a[1]", $arr[1]);

setcookie("a[2]", $arr[2]); 结果:数组所有元素都存到了。

数组长度 :3

Array ( [0] => 1 [1] => 2 [2] => 3 )

❷ PHP 操作大对象 数组如何节省内存

20M你要读到数组中,如果你不清楚要用到里面哪些数据,并且你的数据比较规律的话,你可以把这20M切开不同个小文件,再根据你在程序中要用的数据来做判断是载入哪个文件,比如你这20M文件都有一个索引id,1,2,3,4,5....你可以把这20M文件的数据id为1-1000的存到一个文件里,1001-2000存到另一个文件里,你在用时根据要用到的id判断载入哪个文件,这只是个思路,具体要看你的数据是个什么样的,能不能满足切开放的条件

❸ php查询数据库的前5条数据,用数组存起来

为了便于随时echo,存为字符串最好,一般的代码如下:

$sql='select * from xxx order by xxid desc limit 5';//limit 5表示只取5个,order by xxxid desc表示按xxxid降序排列,可以显示最新的5个
$res=mysql_query($sql);
$str5='';//保存的结果
while($row=mysql_fetch_array($res)) $str5.=$row[0].‘<br>';//可能你需要修改这一句,控制显示格式

mysql_free_result($res);

以后你就可以随时echo $str5了。

❹ php 数组占用内存太大

我们这前面的php高效写法提到,尽量不要复制变量,特别是数组,一般来说php数组的内存利用率只有1/10,也就是说,一个在c语言国面100M内存的数组,在php里面就是1G,

❺ thinkphp 数据缓存是否校验缓存是什么意思

在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可,例如:

// 缓存初始化

S(array('type'=>'xcache','expire'=>60));

缓存初始化可以支持的参数根据不同的缓存方式有所区别,常用的参数是:

参数 描述

expire 缓存有效期(时间为秒)

prefix 缓存标识前缀

type 缓存类型

系统目前已经支持的缓存类型包括:Apachenote、Apc、Db、Eaccelerator、File、Memcache、Redis、Shmop、Sqlite、Wincache和Xcache。

如果S方法不传入type参数初始化的话,则读取配置文件中设置的DATA_CACHE_TYPE参数值作为默认类型。同样的道理,prefix参数如果没有传入会读取配置文件的DATA_CACHE_PREFIX参数值,expire参数没有传入则读取DATA_CACHE_TIME配置值作为默认。

有些缓存方式会有一些自身特殊的参数,例如Memcache缓存,还需要配置其他的参数:

S(array(

'type'=>'memcache',

'host'=>'192.168.1.10',

'port'=>'11211',

'prefix'=>'think',

'expire'=>60)

);

对于全局的缓存方式,一般我们建议添加prefix(缓存前缀)参数用以区分不同的应用,以免混淆。

// 设置缓存

S('name',$value);

会按照缓存初始化时候的参数进行缓存数据,也可以在缓存设置的时候改变参数,例如:

// 缓存数据300秒

S('name',$value,300);

甚至改变之前的缓存方式或者更多的参数:

// 采用文件方式缓存数据300秒

S('name',$value,array('type'=>'file','expire'=>300));

如果你在缓存设置的时候采用上面的数组方式传入参数的话,会影响到后面的缓存存取。

缓存读取

// 读取缓存

$value = S('name');

缓存读取的是前面缓存设置的值,这个值会受缓存初始化或者缓存设置的时候传入的参数影响。 如果缓存标识不存在或者已经过期,则返回false,否则返回缓存值。

// 删除缓存

S('name',null);

删除缓存标识为name的缓存数据。

对象方式操作缓存

我们可以采用对象方式操作缓存,例如:

// 初始化缓存

$cache = S(array('type'=>'xcache','prefix'=>'think','expire'=>600));

$cache->name = 'value'; // 设置缓存

$value = $cache->name; // 获取缓存

unset($cache->name); // 删除缓存

如果你设置了缓存前缀的话,对应的缓存操作只是对应该缓存前缀标识的,不会影响其他的缓存。

关于文件缓存方式的安全机制

如果你使用的是文件方式的缓存机制,那么可以设置DATA_CACHE_KEY参数,避免缓存文件名被猜测到,例如:

'DATA_CACHE_KEY'=>'think'

数据缓存可以支持缓存队列,简单的说就是可以限制缓存的数量,只需要在初始化的时候指定length参数:

S(array('type'=>'xcache','length'=>100,'expire'=>60));

设置了length参数后,系统只会缓存最近的100条缓存数据。

❻ php缓存二维数组

你要缓存到哪? 你的二维数组有多大? 缓存到服务器 你可以用 redis memache 等。 如果小的花 直接写cookie 。

❼ php 数组建立缓存,加快访问速度

可以考虑采用数据缓存,例如将数据缓存在memcache/redis 中,使用的时候 直接从缓存里读取,缓存里不存在的时候,自动读取数据库数据,更新到缓存中,缓存设置自动过期时间(或自动更新数据),这样可以减轻DB的压力。

❽ php数组累加速度很慢

将数据存在内存。
采用数据缓存,使用的时候直接从缓存里读取,缓存里不存在的时候,自动读取数据库数据,更新到缓存中,缓存设置自动更新数据。
PHP数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。

❾ php用redis缓存和用数组缓存的区别

php用redis缓存和用数组缓存的区别:

redis或者memcache比较正规,用文件是权宜之计,不同之处是文件慢,下次打开还有,redis要开通存储功能才有。

另外文件可以存放到内存里面,/run/shm下面,或者/dev/shm下面。这样速度也很快

❿ thinkphp 静态缓存的设置方法,怎么设置thinkphp静态页

在配置文件Conf\config.php的array()中加上:
Php代码
1
'HTML_CACHE_ON'
=>
true,//开启静态缓存
2
'HTML_PATH'
=>
'__APP__/html',//静态缓存文件目录,HTML_PATH可任意设置,此处设为当前项目下新建的html目录
静态规则定义:
ThinkPHP官方手册写道
静态规则的定义有三种方式:
Return
Array(
‘ActionName’=>array(‘静态规则’,’静态缓存有效期’,’附加规则’),
//第一种
‘MoleName:ActionName’=>array(‘静态规则’,’静态缓存有效期’,’附加规则’),//第二种
‘*’=>array(‘静态规则’,’静态缓存有效期’,’附加规则’),//第三种
…更多操作的静态规则
)
第一种是定义全局的操作静态规则,例如定义所有的read操作的静态规则为:'read'=>array('{id}','60')
其中,
{id}
表示取
$_GET[‘id’]
为静态缓存文件名,第二个参数表示缓存
60
秒。
第二种是定义某个模块的操作的静态规则,例如,我们需要定义
Blog
模块的
read
操作进行静态缓存
‘Blog:read’=>array(‘{id}’,-1)。
第三种方式是定义全局的静态缓存规则,这个属于特殊情况下的使用,任何模块的操作都适用,例如
‘*’=>array(‘{$_SERVER.REQUEST_URI|md5}’),
根据当前的
URL
进行缓存。

阅读全文

与php数组缓存相关的资料

热点内容
为什么创建id会出现服务器错误 浏览:835
代码中有不必编译的单词吗 浏览:563
钩子与数据库编程 浏览:563
安卓光遇录歌怎么设置 浏览:485
虚拟机怎么和云服务器搭建集群 浏览:896
python倒计时代码turtle 浏览:491
cad命令mv 浏览:928
nexus7一代androidl 浏览:306
linux使用静态库编译过程 浏览:103
android平滑滚动效果 浏览:841
什么是编译器指令 浏览:219
微控制器逻辑命令使用什么总线 浏览:887
程序员在学校里是学什么的 浏览:604
oraclejava数据类型 浏览:890
程序员考注册会计师 浏览:957
怎么使用access的命令按钮 浏览:899
有点钱app在哪里下载 浏览:832
博途v15解压后无法安装 浏览:205
什么是根服务器主机 浏览:438
安卓手游怎么申请退款 浏览:555