数据库应用的发展历程
- 单机数据库时代:一个应用,一个数据库实例
- 缓存时代:对某些表中的数据访问频繁 , 则对这些数据设置缓存(此时数据库中总的数据量不是很大)
- 水平切分时代:将数据库中的表存放到不同数据库实例中(单张表中存放的数据太多),一个应用可以对应多个数据库实例
- 垂直切分时代:将一个表按照字段拆分,同一张表中的数据存放到不同表,甚至于不同数据库中(因为此时一个表中的一个字段的数据量已经很大)
- 读写分离时代:有的数据库负责接收查询命令,有的数据库负责接收数据导入,数据修改等请求,将读写请求分离开,缓解数据库压力
- 分表分库时代(集群):一个表中的数据分成多表或者多库存储,要查询哪个阶段的数据就去查询对应阶段的数据库
- 关系型数据库:oracle、mysql、DB2、sqlserver...
- 非关系型数据库(NoSql): 彻底改变底层存储机制 。不再采用关系数据模型,而是采用聚合数据结构存储数据 。redis、mongoDB、HBase...
- 关系型
tbl_studenttbl_clazzidnameageclazz_ididname1001zhangsan 20111111clazz11002lisi21111222clazz2
- 非关系型
{id:1001, name:zhangsan, age:20, clazz:{id:111,name:clazz1 }}{id:1002, name:lisi, age:21, clazz:{id:111,name:clazz1 }}
- 采用聚合模型存储数据
把一组相关联的数据作为一个整体进行存储和管理 。将BSON数据保存到键值对中、数据和数据之间逗号隔开,{}表示对象,[]表示数组 。
- 关于BSON数据格式
其中BSON指:一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式 。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型 。BSON之名缘于JSON,含义为Binary JSON(二进制JSON)
- 可采用K-V键值对、列簇、图表模型等存储数据 。
- Redis是一种数据库 。能够存储数据、管理数据的一种软件 。
- Redis是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL(not only sql)数据库.也是当前热门的NoSQL数据库之一 。
- Redis中的数据大部分时间都是存储内存中的,适合存储频繁访问、数据量比较小的数据,是一种缓存数据库
- Redis采用的是K-V模型存储数据的 。
1、支持数据持久化 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用 。2、支持多种数据结构 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset , hash等数据结构的存储 。3、支持数据备份 Redis支持数据的备份,即master-slave模式的数据备份 。
linux环境下配置Redis- 官网:https://redis.io/download/ 下载redis的tar包
文章插图
- 上传到linux服务器(笔者使用的是Centos7):这里使用的是git工具上传压缩包,服务器的ip地址被我涂去了
文章插图
- 在linux服务器端的对应目录下解压刚刚上传的压缩包
文章插图
- 确保已经安装了gcc,redis是c语言写的 , 要手动编译
yum -y install gcc
- 进入解压好的目录
cd ./redis-5.0.2
文章插图
- 【Redis 01: 非关系型数据库 + 配置Redis】执行:make命令, 成功编译结果如下,编译过程会输出较多内容,所用时间也许较长,请保持淡定
make
文章插图
- 接着执行:make install命令
make install该操作则将 src下的许多可执行文件复制到/usr/local/bin 目录下(该目录已经被默认配置到系统环境变量中),这样做可以在任意目录执行redis的软件的命令(例如启动 , 停止,客户端连接服务器等)
文章插图
- 后台启动redis,检查配置是否成功,当启动信息输出后,回车,便可以回到命令行,此时redis服务已经启动并转到后台运行
推荐阅读
- Redis 02: redis基础知识 + 5种数据结构 + 基础操作命令
- 1 Redis—问题
- 之四 2流高手速成记:SpringBoot整合redis及mongodb
- Docker | redis集群部署实战
- 认识 Redis client-output-buffer-limit 参数与源码分析
- Docker | redis安装及测试
- 七 SpringBoot - Redis 缓存
- redis bitmap数据结构之java对等操作
- Redis高可用之主从复制原理演进分析
- StampedLock:一个并发编程中非常重要的票据锁