数据库应用的发展历程

  • 单机数据库时代:一个应用,一个数据库实例

  • 缓存时代:对某些表中的数据访问频繁,则对这些数据设置缓存(此时数据库中总的数据量不是很大)

  • 水平切分时代:将数据库中的表存放到不同数据库实例中(单张表中存放的数据太多),一个应用可以对应多个数据库实例

  • 垂直切分时代:将一个表按照字段拆分,同一张表中的数据存放到不同表,甚至于不同数据库中(因为此时一个表中的一个字段的数据量已经很大)

  • 读写分离时代:有的数据库负责接收查询命令,有的数据库负责接收数据导入,数据修改等请求,将读写请求分离开,缓解数据库压力

  • 分表分库时代(集群):一个表中的数据分成多表或者多库存储,要查询哪个阶段的数据就去查询对应阶段的数据库

  • 关系型数据库:oracle、mysql、DB2、sqlserver...

  • 非关系型数据库(NoSql): 彻底改变底层存储机制。不再采用关系数据模型,而是采用聚合数据结构存储数据。redis、mongoDB、HBase...

关系型与非关系型数据库的表结构对比

  • 关系型

    tbl_student                              tbl_clazz
    id name age clazz_id id name
    1001 zhangsan 20 111 111 clazz1
    1002 lisi 21 111 222 clazz2
  • 非关系型

    {
    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是一种数据库。能够存储数据、管理数据的一种软件。
  • Redis是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL(not only sql)数据库.也是当前热门的NoSQL数据库之一。
  • Redis中的数据大部分时间都是存储内存中的,适合存储频繁访问、数据量比较小的数据,是一种缓存数据库
  • Redis采用的是K-V模型存储数据的。

Redis特点

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

  • 执行:make命令, 成功编译结果如下,编译过程会输出较多内容,所用时间也许较长,请保持淡定

    make

  • 接着执行:make install命令

    make install
    
    该操作则将 src下的许多可执行文件复制到/usr/local/bin 目录下(该目录已经被默认配置到系统环境变量中),这样做可以在任意目录执行redis的软件的命令(例如启动,停止,客户端连接服务器等)

  • 后台启动redis,检查配置是否成功,当启动信息输出后,回车,便可以回到命令行,此时redis服务已经启动并转到后台运行

  • 默认(redis服务启动在默认IP地址以及默认端口)客户端连接已经启动的redis服务:redis-cli

  • 退出客户端连接:exit或者quit

  • 关闭redis服务:redis-cli shutdown

启动redis服务以及连接redis服务的方式总结

1、启动redis服务:
1)前台启动:在任何目录下执行 redis-server
2)后台启动:在任何目录下执行 redis-server &
3)启动redis服务时,指定配置文件:redis-server redis.conf &
2、关闭redis服务:
1)、通过kill命令:
ps -ef|grep redis查看pid
kill -9 pid
2)、通过redis-cli命令关闭:
redis-cli shutdown
3、redis的客户端:用来连接redis服务,向redis服务端发送命令,并且显示redis服务处理结果。
redis-cli:是redis自带客户端,使用命令redis-cli就可以启动redis的客户端程序。 redis-cli:默认连接127.0.0.1(本机)的6379端口上的redis服务。
redis-cli -p 端口号:连接127.0.0.1(本机)的指定端口上的redis服务。
redis-cli -h ip地址 -p 端口:连接指定ip主机上的指定端口的redis服务。
4、退出客户端:在客户端执行命令:exit或者quit

Redis 01: 非关系型数据库 + 配置Redis的更多相关文章

  1. 非关系型数据库之Redis

    一.Redis简介     REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用 ...

  2. 非关系型数据库(NOSQL)-Redis

    整理一波Redis 简介,与memcached比较 官网:http://redis.io Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ...

  3. 【Redis】(1)-- 关系型数据库与非关系型数据库

    关系型数据库与非关系型数据库 2019-07-02  16:34:48  by冲冲 1. 关系型数据库 1.1 概念 关系型数据库,是指采用了关系模型来组织数据的数据库.关系模型指的就是二维表格模型, ...

  4. Redis非关系型数据库

    1.简介 Redis是一个基于内存的Key-Value非关系型数据库,由C语言进行编写. Redis一般作为分布式缓存框架.分布式下的SESSION分离.分布式锁的实现等等. Redis速度快的原因: ...

  5. 数据库基础 非关系型数据库 MongoDB 和 redis

    数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作, ...

  6. JavaWeb笔记(十)非关系型数据库Redis

    Redis Redis是一款高性能的NOSQL系列的非关系型数据库 主流的NOSQL产品 键值(Key-Value)存储数据库 相关产品: Tokyo Cabinet/Tyrant.Redis.Vol ...

  7. 非关系型数据库--redis

    0.1 新单词 expire 美 /ɪk'spaɪɚ/ 到期 range 美 /rendʒ/ 范围 idle美 /'aɪdl/ 闲置的 0.2 面试题:mysql和redis和memcached区别? ...

  8. python 之操作redis数据库(非关系型数据库,k-v)

    数据库: 1. 关系型数据库 表结构 2. 非关系型数据库 nosql (k - v 速度快),常用的时以下三种: memcache 存在内存里 redis 存在内存里 mangodb 数据还是存在磁 ...

  9. Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念

    Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** ...

随机推荐

  1. Springboot Jpa: [mysql] java.sql.SQLException: Duplicate entry 'XXX' for key 'PRIMARY'

    前言 1.问题背景 偶尔会出现登录请求出错的情况,一旦失败就会短时间内再也登录不上,更换浏览器或者刷新可能会暂时解决这个问题. 项目运行日志如下: 2022-07-21 09:43:40.946 DE ...

  2. 不会提交 PR 的小伙伴看过来,超详细的视频教程!

    点击上方 蓝字关注我们 作者 | 严天奇 ✎ 编 者 按 最近有一些新加入社区的朋友反馈不太了解 Apache DolphinScheduler 提交 PR 的步骤和规则.这不,人帅心美的严天奇同学就 ...

  3. Docker 容器虚拟化

    Docker 容器虚拟化 1.虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息.不管是虚拟机 ...

  4. Luogu3092 [USACO13NOV]没有找零No Change (状压DP)

    将金币状压,然后就没多说的了. #include <iostream> #include <cstdio> #include <cstring> #include ...

  5. mac M1通过homebrew安装python3报错Error: Command failed with exit 128: git

    fatal: not in a git directoryError: Command failed with exit 128: git 只需要运行 git config --global --ad ...

  6. 第三十三篇:关于ES6,JSON和Webpack

    好家伙 1.什么是ES6? ECMAScript是javascript标准 ES6就是ECMAScript的第6个版本 (大概是一个语法标准规范) 2.什么是JSON? JSON 是什么,在数据交换中 ...

  7. 使用Logstash把MySQL数据导入到Elasticsearch中

    总结:这种适合把已有的MySQL数据导入到Elasticsearch中 有一个csv文件,把里面的数据通过Navicat Premium 软件导入到数据表中,共有998条数据 文件下载地址:https ...

  8. linux系统下查看某个进程内存使用量

  9. Docker安装集群rabbitMQ

    环境准备 Centos 7.5虚拟机三台: 192.168.102.128 192.168.102.130 192.168.102.131 以上虚拟机统一安装docker环境 三台机器分别配置如下所示 ...

  10. Redis高并发分布式锁详解

    为什么需要分布式锁 1.为了解决Java共享内存模型带来的线程安全问题,我们可以通过加锁来保证资源访问的单一,如JVM内置锁synchronized,类级别的锁ReentrantLock. 2.但是随 ...