文档章节

为什么要使用redis数据库?

architect刘源源
 architect刘源源
发布于 2018/05/29 17:39
字数 901
阅读 11
收藏 0

1、 redis简介 
redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型,类似于Java中的map)。Redis基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。 
2、 互联网时代背景下大机遇,什么要使用Nosql? 
1) 当数据量的总大小一个机器放不下时。 
2) 数据索引一个机器的内存放不下时。 
3) 访问量(读写混合)一个实例放不下时。

单机时代模型 
这里写图片描述 
如果每次存储成千上万条数据,这样很会导致mysql的性能很差,存储以及读取速度很慢,然后就演变成缓存+mysql+垂直拆分的方式。 
这里写图片描述 
Cache作为中间缓存 
将所有的数据先保存到缓存中,然后再存入mysql中,减小数据库压力,提高效率。 
但是当数据再次增加到又一个量级,上面的方式也不能满足需求,由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。 
这里写图片描述
主从分离模式 
在redis的高速缓存,MySQL的主从复制,读写分离的基础之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。 
这里写图片描述
分表分库模式 
将变化小的、业务相关的放在一个数据库,变化多的,不相关的数据放在一个数据库。 
3、 nosql数据库的优势 
1)易扩展 
这些类型的数据存储不需要固定的模式,无需多余的操作就可以进行横向的扩展。相对于关系型数据库可以减少表和字段特别多的情况。也无型之间在架构的层面上带来了可扩展的能力 
2)大数据量提高性能 
3)多样灵活的数据模型 
在nosql中不仅可以存储String,hash,set、Zset等数据类型,还可以保存javaBean以及多种复杂的数据类型。 
4、 NoSql的应用 
1) 大数据时代淘宝、微信、以及微博等都广泛的使用了redis数据库,将一些固定不变的数据例如学校,区域等固定的信息保存在关系型数据库中。然后对于经常变化的数据例如淘宝每个节日都会有比较热门的搜索显示在搜索框,当节日过去关键字自动删除,为了便于管理,可以将这些数据保存在redis数据库中,并设置过期时间,到达时间就自动删除。 
2)为了缓解数据库压力,微博首先将发送的微博保存到redis数据库,自己可以立即查看到,然后将内存中的数据同步到关系型数据库。

© 著作权归作者所有

architect刘源源

architect刘源源

粉丝 167
博文 555
码字总数 935372
作品 0
浦东
程序员
私信 提问
通过URLOS安装Redis缓存为wordpress网站提速

快!快!快!我们都知道网站的加载速度直接影响用户体验。据研究发现,网站页面在3秒内加载完毕对用户而言是最佳的浏览体验。如果超过这个时间,用户跳出网站的几率会非常大。所以对于站长来...

yeqing112
07/09
460
0
为什么说Redis是单线程的以及Redis为什么这么快

转载于:为什么说Redis是单线程的以及Redis为什么这么快! 一、前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点...

Jitwxs
2018/11/13
0
0
前两天网站访问慢的问题定位过程以及最终解决办法

前提说明:目前开源中国社区在做改版,因此网站同时存在新旧两种不同的版面,例如个人空间就是新的系统。因此整个网站包含两套系统,改版前和改版后,我们把改版前叫老系统,把改版后叫新系统...

红薯
2018/08/16
6.8K
87
Redis 是单线程的,为什么这么快?

近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,...

lemonLove
2018/09/11
52
0
Redis学习笔记之基础知识(三)

Redis是什么、特点、优势 Redis是一个开源的使用C语言编写、开源、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,...

残风vs逝梦
2016/08/07
29
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
26
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
23
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
40
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部