基于内存的分布式NoSQL数据库Redis(一)介绍与安装

发布时间:2023年12月17日

基于内存的分布式NoSQL数据库Redis

知识点01:课程目标

  1. 整体目标
    • Redis:NoSQL数据库,实时存储
    • Kafka:消息队列,实时存储
    • Hbase:NoSQL数据库,实时存储
  2. Redis的基本介绍和使用
    • 功能与应用场景
    • Redis的使用:基于命令的操作、基于编程的操作【JavaAPI】
      • 多练习
    • Redis的存储设计:性能、安全
    • 思想:大道至简

知识点02:NoSQL与RDBMS

  • 目标:了解NoSQL的应用场景与RDBMS的区别

  • 路径

    • step1:RDBMS的特点
    • step2:业务架构中的问题
    • step3:NoSQL的特点
  • 实施

    • RDBMS的特点:关系型数据库管理系统

      • 工具:MySQL、Oracle、SQL Server……
      • 应用:业务性数据存储系统:事务和稳定性
      • 特点:体现数据之间的关系,支持事务,保证业务完整性和稳定性,小数据量的性能也比较好
      • 开发:SQL
    • 业务架构中的问题

      • 问题:以网站后台存储为例,当并发量很大,所有高并发全部直接请求MySQL,容易导致MySQL奔溃

        image-20210519220356711

      • 需求:能实现高并发的数据库,接受高并发请求

    • NoSQL的特点:Not Only SQL:非关系型数据库

      • 工具:Redis、HBASE、MongoDB……

      • 应用:一般用于高并发高性能场景下的数据缓存或者数据库存储

      • 特点:读写速度特别快,并发量非常高,相对而言不如RDBMS稳定,对事务性的支持不太友好

      • 开发:每种NoSQL都有自己的命令语法

      • 解决上面RDBMS的问题:使用高并发缓存实现读写分离

        • 读请求:读请求不读取MySQL,读取Redis
        • 写请求:写请求直接写入MySQL

        image-20210519220547502

  • 小结

    • RDBMS和NoSQL的应用特点分别是什么?
    • RDBMS
      • 场景:业务数据库
      • 特点:稳定性高、事务支持比较完善、小数据量性能好
      • NoSQL
        • 场景:高并发高性能的数据存储
        • 特点:稳定性和安全性相对不如RDBMS,支持高并发和高性能

知识点03:Redis的功能与应用场景

  • 目标:掌握Redis的功能与应用场景

  • 路径

    • step1:介绍
    • step2:功能特点
    • step3:应用场景
  • 实施

    • 介绍

      • 相关网站

      • 官方介绍

        Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
        
      • 定义:基于内存的分布式的NoSQL数据库

        • 所有数据存储在内存中,并且有持久化机制
        • 每次redis重启,会从文件中重新加载数据到内存,所有读写都只基于内存
    • 功能特点

      • 功能:提供高性能高并发的数据存储
      • 特点
        • 基于C语言开发的系统,与硬件的交互性能更好
        • 基于内存实现数据读写,读写性能更快
        • 分布式的:扩展性和稳定性更好
        • KV结构数据库:支持事务、拥有各种丰富的数据结构
          • KV结构
            • 缺点:两列,不能满足复杂的业务存储
            • 优点:Value可以支持多种类型,满足不同需求的存储
              • String、List、Set、Hash、Zset:掌握这五种类型的读写命令
    • 应用场景

      • 缓存:用于实现大数据量高并发的大数据量缓存【临时性存储】

        • 网站架构中:接受高并发的缓存读写请求
      • 数据库:用于实现高性能的小数据量读写【永久性存储】

        • 大数据平台中:高性能:一般用于作为实时计算结果的存储

        image-20210919095615838

      • 消息中间件:消息队列【MQ】:用于实现消息传递,一般不用Redis

  • 小结

    • Redis的功能与应用场景是什么?
      • 功能:实现基于高性能和高并发的数据存储【基于内存】
      • 应用
        • 缓存:高并发来接受高并发的读写,大数据量,临时性存储,允许数据丢失
        • 数据库:高性能来接受数据的读写,小数据量,永久性存储,不允许数据丢失

知识点04:Redis的Linux版单机部署

  • 目标:实现Redis的Linux版单机部署

  • 实施

    • Windows版本安装及远程工具使用请参考随堂资料《Redis的Windows版安装及远程工具的使用.pdf》

    • 上传redis-3.2.8源码

      cd /export/software/
      rz
      

      image-20210521102236816

    • 解压

      tar -zxvf redis-3.2.8.tar.gz -C /export/server/
      

      image-20210521102259929

    • 安装依赖

      yum -y install gcc-c++ tcl
      

      image-20210521102417864

      image-20210521102518266

      • 如果已经安装过,执行命令结果如下:

        image-20210904103725987

    • 编译安装

      #进入源码目录
      cd /export/server/redis-3.2.8/
      #编译
      make
      #安装,并指定安装目录
      make PREFIX=/export/server/redis-3.2.8-bin install
      

      image-20210521102629002

    • 修改配置

      • 复制配置文件

        cp /export/server/redis-3.2.8/redis.conf /export/server/redis-3.2.8-bin/
        
      • 创建目录

        #redis日志目录
        mkdir -p /export/server/redis-3.2.8-bin/logs
        #redis数据目录
        mkdir -p /export/server/redis-3.2.8-bin/datas
        
      • 修改配置

        cd  /export/server/redis-3.2.8-bin/
        vim redis.conf
        
        ## 61行,配置redis服务器接受链接的网卡
        bind node1
        ## 128行,redis是否后台运行,设置为yes
        daemonize yes
        ## 163行,设置redis服务日志存储路径
        logfile "/export/server/redis-3.2.8-bin/logs/redis.log"
        ## 247行,设置redis持久化数据存储目录
        dir /export/server/redis-3.2.8-bin/datas/
        
      • 创建软连接

        cd /export/server
        ln -s redis-3.2.8-bin redis
        
      • 配置环境变量

        vim /etc/profile
        
        # REDIS HOME
        export REDIS_HOME=/export/server/redis
        export PATH=:$PATH:$REDIS_HOME/bin
        
        source /etc/profile
        
    • 启动

      • 端口:6379

      • 启动服务端

        • 启动命令

          /export/server/redis/bin/redis-server /export/server/redis/redis.conf
          
        • 启动脚本

          vim /export/server/redis/bin/redis-start.sh
          
          #!/bin/bash 
          
          REDIS_HOME=/export/server/redis
          ${REDIS_HOME}/bin/redis-server ${REDIS_HOME}/redis.conf
          
          chmod u+x /export/server/redis/bin/redis-start.sh 
          
      • 启动客户端

        /export/server/redis/bin/redis-cli -h node1 -p 6379
        
      • 关闭客户端

        • exit:退出客户端
      • 关闭服务端

        • 方式一:客户端中

          shutdown
          
        • 方式二:Linux命令行

          kill -9 redis的pid
          
        • 方式三:通过客户端命令进行关闭

          bin/redis-cli -h node1 -p 6379  shutdown
          
    • 测试

      node1:6379> keys *
      (empty list or set)
      node1:6379> set s1 hadoop
      OK
      node1:6379> keys *
      1) "s1"
      node1:6379> get s1
      "hadoop"
      node1:6379> 
      
    • 远程工具的使用:参考Windows安装文档

  • 小结

    • 实现Redis的Linux版单机部署

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ?留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置?
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12394313.html

文章来源:https://blog.csdn.net/xianyu120/article/details/133787108
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。