「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

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...