为什么是MC(Memcached)而不是Redis?

为什么是MC(Memcached)而不是Redis?

本文主要分享一下MC和redis作为缓存的一些比较,希望读者能够通过对比,了解二者的区别,能够在适合的场景中使用。

1: 并发模式

Redis:

​ 单线程,如果需要提升在多核心CPU上的性能,应该横向扩展多个Redis实例来适配多个核心

​ 将单个Redis实例与多线程数据存储进行比较是不公平的(官方说法)

Memcached:

多线程,默认4线程,可以配置。

2: 内存分配

Redis:

动态分配内存

Memcached:

内存预分配

3: 最佳实践

Redis:

  1. 在多核心CPU上,应该部署多个Redis实例
  2. 利用单线程处理的天生优势,可以用作分布式锁
  3. 因为可以持久化,可以当做数据库用。查询可以利用外挂索引(比如:全文检索)

Memcached:

  1. 极致的性能适用高并发场景,单个实例可以达到10wanQPS
  2. 因为内存预分配机制,所以千万不要大幅度改变缓存数据的大小
  3. 没有集群配置,如果做分布式缓存,可以在Client端扩展数据分片读取,写入。

总结

以上就是本次分享的所有内容,主要讲述一下Redis和MC的一些对比和相关的实践。如有不足,请多多指正。

相关推荐
m0_747854521 分钟前
c++怎么在写入文本文件时自动将所有换行符统一为Unix风格【详解】
jvm·数据库·python
.柒宇.2 分钟前
MySQL的PXC高可用实战
数据库·mysql
qq_189807032 分钟前
mysql查询执行过程中如何追踪耗时_使用PROFILE分析指令周期
jvm·数据库·python
2401_835956813 分钟前
如何监控表空间自动扩展_DBA_DATA_FILES中的MAXBYTES分析
jvm·数据库·python
羑悻的小杀马特3 分钟前
Pinecone向量数据库深度解析:从核心架构到LangChain集成实战
数据库·架构·langchain·pinecone
Polar__Star3 分钟前
如何配置分区表的行迁移_ENABLE ROW MOVEMENT允许更新分区键跨区移动
jvm·数据库·python
weixin_580614004 分钟前
JavaScript中模板字符串处理多行文本的排版优势
jvm·数据库·python
2401_837163895 分钟前
SQL利用窗口函数实现轻量级报表设计_实战技巧
jvm·数据库·python
m0_514520577 分钟前
如何为禁用按钮添加点击提示信息
jvm·数据库·python
2301_773553628 分钟前
Vue.js监听器watch中deep深度监听与immediate立即执行配置
jvm·数据库·python