Memcached 和 Redis 有什么区别,WordPress 使用哪个做缓存好?

2023-04-13 10:59:00 浏览数 (2)

前面介绍了使用 Memcached 内存缓存来提高 WordPress 站点速度,看到大家留言最多的问题,就是关于 Redis 和 Memcached 的比较。今天就给大家做一个简单介绍。

Memcached 和 Redis 有什么区别

Memcached 是一个分布式内存缓存系统,设计简单易用,非常适合用作缓存或会话存储。 

Redis 是一个内存中的数据结构存储,它提供了一系列丰富的特性,它作为缓存、数据库、消息代理和队列非常有用。

Redis 的作者 Salvatore Sanfilippo 曾经对这两种基于内存的数据存储系统进行过比较:

  1. Redis 支持服务器端的数据操作:Redis 相比 Memcached 来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在 Memcached 里,你需要将数据拿到客户端来进行类似的修改再 set 回去。这大大增加了网络 IO 的次数和数据体积。在 Redis 中,这些复杂的操作通常和一般的 GET/SET 一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么 Redis 会是不错的选择。
  2. 内存使用效率对比:使用简单的 key-value 存储的话,Memcached 的内存利用率更高,而如果 Redis 采用 hash 结构来做 key-value 存储,由于其组合式的压缩,其内存利用率会高于 Memcached。
  3. 性能对比:由于 Redis 只使用单核,而 Memcached 可以使用多核,所以平均每一个核上 Redis 在存储小数据时比 Memcached 性能更高。而在 100k 以上的数据中,Memcached 性能要高于 Redis,虽然 Redis 最近也在存储大数据的性能上进行优化,但是比起 Memcached,还是稍有逊色。

总结一下:Memcached 是解决简单缓存问题的可靠选择,而 Redis 通过提供更丰富的功能和各种各样的特性而优于 Memcached,这些特性对于解决复杂的场景更有优势。

WordPress 使用哪个做缓存好?

如果单纯作为内存缓存来使用,两者其实没有什么区别,那么为什么 WPJAM Basic 为什么使用 Memcached 呢?

首先因为使用简单的 key-value 存储的话,Memcached 的内存利用率更高,另外我们一开始就选择了 Memcached 做 WordPress 的内存缓存的存储介质,并且在使用 Memcached 做内存缓存过程中,针对出现的各种的问题,我也做了很多的优化,比如我们在后台「WPJAM」菜单下的「系统信息」中展示「Memcached」的各种信息。

当然如果你已经使用了 Redis 做内存缓存或者更熟悉 Redis,WordPress 官方插件库也有很多第三方提供了 Redis 的 object-cache.php,和使用 Memcached 一样,只需要将对应的 object-cache.php 上传到 wp-content 目录即可。

也有很多小伙伴问,WPJAM Basic 会不会集成 Redis,这个可以明确的说,目前作为简单缓存功能,Memcached 已经足够好用,不会再花时间集成 Redis。当然,我也会使用 Redis 做其他功能的开发,比如 Redis 天然单线程,在花生小店秒杀的功能中就是使用 Redis 进行处理的,还有一些简单的消息队列处理,也是基于 Redis 进行二次开发的。

所以最后总结说一下,如果简单的内存缓存,建议使用 Memcached,WPJAM Basic 也优化得非常完善,如果要进行复杂的程序开发,比如上面说的电商的秒杀功能 ,消息队列系统,那么 Redis 才是发挥其长处的地方。

0 人点赞