iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >web项目要引入redis的原因
  • 721
分享到

web项目要引入redis的原因

2024-04-02 19:04:59 721人浏览 八月长安
摘要

WEB项目要引入Redis的原因?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!redis是NoSQL数据库,是一个key-

WEB项目要引入Redis的原因?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

redis是NoSQL数据库,是一个key-value存储系统。虽然redis是key-value的存储系统,但是redis支持的value存储类型是非常的多,比如字符串链表集合、有序集合和哈希。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++C#PHPjavascript,Perl,Object-C,python,Ruby,Erlang等客户端,使用很方便。

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

Redis与其他 key-value缓存产品有以下三个特点:

Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

Redis支持数据的备份,即master-slave模式的数据备份。

Redis优势

性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

原子– Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他key-value存储有什么不同?

Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

那么为什么要使用类似redis这样的Nosql数据库呢?

1、当数据量的总大小一个机器放不下时;

2、数据索引一个机器的内存放不下时;

3、访问量(读写混合)一个实例放不下时。

单机时代,存储只用一台机器装Mysql,如果每次存储成千上万条数据,这样很会导致mysql的性能很差,存储以及读取速度很慢,然后就演变成缓存+mysql+垂直拆分的方式。

Cache作为中间缓存时代,将所有的数据先保存到缓存中,然后再存入mysql中,减小数据库压力,提高效率。

但是当数据再次增加到又一个量级,上面的方式也不能满足需求,由于数据库的写入压力增加,缓存只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。

主从分离模式时代,在redis的高速缓存,MySQL的主从复制,读写分离的基础之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。Nosql数据库的优势:

1、易扩展

这些类型的数据存储不需要固定的模式,无需多余的操作就可以进行横向的扩展。相对于关系型数据库可以减少表和字段特别多的情况。也无型之间在架构的层面上带来了可扩展的能力

2、大数据量提高性能

3、多样灵活的数据模型

感谢各位的阅读!看完上述内容,你们对web项目要引入redis的原因大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: web项目要引入redis的原因

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

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

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

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

下载Word文档
猜你喜欢
  • web项目要引入redis的原因
    web项目要引入redis的原因?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!redis是Nosql数据库,是一个key-...
    99+
    2024-04-02
  • mysql要索引的原因
    这篇文章主要介绍了mysql要索引的原因,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。因为索引能够快速提高查询速度;如果不使用索引,mysql必...
    99+
    2024-04-02
  • web项目开发VUE的混入与继承原理
    目录混入混入注意(重名情况)局部混入全局混入定义及全局注册调用继承混入和继承的区别混入 将多个vue文件内重复使用的功能代码,提取成单个js文件,在需要使用的地方进行调用即...
    99+
    2024-04-02
  • MySQL索引要用B+tree的原因
    了解MySQL索引要用B+tree的原因?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!当你现在遇到了一条慢 SQL 需要进...
    99+
    2024-04-02
  • Vue中动态引入图片要require的原因是什么
    这篇“Vue中动态引入图片要require的原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue中动态引入图片要r...
    99+
    2023-07-04
  • Vue中动态引入图片要是require的原因解析
    目录1.什么是静态资源2. 为什么动态添加的src会被当做的静态的资源?3. 没有进行编译,是指的是什么没有被编译?4. 加上require为什么能正确的引入资源,是因为加上requ...
    99+
    2022-11-13
    vue引入图片为什么要require vue引入图片
  • Vue项目引入PWA的步骤
    目录1. 安装依赖2. 在vue.config.js文件中配置pwa:3. 手动添加manifest.json文件到项目的public目录下,manifest.json内容如下:4....
    99+
    2024-04-02
  • react项目引入scss的方法
    首先下载依赖 yarn add sass-loader node-sass 然后在项目路径 node_modules/react-scripts/config/webpac...
    99+
    2024-04-02
  • redis单线程需要加锁的原因
    这篇文章将为大家详细讲解有关redis单线程需要加锁的原因,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,...
    99+
    2024-04-02
  • 防止web项目中的SQL注入
    目录一、SQL注入简介二、SQL注入攻击的总体思路三、SQL注入攻击实例四、如何防御SQL注入1、检查变量数据类型和格式2、过滤特殊符号3、绑定变量,使用预编译语句小结:一、SQL注...
    99+
    2024-04-02
  • vue动态引入图片要使用require的原因是什么
    这篇文章主要讲解了“vue动态引入图片要使用require的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue动态引入图片要使用require的原因是什么”吧!1.什么是静态资源...
    99+
    2023-07-04
  • C#入参使用引用类型要加ref的原因解析
    目录ref修饰入参的常用场景引用类型添加ref的作用是啥?总结摘一段来自官网的说明 :方法的参数列表中使用 ref 关键字时,它指示参数按引用传递,而非按值传递。 ref 关键字让形...
    99+
    2022-11-21
    c#引用类型加ref c#引用类型
  • jOOQ项目存在的原因是什么
    本篇文章给大家分享的是有关jOOQ项目存在的原因是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。值得思考的是,为什么你应该(或者不应该)在某特定项目中使用JOOQ。具体讲,...
    99+
    2023-06-17
  • Redis要比Memcached更火的原因有哪些
    本篇内容介绍了“Redis要比Memcached更火的原因有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • web项目开发中2个Token原因解析及示例代码
    目录 问题: 项目中2个Token, 一个时效2个小时(简称:短Token), 另一个时效14天(简称:长Token), 为什么要用2个Token? 解答: 1.基于安全性,...
    99+
    2024-04-02
  • 原因分析IDEA导入Spring-kafka项目Gradle编译失败
    目录前言异常信息具体原因解决问题前言 最近在弄kafka相关的东东,因为是spring boot工程,所以用到了Spring-kafka,一个包含了kafka-producer和ka...
    99+
    2024-04-02
  • IDEA导入Spring-kafka项目Gradle编译失败的原因是什么
    小编给大家分享一下IDEA导入Spring-kafka项目Gradle编译失败的原因是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!异常信息java.lang.AbstractMethodErrorat or...
    99+
    2023-06-29
  • php redis写入失败的原因有哪些
    这篇文章主要介绍“php redis写入失败的原因有哪些”,在日常操作中,相信很多人在php redis写入失败的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php redis写入失败的原因有哪些...
    99+
    2023-07-05
  • Redis中需要AOF重写的原因有哪些
    AOF文件过大:随着Redis的运行,AOF文件会不断增长,可能达到非常大的规模,导致占用大量磁盘空间。 AOF文件过期:A...
    99+
    2024-05-07
    Redis
  • redis要序列化对象的原因是什么
    Redis要序列化对象的原因有以下几点:1. 数据持久化:Redis是一个内存数据库,如果不进行序列化,那么数据只会存在于内存中,一...
    99+
    2023-09-01
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作