非关系型数据库---Redis

本文介绍了缓存的概念,包括引入缓存的原因和分层结构。详细探讨了Redis作为非关系型数据库的基础,如与关系型数据库的区别、安装过程以及与memcached的对比。同时,概述了Redis的常用命令和数据库管理操作,揭示了Redis在数据存储和高性能应用中的重要作用。
摘要由CSDN通过智能技术生成

目录

一,缓存的概念

1,引入缓存 

2,缓存保存的位置及分层结构

1,DNS缓存

2,应用层缓存

3,数据层缓存

4,硬件缓存

二,Redis基础

1,关系型数据库与非关系型数据库(NOSQL)

1,关系型数据库

2,非关系型数据库

3,关系型数据库与非关系型数据库的区别

4,非关系型数据库产生的背景

2,Redis简介

3,Redis与memcached对比

三,Redis安装

四,Redis命令相关

五,数据库常用的命令


一,缓存的概念

1,引入缓存 

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

Redis是一个开源(BSD许可),内存中的数据结构存储,用作数据库、缓存和消息代理。

缓存的概念

缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级、二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据,而且硬盘也有大小不一的缓存,甚至是物理服务器的raid 卡有也缓存,都是为了起到加速CPU 访问硬盘数据的目的,因为CPU的速度太快了,CPU需要的数据由于硬盘往往不能在短时间内满足CPU的需求,因此CPU缓存、内存、Raid 卡缓存以及硬盘缓存就在一定程度上满足了CPU的数据需求,即CPU 从缓存读取数据可以大幅提高CPU的工作效率

系统缓存中的buffer与cache

buffer:缓冲也叫写缓冲,一般用于写操作,可以将数据先写入内存再写入磁盘,buffer 一般用于写缓冲,用于解决不同介质的速度不一致的缓冲,先将数据临时写入到里自己最近的地方,以提高写入速度,CPU会把数据先写到内存的磁盘缓冲区,然后就认为数据已经写入完成看,然后由内核在后续的时间在写入磁盘,所以服务器突然断电会丢失内存中的部分数据。

cache:缓存也叫读缓存,一般用于读操作,CPU读文件从内存读,如果内存没有就先从硬盘读到内存再读到CPU,将需要频繁读取的数据放在里自己最近的缓存区域,下次读取的时候即可快速读取。

2,缓存保存的位置及分层结构

 

互联网应用领域,提到缓存为王

  • 用户层: 浏览器DNS缓存,应用程序DNS缓存,操作系统DNS缓存客户端

  • 代理层: CDN,反向代理缓存

  • Web层: Web服务器缓存

  • 应用层: 页面静态化

  • 数据层: 分布式缓存,数据库

  • 系统层: 操作系统cache

  • 物理层: 磁盘cache, Raid Cache

1,DNS缓存

浏览器的DNS缓存默认为60秒,即60秒之内在访问同一个域名就不在进行DNS解析

2,应用层缓存

Nginx、PHP等web服务可以设置应用缓存以加速响应用户请求,另外有些解释性语言,比如:

PHP/Python/Java不能直接运行,需要先编译成字节码,但字节码需要解释器解释为机器码之后才能执

行,因此字节码也是一种缓存,有时候还会出现程序代码上线后字节码没有更新的现象。所以一般上线

新版前,需要先将应用缓存清理,再上线新版。

另外可以利用动态页面静态化技术,加速访问,比如:将访问数据库的数据的动态页面,提前用程序生成静态

页面文件html 电商网站的商品介绍,评论信息非实时数据等皆可利用此技术实现。

3,数据层缓存

  • 分布式缓存服务

Redis

Memcached

  • 数据库

MySQL 查询缓存

innodb缓存、MYISAM缓存

4,硬件缓存

  • CPU缓存(L1的数据缓存和L1的指令缓存)、二级缓存、三级缓存

  • 磁盘缓存:Disk Cache

  • 磁盘阵列缓存: Raid Cache,可使用电池防止断电丢失数据

二,Redis基础

1,关系型数据库与非关系型数据库(NOSQL)

1,关系型数据库

关系型数据库是一个结构化的数据库,创建在关系模型 (二维表格模型) 基础上,一般面向于记录。 SQL语句 (标准数据查询语言) 就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库包括Oracle、MySQL、SQL Server、Microsoft Access、DB2等。

2,非关系型数据库

NoSQL (NoSQL=NotOnlySQL),意思是“不仅仅是SQL”,是非关系型数据库的总称。 除了主流的关系型数据库外的数据库,都认为是非关系型。 主流的 NoSQL 数据库有Redis、 MongBD、 Hbase、 Memcached 等。

NoSQL 数据库,全称为 Not Only SQL,意思就是适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储。主要分为临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase),每种 NoSQL 都有其特有的使用场景及优点。

Oracle,mysql 等传统的关系数据库非常成熟并且已大规模商用,为什么还要用 NoSQL 数据库呢?

主要是由于随着互联网发展,数据量越来越大,对性能要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且扩展困难。这样既有单机单库瓶颈,却又扩展困难,自然无法满足日益增长的海量数据存储及其性能要求,所以才会出现了各种不同的 NoSQL 产品,NoSQL 根本性的优势在于在云计算时代,简单、易于大规模分布式扩展,并且读写性能非常高。

3,关系型数据库与非关系型数据库的区别

(1)、数据存储方式不同

关系型和非关系型数据库的主要差异是数据存储的方式。关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。 与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。

① 关系型:依赖于关系模型E-R图,同时以表格式的方式存储数据

② 非关系型:除了以表格形式存储之外,通常会以大块的形式组合在一起进行存储数据

(2)、扩展方式不同

SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。 要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。因为数据存储在关系表中,操作的性能瓶颈可能涉及很多个表,这都需要通过提高计算机性能来克服。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限。 而NoSQL数据库是横向扩展的。因为非关系型数据存储天然就是分布式的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值