1.1(redis)概念和安装

文章目录

  • NoSql数据库
    • 内存和硬盘
    • 为什么出现Nosql
      • web1.0
      • web2.0
    • 数据库的存储方式
      • 行式数据库
      • 列式数据库
    • Nosql数据库有哪些
      • Memcache
      • Redis
      • MongoDB
  • Redis
    • 概念
    • 安装
      • 官网下载
      • 安装步骤
        • 准备gcc编译器
        • Linux解压redis
      • 查看安装目录
    • 启动Linux
      • 前台启动
      • 后台启动
        • 启动redis后台服务端
        • 启动redis前台客户端
    • Redis的相关介绍
      • memcacged和redis
        • Redis是单线程+多路IO复用技术

NoSql数据库

****NoSQL****即Not-Only SQL是关系型数据库的良好补充

****关系型数据库****是基于关系模型提出来的数据库.那么什么是关系模型呢?以行和列的方式二维表的方式存储数据的模型就是关系型数据库.例如:mysql和oracle

随着互联网web网站的兴起,关系型数据库暴露的缺点越来越多,关系型数据库可以应付上万次的sql查询,但是对于上万次的sql写数据的请求,硬盘io就受不鸟了

  1. 不遵循SQL标准。
  2. 不支持ACID。
  3. 远超于SQL的性能

内存和硬盘

****硬盘****:用来存储数据的计算机配件。是非易失性储存器,说得直白点,就是你关了机,里面的数据也不会丢。

****内存条****:由于硬盘速度比较慢,CPU如果运行程序的时候,所有数据都直接从硬盘中读写,会非常影响效率。所以CPU会将运行软件时要用的数据一次性从硬盘调用到运行速度很快的内存,然后再CPU再与内存进行数据交换。

内存是易失性存储器,只要你断了电,内存中的数据就没有了。

为什么出现Nosql

web1.0

单一应用架构

Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。

1.1(redis)概念和安装_第1张图片

web2.0

随着互联网的用户越来越多。

单一的架构已经不能满足日常的时候。我们的架构也从单一架构变成的分布式。

为了缓解关系型数据库的压力,我们出现Nosql数据库

经常读取的数据放入缓存数据库中。

1.1(redis)概念和安装_第2张图片

数据库的存储方式

数据库的存储方式会决定该数据库的对于某些操作的性能

行式数据库

1.1(redis)概念和安装_第3张图片

列式数据库

1.1(redis)概念和安装_第4张图片

Nosql数据库有哪些

Memcache

  1. 很早出现的NoSql数据库
  2. 数据都在内存中,一般不持久化
  3. 支持简单的key-value模式,支持类型单一
  4. 一般是作为缓存数据库辅助持久化的数据库

Redis

  1. 几乎覆盖了Memcached的绝大部分功能
  2. 数据都在内存中,支持持久化,主要用作备份恢复
  3. 除了支持简单的key-value模式,还支持多种数据结构的存储,比如 list、set、hash、zset等。
  4. 一般是作为缓存数据库辅助持久化的数据库

MongoDB

  1. 高性能、开源、模式自由(schema free)的文档型数据库
  2. 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
  3. 虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能
  4. 支持二进制数据及大型对象
  5. 可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBMS,存储特定的数据。

Redis

概念

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

安装

官网下载

再redis官网中只能去下载Linux的版本,对于window官网没有提供。

但是window自己开发过,可以去找一下。

官网

redis.io

1.1(redis)概念和安装_第5张图片

安装步骤

准备gcc编译器

再安装Redis前需要进行安装C语言的编译环境

redis就是c语言编写的

连接网路的情况下将这些命令一一执行即可

yum install centos-release-scl scl-utils-build

yum install -y devtoolset-8-toolchain

scl enable devtoolset-8 bash

测试 gcc版本

gcc --version

1.1(redis)概念和安装_第6张图片

Linux解压redis

redis-6.2.1.tar.gz放/opt目录

开始解压

tar -zxvf redis的压缩文件

解压后进入压缩后目录

cd 压缩后目录

通过刚刚安装好的语言环境进行编译

make

如果失败,说明gcc没有安装好

清除编译内容

make distclean

执行编译内容

make install

可以将编译和执行编译结合

make && make install

1.1(redis)概念和安装_第7张图片

1.1(redis)概念和安装_第8张图片

查看安装目录

进入

/usr/local/bin

redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何

redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲

redis-check-dump:修复有问题的dump.rdb文件

redis-sentinel:Redis集群使用

redis-server:Redis服务器启动命令

redis-cli:客户端,操作入口

启动Linux

启动分为前台启动和后台启动

前台启动

开启之后不能关闭,也无法操作。

关闭前台,表示关闭redis,不值得推荐

进入/usr/local/bin

redis-server

1.1(redis)概念和安装_第9张图片

退出前台启动

ctrl+c

后台启动

我们一般进行后台启动。后台启动之后我们可以代开

redis-cli进redis的命令操作

后台启动是根据redis的配置文件启动。

我们再启动的时候通过指定redis配置文件启动

拷贝redis的redis.conf文件。避免配置错误

当然通过拷贝的文件也可以启动

开启后台启动

daemonize no 改成yes

1.1(redis)概念和安装_第10张图片

1.1(redis)概念和安装_第11张图片

启动redis后台服务端

1.1(redis)概念和安装_第12张图片

启动redis前台客户端

可以进行操作redis命令

启动服务端

redis-server 指定配置文件

测试服务端时候启动

ps -ef |grep redis

启动客户端

redis-clid

再客户端中关闭服务端

shutdown

1.1(redis)概念和安装_第13张图片

Redis的相关介绍

端口:默认6379

默认16个数据库,类似数组下标从0开始

初始默认使用0号库 使用命令 select 来切换数据库。如: select 8

1.1(redis)概念和安装_第14张图片

统一密码管理,所有库同样密码。

dbsize查看当前数据库的key的数量

1.1(redis)概念和安装_第15张图片

flushdb清空当前库

flushall通杀全部库

memcacged和redis

串行 vs 多线程+锁(memcached) vs 单线程+多路IO复用(Redis)

与Memcache三点不同: 支持多数据类型,支持持久化,单线程+多路IO复用

Redis是单线程+多路IO复用技术

多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)

1.1(redis)概念和安装_第16张图片

  1. 多个用户过来找黄牛买票
  2. 一个黄牛:表示单线程
  3. 多个用户表示多个IO操作。类似了多线程
    ) vs 单线程+多路IO复用(Redis)**

你可能感兴趣的:(数据操作,学习路线,redis,数据库,nosql)