最近看了一些关于缓存方面的教程: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 有不同的应用场景,不能直接比较优劣,网上很容易找到比较它们的文章。
- 3 回答
- 0 关注
- 390 浏览
添加回答
举报
0/150
提交
取消