iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 > 一、Redis 企业级缓存数据库简述
  • 248
分享到

一、Redis 企业级缓存数据库简述

摘要

一、   企业级缓存数据库简述 1、   缓存数据库的概念 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于


	一、Redis 企业级缓存数据库简述
[数据库教程]

一、   企业级缓存数据库简述

1、   缓存数据库的概念

传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。

 

近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。

 

在数据库技术中,目前主要有两种方法来使用大量的内存。一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。另一种就是内存数据库(MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存,这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。

 

内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。

 

而使用共享内存技术的实时系统和使用内存数据库相比有很多不足,由于优化的目标仍然集中在最小化磁盘访问上,很难满足完整的数据库管理的要求,设计的非标准化和软件的专用性造成可伸缩性、可用性和系统的效率都非常低,对于快速部署和简化维护都是不利的。

 

2、   内存数据库历史和发展

 

2.1、  雏形期

从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969年IBM公司研制了世界上最早的数据库管理系统——基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留数据的商业化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问和管理。在这个阶段中,包括网状数据库、关系数据库等其他各种数据库技术也都逐渐成型。

 

2.2、  技术理论成熟期

1984年,D J DeWitt等人发表了《主存数据库系统的实现技术》一文。第一次提出了Main Memory Database(主存数据库)的概念。预言当时异常昂贵的计算机主存价格一定会下降,用户有可能将大容量的数据库全部保存在主存中,提出了AVL树、哈希算法、主存数据库恢复机制等主存数据库技术的关键理论,为主存数据库的发展指出了明确的方向 。

 

1984年,D J DeWitt等人提出使用非易逝内存或预提交和成组提交技术作为主存数据库的提交处理方案,使用指针实现主存数据库的存取访问。

 

1985年,IBM推出了IBM 370上运行的OBE主存数据库。

 

1986年,RB Hagman提出了使用检查点技术实现主存数据库的恢复机制。威斯康星大学提出了按区双向定模式解决主存数据库中的并发控制问题。并设计出MM-DBMS主存数据库。贝尔实验室推出了DALI主存数据库模型。

 

1987年,ACM SIGMOD会议中提出了以堆文件(HEAP FILE)作为主存数据库的数据存储结构。Southern Methodist大学设计出MARS主存数据库模型。

 

1988年普林斯顿大学设计出TPK主存数据库。

 

1990年普林斯顿大学又设计出System M主存数据库。

 

3、   产品发展期和市场成长期

随着互联网的发展,越来越多的网络应用系统需要能够支持大用户量并发访问、高响应速度的的数据库系统,主存数据库市场成熟

半导体技术快速发展,半导体内存大规模生产,动态随机存取存储器(DRAM)的容量越来越大,而价格越来越低,这无疑为计算机内存的不断扩大提供了硬件基础,使得主存数据库的技术可行性逐步成熟

1994年美国OSE公司推出了第一个商业化的,开始实际应用的主存数据库产品Polyhedra

 

1998年德国SoftwareAG推出了Tamino Database。

 

1999年日本UBIT会社开发出XDB主存数据库产品。韩国Altibase推出Altibase。

 

2000年奥地利的QuiLogic公司推出了sql-IMDB。

 

2001年美国McObject推出eXtremeDB。加拿大Empress公司推出EmpressDB。

 

4、   几种主存技术应用的比较

第一代:用户定制的主存数据库。通过应用程序来管理内存和数据;不支持SQL语句, 不提供本地存储, 没有数据库恢复技术;性能好但很难维护和在别的应用中不能使用;应用在实时领域比如工厂自动化生产。

 

第二代:简单功能的内存数据库。能够快速处理简单的查询;支持部分的 SQL语句和简单的恢复技术;主要目的是能够快速处理大量事务;针对简单事务处理领域,尤其是交换机, 移动通信等。

 

第三代:通用的主存数据库。针对传统的商业关系型数据库领域,能够提供更高的性能、通用性以及稳定性;提供不同的接口来处理复杂的SQL语句和满足不同的应用领域;可以应用在计费、电子商务、在线安全领域,几乎包括磁盘数据库的所有应用领域。

 

5、   几种企业中常用的缓存数据库比较

5.1、  Memcached

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

 

Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高WEB应用扩展性的重要因素。

 

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、api调用或者是页面渲染的结果。

 

Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。

 

本质上,它是一个简洁的key-value存储系统。

 

一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

 

5.1.1、 优缺点
  • 优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash多核结构、多线程读写性能高。
    • 缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高。

5.2、  Redis

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

 

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

 

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

 

5.2.1、 优缺点
  • 优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高。
  • 缺点:不支持多线程读写,相比Memcached会慢。

5.3、  Tair

Tair是由淘宝网自主开发的Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。

 

Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常所说的缓存和持久化存储对应。

 

Tair除了普通Key/Value系统提供的功能,比如get、put、delete以及批量接口外,还有一些附加的实用功能,使得其有更广的适用场景。

 

5.3.1、 优缺点
  • 优点:高性能读写、支持三种存储引擎(ddb、rdb、ldb)、支持高可用、支持分布式分片集群、支撑了几乎所有淘宝业务的缓存。
  • 单机情况下,读写性能较其他两种产品较慢。

 

5.4、测试

 

技术图片

 

 

 

技术图片

 

 

技术图片

 

 

 

技术图片

 

 

5.4.1、 测试结果

Memcached:多核的缓存服务,更加适合于多用户并发访问次数(访问次数较少的应用场景)。

Redis:单核缓存服务,在单节点情况下,更加适合少量用户,多次访问的应用场景。

Memcached:多核的缓存服务,更加适合于多用户并发访问次数(访问次数较少的应用场景)。

Redis:单核缓存服务,在单节点情况下,更加适合少量用户,多次访问的应用场景。

一、Redis 企业级缓存数据库简述

原文地址:https://www.cnblogs.com/zyc99/p/14151469.html

您可能感兴趣的文档:

--结束END--

本文标题: 一、Redis 企业级缓存数据库简述

本文链接: https://www.lsjlt.com/news/8026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redis缓存和redis数据库是一个东西吗
    相同点:基于redis内存数据库,支持多种数据结构。不同点:目的:缓存用于存储常用数据,减少延迟;数据库用于存储持久性数据。持久性:缓存不提供持久性,数据库支持持久化。特性:数据库支持主...
    99+
    2024-04-19
    redis
  • redis是缓存数据库吗
    是,redis是一个缓存数据库。redis(remote dictionary server)是一种键值存储数据库,专门用于快速访问和存储数据,并具有高性能、低延迟、可扩展性和持久性。 ...
    99+
    2024-04-20
    redis
  • redis缓存和数据库不一致解决
    解决 redis 缓存和数据库不一致问题需要:使用数据一致性协议(如 redis 事务或分布式锁)防止并发写入导致不一致。采用缓存失效策略(如过期时间或更新触发器)确保缓存及时更新。优化...
    99+
    2024-04-19
    redis
  • redis缓存如何与数据库保持一致
    保持 redis 缓存与数据库数据一致性至关重要。以下方法可实现数据一致性:1. 写入时更新缓存(立即更新 redis 缓存);2. 写入时检查缓存(将更新存储在队列中,后台进程更新 r...
    99+
    2024-04-19
    redis
  • redis缓存一般存些什么数据
    redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。 R...
    99+
    2024-04-08
    redis 地理位置 键值对
  • redis如何保证缓存和数据库一致性
    redis 通过五种机制维护缓存一致性:1. 写通过缓存,2. 定期同步,3. 事务支持,4. 发布-订阅,5. 校验和修复。选择机制取决于数据变更频率、数据一致性要求、应用性能和维护成...
    99+
    2024-04-20
    redis
  • redis怎么缓存整个数据库
    要将整个数据库缓存到Redis中,可以使用Redis的持久化机制。Redis提供了两种持久化方法:RDB(Redis Databas...
    99+
    2023-08-23
    redis 数据库
  • redis一般缓存什么样数据
    redis 支持多种缓存数据类型,包括字符串、散列表、列表、集合、有序集合、地理空间数据、hyperloglog 和位图。这些类型可根据数据访问频率、变化频率、大小和淘汰策略进行选择,以...
    99+
    2024-04-19
    redis 数据访问 键值对
  • node.js如何使用redis数据库缓存数据
    这篇文章将为大家详细讲解有关node.js如何使用redis数据库缓存数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、运行redisRedis服务器默认使用6379...
    99+
    2024-04-02
  • 怎么保证Redis缓存与数据库的一致性
    这篇文章主要为大家展示了“怎么保证Redis缓存与数据库的一致性”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么保证Redis缓存与数据库的一致性”这篇文章吧...
    99+
    2024-04-02
  • redis缓存如何与数据库保持一致状态
    确保 redis 缓存与数据库一致的方法包括:1. 被动一致性定期同步;2. 增量同步;3. 主动一致性(订阅数据库事件);4. 使用分布式事务。选择方法取决于数据滞后容忍度、性能要求和...
    99+
    2024-04-20
    redis
  • 阿里云数据库探索企业级云存储解决方案
    阿里云数据库是一款面向企业的云存储解决方案,旨在为用户提供稳定、高效、安全的数据存储服务。本文将详细探讨阿里云数据库的特性、优势以及在企业级应用中的具体应用。 阿里云数据库:企业级云存储解决方案在互联网技术快速发展的今天,数据已经成为企业竞...
    99+
    2023-11-10
    阿里 企业级 解决方案
  • Python如何操作Redis缓存数据库
    本篇内容主要讲解“Python如何操作Redis缓存数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何操作Redis缓存数据库”吧!今天我们来学习如何使用Python操作Red...
    99+
    2023-06-02
  • Redis缓存数据库的数据类型和优点
    这篇文章主要讲解了“Redis缓存数据库的数据类型和优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis缓存数据库的数据类型和优点”吧!已经有了Me...
    99+
    2024-04-02
  • redis缓存与数据库双写不一致如何解决
    为解决 redis 缓存和数据库双写不一致问题,可采用以下方法:使用队列:将数据更新请求放入队列,确保先写入数据库再更新缓存。使用乐观锁:更新时检查数据是否被修改,若已被修改则取消更新并...
    99+
    2024-04-20
    redis
  • 详解redis缓存与数据库一致性问题解决
    数据库与缓存读写模式策略 写完数据库后是否需要马上更新缓存还是直接删除缓存? (1)、如果写数据库的值与更新到缓存值是一样的,不需要经过任何的计算,可以马上更新缓存,但是如果对于那...
    99+
    2024-04-02
  • redis缓存和数据库一致性问题如何解决
    在使用Redis缓存时,常常会遇到与数据库一致性的问题。当数据发生变更时,需要保证Redis缓存与数据库的数据保持一致。以下是几种常...
    99+
    2023-08-24
    redis
  • MySQL数据库和Redis缓存一致性的更新策略
    目录一、更新策略二、读写缓存1、同步直写策略2、异步缓写策略三、双检加锁策略四、数据库和缓存一致性的更新策略1、先更新数据库,再更新Redis2、先更新缓存,再更新数据库3、先删除缓存,再更新数据库延时双删4、先更新数据...
    99+
    2023-04-12
    MySQL和Redis缓存一致性更新 MySQL和Redis缓存一致性
  • 阿里云数据库Mdb企业级数据管理平台
    本文将详细介绍阿里云数据库Mdb,这是一款企业级的数据管理平台。Mdb具有强大的功能,可以提供高效、可靠的数据存储和处理服务,帮助企业实现数据驱动的业务创新。 详细说明:阿里云数据库Mdb是一款基于分布式架构的企业级数据管理平台,能够提供高...
    99+
    2024-01-24
    阿里 企业级 管理平台
  • redis缓存数据库的作用有哪些
    1. 提高访问速度:Redis缓存数据库可以将热门数据存储在内存中,从而加快数据的访问速度,提高系统的响应性能。2. 减轻数据库负载...
    99+
    2023-09-04
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作