Redis 01: 非关系型数据库 + 配置Redis

数据库应用的发展历程

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

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

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

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

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

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

  • 关系型数据库: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

  • 官网://redis.io/download/ 下载redis的tar包

    image

  • 上传到linux服务器(笔者使用的是Centos7):这里使用的是git工具上传压缩包,服务器的ip地址被我涂去了

    image

  • 在linux服务器端的对应目录下解压刚刚上传的压缩包

    image

  • 确保已经安装了gcc,redis是c语言写的,要手动编译

    yum -y install gcc
    
  • 进入解压好的目录

    cd ./redis-5.0.2
    

    image

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

    make
    

    image

  • 接着执行:make install命令

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

    image

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

    image

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

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

  • 关闭redis服务:redis-cli shutdown

    image

启动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
Tags: