经常看到大家只能对比redis和memecache的前两项区别【持久化】和【数据类型】,这里,给整理了最全的memcache和redis的区别,欢迎交流哦

缓存

(1)【持久化能力】Redis支持持久化,memcache也支持但一般不做持久化(重启丢失数据)

(2)【数据类型支持】Redis类型较多(5种数据类型,string、list、hash、set、sorted set),memcache只能是字符串

(3)【线程模型】Redis是单线程+多路IO复用,虽然没有锁冲突,但很难利用多核特性提升整体吞吐量。memecache是多线程+锁的方式,主线程监听,work子线程接受请求,执行读写,有锁冲突。;

(4)【数据库特征】Redis不是所有的数据都存储在内存,在很多方面具备数据库的特征,memcache只是简单的kv缓存;相当于memchache更像是redis在功能上的一个子集。

(5)【高可用支持】高可用(redis原生支持高可用功能,可以实现主从复制,哨兵模式,redis集群模式,而memcache要实现高可用,需要进行二次开发,例如客户端的双读双写,或者服务端的集群同步)(延伸:虽然数据类型单一,但是memcache的内存管理机制导致无碎片,这让memcache工作更加稳定,而redis本身也考虑到自己功能复杂,会产生碎片,并且容易崩溃,所以支持高可用)

(6)【内容大小比较】redis存储的内容比较大(memcache的value存储最大是1M,如果存储value很大,只能选择redis)

(7)【内存分配】memchache使用预分配内存池的方式管理内存,能够省去内存分配的时间,这个节省的时间在数据量很大的时候还是很可观的。而redis则是临时申请空间,可能导致碎片。Redis和Memcache在写入性能上面差别不大的,读取性能上面尤其是批量读取性能上面Memcache更强的。

redis存储数据类型_Redis与Memcahe的区别最全整理相关推荐

  1. Redis常见数据类型_Redis通用指令

    Redis常见数据类型 redis本身就是一个Map结构, 所有数据都采用key:value的形式, redis中的数据类型指的是value的类型, key部分永远是字符串 string(类似Java ...

  2. redis存储对象_redis内存优化总结

    本文主要参考<>一书,主要分为以下六个部分: 1.redisObject对象 2.缩减键值对象 3.共享对象池 4.字符串优化 5.编码优化 6.控制key的数量 一. redisObje ...

  3. netcore redis 存储集合_Redis的简单入门

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久 ...

  4. Redis存储数据类型,及存取值方法

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合) String存取值: 是 redis 最基本的类型一 ...

  5. javapython区别最全整理终极收藏_Perl、PHP、Python、Java 和 Ruby 比较【转载+整理】...

    从本文的内容上,写的时间比较早,而且有些术语我认为也不太准,有点口语化,但是意思到了. 问题: Perl.Python.Ruby 和 PHP 各自有何特点? 为什么动态语言多作为轻量级的解决方案? L ...

  6. 常用的高性能 KV 存储 Redis、Memcached、etcd、Zookeeper 区别

    1. 什么是 KV 存储 KV 是 Key-Value 的缩写,KV 存储也叫键值对存储.简单来说,它是利用 Key 做索引来实现数据的存储.修改.查询和删除功能. 常用的高性能 KV 存储主要有 R ...

  7. redis java 存储图片_Redis 存储图片 [base64/url/path]vs[object]

    一.base64图片编解码 基本流程:从网络获取下载一张图片.然后base64编码,再base64解码,存到本地E盘根文件夹下. import java.awt.image.BufferedImage ...

  8. redis 内存溢出_Redis为何这么快数据存储角度

    本文内容思维导图如下: 一.简介和应用 Redis是一个由ANSI C语言编写,性能优秀.支持网络.可持久化的K-K内存数据库,并提供多种语言的API.它常用的类型主要是 String.List.Ha ...

  9. redis 命令别名_redis 命令、命令行根据前缀(通配符)批量删除redis存储的key

    redis简介 redis作为缓存服务器在项目中经常使用 使用redis存储数据时,我们经常会将key分组 使用冒号(:)分组或者其他的自定义前缀方式,如果我们需要清除redis特定的key内容时,在 ...

最新文章

  1. C#开发微信门户及应用(24)-微信小店货架信息管理
  2. 在leangoo里怎么添加和移动列表,怎么修改列表名称?
  3. 手把手带你玩转 AWS Lambda
  4. 13.4.虚拟化工具--jmap详解
  5. Python环境(基于Pycharm和官方python包)搭建顺序
  6. MySQL高级最左前缀法则
  7. 一致性hash算法原理
  8. o_rdonly_O_RDWR, O_CREAT等open函数标志位在哪里定义? | 学步园
  9. zzulioj1111: 多个整数的逆序输出(函数专题)
  10. 最简单的DLL导出函数隐藏方式
  11. odoo采购单入库代码剖析
  12. 关于前端直播(videoJS与百度云web播放器:Cyberplayer3.0试用)
  13. python 制作 gif 动态图
  14. DHPST分销系统-EP分销-云主机分销系统
  15. 2021-2027中国超声成像检查台市场现状及未来发展趋势
  16. 瓜子二手车逃离行业“不可能三角”?
  17. Python爬取搜集豆瓣图书集,书荒的朋友们再也不用担心了
  18. Java.SE01.多线程
  19. 含文档+PPT+源码等]精品基于SSM企业人力资源管理系统的设计与实现包运行成功]计算机毕设Java项目源码
  20. 8年软件测试从业者个人感悟

热门文章

  1. [转]Xcode的重构功能
  2. 部署OpenStack问题汇总(五)--openstack中删除虚拟主机,状态一直未deleting
  3. MongoDB 常用运算符
  4. java web应用程序_如何构建Java Web 应用程序 - Spring Boot?
  5. 保存的图数据丢失_锡柴自主刷写和备份共享数据文件使用介绍
  6. SQL Server CLR 启用、部署
  7. 网页设计中HTML常范的五个错误
  8. php进程状态进度,PHP监控进程状态,完成掉线自动重启
  9. aix查看lv_Aix 添加VG,LV并挂载使用
  10. 简述List、Set、Map类型的集合的各自特点