首页 > 数据库 >数据库历险记(二) | Redis 和 Mecached 到底哪个好?

数据库历险记(二) | Redis 和 Mecached 到底哪个好?

时间:2022-10-06 20:02:54浏览次数:56  
标签:历险记 缓存 框架 数据 Redis 存储 Mecached Memcached

说起缓存框架,我们最常用的缓存框架有 memcached、Redis 这两个,但它们之间其实是有差异的。

Memcached 的诞生

2003年5月,Brad Fitzpatrick 发布了第一个版本的 Memcached,一开始主要是为了解决 LiveJournal 网站访问缓存问题而诞生的,这个版本的 Memcached 使用 Perl 语言编写。之后 Anatoly Vorobey 使用 C 重写了 Memcached。现在 Memcached 已经被广泛应用于 YouTube、Reddit、Facebook 等网站。

说起 Memcached 的诞生,主要还是因为关系型数据库在存储性能上的瓶颈。因为进入21世纪,随着个人电脑的普及,世界网民数量急剧攀升,网站的访问量也随之攀升。

因为关系型数据库需要将数据持久化,所以会有一些写硬盘IO的过程,因此在写入数据上会有瓶颈。而为了解决硬盘IO速度慢的问题,Memcached 则是将所有数据存储在了内存中,从而能实现快速的数据写入和读取。

也是因为 Memcached 将数据存储在内存中,没有实现持久化,所以当出现一些意外情况,例如:断电重启、机器宕机等情况,Memcached 存储的数据会全部丢失,我们只能重新从数据库中读取一次,再加载到 Memcached 中。

除此之外,Memcached只支持单一的 key-value 存储,所以这里面存储的数据类型单一,无法适应多样化的业务发展。

Redis 的诞生

正是因为以上问题的存储,所以在2009年5月的时候Redis诞生了。Redis创建者看到了Memcached身上存在的许多问题,所以创建了Redis缓存框架。

在Redis缓存框架中,它支持多达 6 种类型的数据存储,并且提供了多个原子命令操作。并且Redis还支持了将数据持久化到本地文件,这样当发生意外时就不需要再从数据库读取一遍数据了,直接读取本地文件恢复即可。

从两个缓存框架的发展历程来看,我们可以知道Redis是Memcached的升级版本,Memcached具有的功能Redis基本上都具备了。

所以很多时候我们都是使用Redis作为首选的缓存框架,当然了Memcached也有一些比Redis好一些的性能,比如在存储完全静态的小量 key-value 数据时,Memcached会比Redis快一些。

但只要数据量稍微大一点,或者数据是动态的,那么Memcached的性能就会直线下降。

所以即使Memcached在某些方面有细微的优势,但总体上Redis还是优于Memcached这个缓存框架的。

数据库历险记(二) | Redis 和 Mecached 到底哪个好?_redis



标签:历险记,缓存,框架,数据,Redis,存储,Mecached,Memcached
From: https://blog.51cto.com/u_13879334/5733994

相关文章

  • Redis Cluster的部署与维护
    1、RedisCluster的工作原理  不管是Redis的主从复制,还是基于主从复制环境之上的Redis哨兵(Sentinel)模式,这些都是做到了数据的远程备份,并且在哨兵模式下还可以做到原主节......
  • redis
                                ......
  • 006-Redis的 List 命令
    1.List1.1lindex1.1.1基本信息LINDEXkeyindexsummary:Getanelementfromalistbyitsindexsince:1.0.0Returnstheelementatindexindexinthelist......
  • 007-Redis的 Set 命令
    1.Set1.1sadd1.1.1基本信息SADDkeymember[member...]summary:Addoneormorememberstoasetsince:1.0.0Addthespecifiedmemberstothesetstored......
  • redis的两种持久化方式
    redis的两种持久化方式redis是一个内存数据库,一旦断电或服务器进程退出,内存数据库中的数据将全部丢失,所以需要redis持久化redis持久化就是把数据保存在磁盘上,利用永久性......
  • Redis 3.2 集群搭建
     Redis3.0版本之后支持Cluster.这里安装3.2版本1、下载安装包cd/usr/local/wgethttp://download.redis.io/releases/redis-3.2.1.tar.gztar-zxvf/redis-3.2.1.tar.gz2......
  • Redis之持久化存储
    Redis持久化解决方案RDBRDB存储的重点在于数据本身,将数据持久化存入后缀为.rdb的文件中,即快照,每隔一段时间记录新的数据,像快速拍照一样,每次拍完放在一边,用的时候快速......
  • Redis的五种基本结构
    Stirng类型操作成功返回大于0的数或Integer1操作失败Integer0nil为空基本指令1.添加一组键值对setnameJoshua2.根据key获取value>getname"Joshua"3.key删......
  • 004-Redis 的 Generic 命令组
    1.Generic1.1copy1.1.1基本信息COPYsourcedestination[DBdestination-db][REPLACE]summary:Copyakeysince:6.2.0Thiscommandcopiesthevaluestored......
  • 005-Redis的 Hash 命令组
    1.Hash1.1hdel1.1.1基本信息HDELkeyfield[field...]summary:Deleteoneormorehashfieldssince:2.0.0Removesthespecifiedfieldsfromthehashstor......