wordpress的网站用Memcached还是Redis来缓存
1、Memcached出来的时间较redis早
2、memcached更专注于实现一个高性能的缓存,而Redis更专注于实现一个多功能、海量数据、高可用的nosql数据库。
3、Memcached只支持简单的key/value存储,redis支持list、set、hash、zset(有序集合)、sorted set数据存储,这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的
4、memcached中保存的数据都存储在memcached内置的内存存储空间中,宕机后数据就会丢失
redis支持数据持久化,内存中的数据保持在磁盘中,重启后可以加载进行使用
5、Memcached不支持分布式数据共享,redis支持分布式系统,支持分片、哨兵模式。
分片有3种方式
a、代码编写调用不同的redis库
b、使用代理工具
c、redis集群,随机访问。
6、Redis支持数据的备份,即master-slave模式的数据备份,每个Master节点都会有对应的两个用于冗余的Slave节点。这样在整个集群中,任意两个节点的宕机都不会导致数据的不可用
7、应用场景不一样:Redis出来作为NoSQL数据库使用外,还能用做消息队列、数据堆栈和数据缓存等;Memcached适合于缓存SQL语句、数据集、用户临时性数据、延迟查询数据和session等。
8、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘;
9、redis中内存使用到一定阈值时会根据一定的算法将比较久的或者过期了的数据保存到磁盘中,将redis内存中数据删除,但会保存所有的key,当查询改key值获取不到数据则去磁盘中加载。
10、Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。
11、memcached的服务器与客户端通信并不使用复杂的XML等格式, 而使用简单的基于文本行的协议,对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大,读取方面尤其是针对批量读取性能方面memcached占据优势
Redis Cluster分布式存储架构中节点与节点之间通过二进制协议进行通信,节点与客户端之间通过ascii协议进行通信
12、Memcached提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题。 Redis没有提供cas 命令,并不能保证这点,不过Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断。
————————————————
版权声明:本文为CSDN博主「澹泊csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huzhiqiangCSDN/article/details/78123795
WordPress 如何启用 Memcached 内存缓存来提高网站速度
很多人问我 WordPress 怎么速度快,一般简单回答就是装 Memcached,这真的不是敷衍了事,一点不夸张,装上 Memcached 就可以让 WordPress 快上好几倍,但是真正用好 WordPress,还是需要对 WordPress 有更深的了解。
所以我把我博客关于 Memcached 的所有文章重新整理一下,做个专题深度优化 WordPress 的合集,让大家真正理解 WordPress 优化。
什么是 Memcached?
Memcached 是一种高性能的分布式内存对象缓存系统,在动态程序中使用 Memcached, 既能提高访问的速度,同时还减低了数据库的负载。
Memcached 可以存储来自调用数据库和 API,或者页面渲染生成的任意类型的数据(字符串,对象)到内存中,也可以直接到内存中去读取。它的 API 支持目前大部分流行的编程语言,Memcached 的官方网站:http://memcached.org/
最初 Danga Interactive 为提升 LiveJournal.com 的速度而研发了 Memcached,目前,最终实现了每天已经在向一百万用户提供多达两千万次的页面访问,而这些,是由一个由 Web 服务器和数据库服务器组成的集群完成的。
Memcached 的 PHP 扩展
PHP 有两个 Memcached 扩展:“PHP Memcache 扩展” 和 “PHP Memcached 扩展”,这就是是我们搞混的地方。
PHP Memcache 扩展用 PHP 实现的,支持面向对象和面向过程两种接口,2004年就实现了,是老的扩展,而且功能少,属性也可设置的少。
PHP Memcached 扩展基于 libmemcached 开发的,使用 libmemcached 库提供的 API 与 Memcached 服务进行交互,只支持面向对象的接口,2009年才实现,Memcached 扩展功能更加完善,支持的函数更多,比如支持批量操作,现在一般建议使用 Memcached 扩展。