「Redis」01 NoSQL及Redis概述

news2024/11/27 20:39:28

笔记整理自【尚硅谷】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个数据库,类似数组下标从 0 0 0 开始,初始默认使用 0 0 0 号库
使用命令 select <dbid> 来切换数据库。如: select 8
统一密码管理,所有库同样密码。

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

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

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

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

image-20220917215439480

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/49729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大客车玻璃擦净器设计

目 录 摘 要 I ABSTRACT II 1 绪论 1 1.1选题背景及意义 1 1.2发展现状 2 1.3发展趋势 3 1.4研究主要内容 4 2 大客车玻璃擦净器总体方案设计 5 2.1 大客车玻璃擦净器设计思想 5 2.2功能分析 5 2.3工作原理分析 6 2.4功能分解 6 2.4.2传动系统 6 2.4.3真空吸盘 7 2.4.4 清洁刷 …

devtools安装

文章目录一、devtools安装二、参考、推荐、补充一、devtools安装 vue官网上找到vue-devtools的GitHub项目 https://github.com/vuejs/devtools 我选择放在E盘中新建的devtools文件中&#xff0c;解压 进入解压好的devtools-main文件夹中 这里默认已经下载了node 然后在命…

CML、LVPECL和LVDS

1、Current-mode drivers VS Voltage-mode drivers 2、CML&#xff08;Current Mode Logic&#xff09; CML drivers that are built from an open-drain differential pair and a voltage-controlled current source using NMOS transistors. The outputs (Output and Outp…

02_openstack私有云部署

目录 一、环境准备 1、准备服务器 2、主机名与域名配置 3、yum仓库配置 4、配置时间同步 二、安装Openstack与Nova依赖环境 1、Nova依赖软件包安装 2、Openstack依赖软件包安装 三、搭建私有云 1、环境检查 2、配置应答文件answer.ini 一、环境准备 1、准备服务器 …

NHS-PEG-Biotin,Biotin-PEG-NHS,活性酯peg生物素生物素PEG衍生物

Biotin-PEG-NHS&#xff08;NHS-PEG-Biotin&#xff09;是生物素PEG衍生物的一种&#xff0c;该化学试剂其中文名为活性酯-聚乙二醇-生物素&#xff0c;它所属分类为Biotin PEG NHS ester PEG。 peg试剂的分子量均可定制&#xff0c;有&#xff1a;活性酯-聚乙二醇2-生物素&am…

[附源码]计算机毕业设计springboot基于VUE的网上订餐系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

RabbitMQ交换机

假设工作队列背后&#xff0c;每个任务都恰好交付给一个消费者(工作进程)。而将消息传达给多个消费者&#xff0c;这种模式称为“发布/订阅”。 例&#xff1a;构建一个简单的日志系统。它将由两个程序组成&#xff1a;第一个程序将发出日志消息&#xff0c;第二个程序是消费者…

Educational Codeforces Round 108 (Rated for Div. 2) C. Berland Regional

翻译&#xff1a; Polycarp是伯兰ICPC区域活动的组织者。伯兰有&#x1d45b;所大学&#xff0c;编号从1到&#x1d45b;。波利卡普认识这个地区所有有竞争力的程序员。有&#x1d45b;学生:&#x1d456;-th学生在大学注册&#x1d462;&#x1d456;&#xff0c;有编程技能&…

PW2330原厂规格书12V转5V,3.3V稳压电源芯片,1A-3安

一般说明 PW2330 开发了一种高效率的同步降压 DC-DC 变换器 3A 输出电流。 PW2330 在 4.5V 到 30V 的宽输入电压范围内工作集成主开关和同步开关&#xff0c;具有非常低的 RDS&#xff08; ON&#xff09;以最小化传导 损失。 PW2330 采用专有的瞬时 PWM 结构&#xff0c;实现快…

jsp195ssm饭店餐饮管理系统hsg6034AHA5

目 录 第一章 绪论 1 1.1 研究的背景和意义 1 1.1.1网站的研究背景 1 1.1.2 网站研究的意义 1 1.2 研究现状 2 1.3 论文的主要内容 2 1.4 论文主体结构 3 第二章 开发工具和相关技术介绍 4 2.1 平台开发工具 4 2.2 平台开发相关技术 4 2.2.1…

VMware安装虚拟机(CentOS6)分配ip,并通过Xshell连接

VMware安装虚拟机&#xff08;CentOS6&#xff09;分配ip&#xff0c;并通过Xshell连接DHCP动态分配ip配置虚拟机网络设置虚拟机网卡并重启虚拟机网络重启虚拟机网卡手动写死固定ip通过vmware安装centos6虚拟机后&#xff0c;ifconfig命令查看虚拟机没有ip&#xff0c;因此无法…

pytest文档81 - 如何管理Captured logging日志

前言 pytest 自动捕获级别为 WARNING 或以上的日志消息&#xff0c;并以与捕获的 stdout 和 stderr 相同的方式在每个失败测试的各自部分中显示它们。 日志显示 当输入pytest命令&#xff0c;不带任何参数时 pytest如果运行的用例没有报错&#xff0c;那么打印的内容很简洁…

导出pdf高清

导出pdf高清 # 1.qq截图或者snipast截图 你可以qq 或者snipast软件截图。这两个软件截图都差不多。截图的时候你可以把pdf的图放到最大之后截图。到word里边调整尺寸。这样会清晰一些。 # 2.pdf编辑软件裁剪导出 这种方式最清晰 但是复杂点。 1.选择你要用的那个pdf 之后右键…

CIGS太阳能电池中的吸收

摘要 太阳能电池是可再生能源领域的一种基础技术。为了优化效率&#xff0c;大多数常见的设计使用薄膜结构和具有高吸收系数的介质——因为正是这种吸收的光能最终会转化为电流。基于铜铟硒化镓(CIGS)的太阳能电池&#xff0c;与基于其他材料的电池相比&#xff0c;它们可以变…

智能两轮电动车成消费新宠,利尔达电动车软硬件一体解决方案引领“智慧升级”

中国作为曾经的“自行车大国”&#xff0c;如今也是全球最大的两轮电动车生产和消费市场。两轮电动车承载着每日约7亿次的通勤需求&#xff0c;大约占据国人每天出行需求的1/4。 如今&#xff0c;在新消费场景需求的推动和新消费主力群体偏好的影响下&#xff0c;两轮电动车产品…

计算机毕业设计之java+ssm网上出差审批与费用报销系统

项目介绍 本课题是一个基于SSM的管理系统&#xff0c;本网上出差审批与费用报销系统是在Windows7系统的环境下&#xff0c;利用Eclipse和Mysql工具开发的。在网上出差审批与费用报销系统中分为管理员和普通用户2个模块。其中网上出差审批与费用报销系统中的管理人员在登陆之后…

Python遥感开发之arcpy批量投影栅格

Python遥感开发之arcpy批量投影栅格1.投影栅格2.ARCGIS实现3.python_arcpy实现投影栅格前言&#xff1a;主要介绍ARCGIS中的重投影&#xff0c;以及用python代码实现批量投影栅格。1.投影栅格 作用&#xff1a;将栅格数据从一个投影变换到另一个投影。 NEAREST 选项&#xff0…

贝加莱工控机维修主板维修5PC600.SX01-00常见故障排查

KRONES PC机维修贝加莱工控机维修5PC600.SX01-00&#xff0c;5PC600.FLRP-K &#xff1b;贝加莱5PC600.SX05-00&#xff1b;5PC600.SX02-01等型号。 常见故障:工控机无显示、自检不过、卡机、触摸不灵、按键无法操作、与PLC通讯不上驱动器报过流过载、电压高、编码器错误 等。…

GIS Office国产基础软件,助力移动通信基础资源管理建设工程

万物互联&#xff0c;移动5G时代的蓬勃发展&#xff0c;为我们带来高速率、低时延、大连接的网络与通信体验&#xff0c;这离不开移动通信的基础资源管理建设工程。 面对种类繁多、设备资源管理要求极高且庞大的设备量&#xff0c;如何建立一个简单、高效的设备管理流程&#x…

Herodotus——无需bridge借助Storage proof实现的以太坊跨层数据访问

1. 引言 Herodotus——无需bridge借助Storage proof实现的以太坊跨层数据访问&#xff0c;为基于Starknet的State Verifier&#xff0c;开源代码见&#xff1a; https://github.com/HerodotusDev/herodotus-eth-starknet&#xff08;Python&Cairo&#xff09; Storage p…