「Redis」01 NoSQL及Redis概述
创始人
2024-03-04 19:29:03
0

笔记整理自【尚硅谷】Redis 6 入门到精通 超详细 教程

Redis——NoSQL及Redis概述

技术的分类

  • 解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN
  • 解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis
  • 解决性能的问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch

NoSQL数据库是为了解决性能问题而产生的一种技术,而 Redis 就是典型的 NoSQL 数据库。

1. NoSQL数据库

Ⅰ. NoSQL数据库概述

NoSQL (NoSQL = Not Only SQL),意即 “不仅仅是SQL”,泛指 非关系型的数据库

NoSQL 不依赖业务逻辑方式存储,而以简单的 key-value 模式存储。因此大大的增加了数据库的扩展能力。

  • 不遵循SQL标准
  • 不支持ACID
  • 远超于SQL的性能

NoSQL适用场景

  • 对数据高并发的读写
  • 海量数据的读写
  • 对数据高可扩展性的

NoSQL不适用场景

  • 需要事务支持
  • 基于sql的结构化查询存储,处理复杂的关系,需要即席查询
  • (用不着sql的和用了sql也不行的情况,请考虑用NoSql)

NoSQL解决问题

  • 解决 CPU 及内存压力

    image-20220919162955142

  • 解决 IO 压力

    image-20220919163017020

Ⅱ. 常见的NoSQL数据库对比

Memcache
img ✔️ 很早出现的NoSql数据库
✔️ 数据都在内存中,一般不持久化
✔️ 支持简单的 key-value 模式,支持类型单一
✔️ 一般是作为缓存数据库辅助持久化的数据库
Redis
img ✔️ 几乎覆盖了 Memcached 的绝大部分功能
✔️ 数据都在内存中,支持持久化,主要用作备份恢复
✔️ 除了支持简单的 key-value 模式,还支持多种数据结构的存储,比如 list、set、hash、zset 等。
✔️ 一般是作为缓存数据库辅助持久化的数据库
MongoDB
img ✔️ 高性能、开源、模式自由 (schema free) 的文档型数据库
✔️ 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
✔️ 虽然是 key-value 模式,但是对 value (尤其是 json) 提供了丰富的查询功能
✔️ 支持二进制数据及大型对象
✔️ 可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBMS,存储特定的数据。

2. Redis概述及安装

Ⅰ. 概述

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

配合关系型数据库做高速缓存

  • 高频次,热门访问的数据,降低数据库 I/O

  • 分布式架构,做 session 共享

image-20220917195536915

多样的数据结构存储持久化数据

image-20220917195938270

Ⅱ. 安装

Redis官方网站Redis中文官方网站
http://redis.iohttp://redis.cn/
  • 6.2.1 for Linuxredis-6.2.1.tar.gz

    ➢ 不用考虑在windows环境下对Redis的支持

  • 安装 C 语言的编译环境

    yum install centos-release-scl scl-utils-build
    yum install -y devtoolset-8-toolchain
    scl enable devtoolset-8 bash
    
  • 测试 gcc 版本

    gcc --version
    

    image-20220917210549021

  • 下载 redis-6.2.1.tar.gz 放置 /opt 目录

    image-20220917210348610

  • 解压至当前目录

    tar -zxvf redis-6.2.1.tar.gz
    
  • 解压完成后进入目录

    cd redis-6.2.1
    
  • 在redis-6.2.1目录下再次执行 make 命令(只是编译好)

    make
    

    image-20220917211049803

    image-20220917211111693

  • 跳过 make test 继续执行:make install

    make install
    

    image-20220917211144963

  • 默认安装在 /usr/local/bin

    image-20220917211303920

    redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
    redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
    redis-check-dump:修复有问题的dump.rdb文件
    redis-sentinel:Redis集群使用
    redis-server:Redis服务器启动命令
    redis-cli:客户端,操作入口
    
  • 前台启动(不推荐)

    前台启动,命令行窗口不能关闭,否则服务器停止。

    /usr/local/bin 目录下启动 redis

    redis-server
    
  • 后台启动(推荐)

    ➢ 备份 redis.conf

    安装 redis 的目录 /opt/redis-6.2.6 中将 redis.conf 复制到任意一个文件夹下

    cp redis.conf /etc/redis.conf
    // 将redis.conf复制到/etc/下
    

    ➢ 修改 /etc/redis.conf 配置文件

    修改 redis.conf (我的在128行 ) 文件将里面的 daemonize no 改成 yes,让服务在后台启动。

    vim redis.conf
    

    image-20220917212336191

    /usr/local/bin 目录下启动 redis

    redis-server /etc/redis.conf
    
  • 查询 redis 是否启动

    ps -ef | grep redis
    

    image-20220917212518102

  • 用客户端访问 redis

    redis-cli
    

    image-20220917212710094

  • 测试验证

    ping
    

    image-20220917212723825

  • 关闭 redis

    kill 进程

    ➢ 命令 shutdown

    image-20220917212847070

Ⅲ. Redis相关知识介绍

端口 6379 从何而来
Alessia Merz => 九键
image-20220917213342199默认16个数据库,类似数组下标从 000 开始,初始默认使用 000 号库
使用命令 select 来切换数据库。如: select 8
统一密码管理,所有库同样密码。

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

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

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

  • 与Memcache三点不同:支持多数据类型,支持持久化,单线程 + 多路IO复用(效率更高)

image-20220917215439480

相关内容

热门资讯

文艺节目主持词 文艺节目主持词四篇  主持词要把握好吸引观众、导入主题、创设情境等环节以吸引观众。在一步步向前发展的...
幼儿园六一儿童节主持词 幼儿园六一儿童节主持词尊敬的各位来宾、各位朋友大家下午好!沐浴着和风丽日,我们即将迎来花团锦簇、芳香...
教师节表彰大会校长的致辞 教师节表彰大会校长的致辞范文(精选6篇)  在平平淡淡的日常中,要用到致辞的地方还是很多的,致辞讲求...
婚礼开场白主持词 婚礼开场白主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。随着社会一步步向前发展...
会主持人开场白台词 会主持人开场白台词2013年会主持人开场白台词    甲:新年的钟声即将敲响,时光的车轮又留下了一道...
领导主持词 领导主持词三篇  主持词已成为各种演出活动和集会中不可或缺的一部分。在现今人们越来越重视活动氛围的社...
升学宴致辞 升学宴致辞(精选15篇)  在现实生活或工作学习中,大家一定都接触过致辞吧,致辞具有“礼仪性”或“仪...
农村白事的主持词开场白 农村白事的主持词开场白(精选10篇)  在发展不断提速的社会中,越来越多的人会用到开场白,好的开场白...
生日主持词的开场白   生日主持词开场白(一)  各位同事和寿星们,各人晚顶好!在这天高气爽、丹桂飘喷鼻的夸姣季候,咱们...
旅游文化节主持词 旅游文化节主持词  主持词的写作需要将主题贯穿于所有节目之中。现今社会在不断向前发展,主持人参与的事...
主持人串词 主持人串词  一、串词的语言特征  (串词的语言,可以说是用尽了所有的修辞手法,我们不可能去全讲,因...
浪漫婚礼司仪主持词 浪漫婚礼司仪主持词  主持词是主持人在台上表演的灵魂之所在。在现在的社会生活中,很多场合都需要主持人...
公司迎春晚会的主持词 公司迎春晚会的主持词  主持词的写作需要将主题贯穿于所有节目之中。在当今不断发展的世界,主持人在活动...
少儿节目主持词 精选少儿节目主持词4篇  主持词已成为各种演出活动和集会中不可或缺的一部分。随着社会一步步向前发展,...
王家卫电影经典台词 王家卫电影经典台词(精选50句)  我们爱看王家卫的电影,不止爱他所创造的那个光影世界,更爱他电影中...
演唱会主持台词 演唱会主持台词  (甲)尊敬的各位领导,  (乙)各位来宾,  (甲)敬爱的老师,  (乙)亲爱的同...
《你的名字》经典台词 《你的名字》经典台词  你的名字,是谁的心事,还记得你的名字里面的经典台词吗?以下是小编为你精心整理...
教研活动主持词 教研活动主持词  主持人在台上表演的灵魂就表现在主持词中。在当下的中国社会,主持成为很多活动不可或缺...
艺术节主持词开场白 艺术节主持词开场白  什么是艺术节  艺术节是文艺工作者及艺术家、艺术爱好者之间学术交流与学习的重要...
老板在公司年会致辞 老板在公司年会致辞15篇  在平平淡淡的学习、工作、生活中,大家最不陌生的就是致辞了吧,致辞具有针对...