为了账号安全,请及时绑定邮箱和手机立即绑定

php变量与缓存的区别

php变量与缓存的区别

PHP
慕侠2389804 2019-03-17 04:33:19
最近看了一些关于缓存方面的教程:Memcache将数据存储为key->value结构的hash表;redis可以支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)明显redis比Memcache功能强大,那么Memcache还有使用的必要?它实现简单缓存相比轻量化点?还有根据以前看的PHP的底层实现的讲解:php变量是zval结构体实现的,并在符号(hash)表内存储了该zval结构体地址,全局变量就是存储在symbol_table全局符号表里, 那么疑问:1.php变量和Memcache缓存都是在内存存储,变量存取速度应该比缓存还要快,想跨页面调用可以定义全局变量,PHP7的字符串变量也没有限制大小,那还用缓存干什么?2.php变量zval结构体使用5种数据类型实现存储8种PHP数据类型,这和redis实现的5种数据类型也差不多?php数组也是类hash结构,配合数组函数也可以实现redis集合,列表的功能,也可以排序,选择存取,那么存储数据有什么本质的差别吗?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

楼主懂得很多,甚至连php底层的东西都知道。
我不知道 php 底层是怎样实现的,但我觉得楼主可以去了解一下“变量的生命周期”。

redis 与 memcache 有不同的应用场景,不能直接比较优劣,网上很容易找到比较它们的文章。

查看完整回答
反对 回复 2019-03-18
?
湖上湖

TA贡献2003条经验 获得超2个赞

变量是零时存储到内存中,脚本执行完毕变量就不存在了,缓存是存在文件或者内存中,缓存有效期内是有效的,内存缓存当重启后也就不存在了!

查看完整回答
反对 回复 2019-03-18
?
九州编程

TA贡献1785条经验 获得超4个赞

概念性的问题,
全局变量你的跨只是文件
缓存可以跨请求

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 390 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信