Redis之redis简介

Redis简介

Redis是一个远程内存数据库、非关系型数据库(non-relational database):
	可以存储键(key)与5种不同类型的值(value)之间的映射(mapping)
	可以将存储在内存的键值对数据持久化到硬盘
	可以使用复制特性来扩展读性能
	还可以使用客户端分片来扩展写性能。

关键点:非关系型数据库、五种不同类型的值、持久化到硬盘的方式、复制特性(主从复制)、客户端分片

什么是关系型数据库?

定义:

  • 采用关系模型来组织数据的数据库
  • 简单的说,关系模型指的是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织

优点:

  • 支持复杂查询:SQL语句查询
  • 支持事务操作

什么是非关系型数据库?

定义:

  • 指代那些非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。
  • 非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合

优点:

  • 性能:基于键值对且不需要经过SQL层解析
  • 可扩展性:基础键值对,数据之间没有耦合性

分类:

  • 面向高性能并发读写的key-value数据库
    特点:具有极高的并发读写性能
    代表:Redis、Tokyo Cabinet、Flare
  • 面向海量数据访问的文档数据库
    特点:在海量数据中快速查询数据
    代表:MongoDB、CouchDB
  • 面向可扩展性的分布式数据库
    特点:适应数据量的增加以及数据结构的变化

五种基本类型

数据类型值类型
String字符串、整数或者浮点数
List列表
Set无序集合
hash散列
zset有序集合

附:Redis命令参考http://redisdoc.com/index.html

持久化方式(两种)

RDB持久化:

  • 原理:RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储
    RDB持久化

AOF持久化:

  • 原理:将Reids的操作日志以追加的方式写入文件
    AOF持久化
  • 同步选项
选项同步频率备注
always每个写命令都同步会影响服务器性能
everysec每秒同步一次比较好,可以保证系统奔溃时只会丢失一秒左右的数据
no让操作系统来决定何时同步意义不大,会增加系统崩溃时的数据量

如何选择持久化方式

  • AOF:牺牲一些性能,换取更高的缓存一致性
  • RDB:写操作频繁的时候,不启用备份来换取更高的性能,待手动运行save的时候,再做备份

可参考:http://www.cnblogs.com/Fairy-02-11/p/6182478.html

主从复制

原因:

  • 单个Redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大

实现机理:

  • 当启动一个Slave进程后,它会向Master发送一个SYNC Command,请求同步连接。 无论是第一次连接还是重新连接,Master都会启动一个后台进程,将数据快照保存到数据文件中,同时Master会记录所有修改数据的命令并缓存在数据文件中。后台进程完成缓存操作后,Master就发送数据文件给Slave,Slave端将数据文件保存到硬盘上,然后将其在加载到内存中,接着Master就会所有修改数据的操作,将其发送给Slave端。若Slave出现故障导致宕机,恢复正常后会自动重新连接,Master收到Slave的连接后,将其完整的数据文件发送给Slave,如果Mater同时收到多个Slave发来的同步请求,Master只会在后台启动一个进程保存数据文件,然后将其发送给所有的Slave,确保Slave正常

为什么选用redis?

与其它数据库和软件的对比

名称类型数据库存储选项查询类型附加功能
Redis使用内存存储(in-memory)的非关系数据库字符串、列表、集合、散列表、有序集合每种数据类型都有自己的专属命令,另外还有批量操作(bulk operation)和不完全(partial)的事务支持发布与订阅,主从复制(master/slave replication),持久化,脚本(存储过程,stored procedure)
memcached使用内存存储的键值缓存键值之间的映射创建命令、读取命令、更新命令、删除命令以及其他几个命令为提升性能而设的多线程服务器
MySQL关系数据库每个数据库可以包含多个表,每个表可以包含多个行;可以处理多个表的视图(view);支持空间(spatial)和第三方扩展SELECT、 INSERT、 UPDATE、 DELETE、函数、存储过程支持ACID性质(需要使用InnoDB),主从复制和主主复制 (master/master replication)
PostgreSQL关系数据库每个数据库可以包含多个表,每个表可以包含多个行;可以处理多个表的视图;支持空间和第三方扩展;支持可定制类型SELECT、 INSERT、 UPDATE、 DELETE、内置函数、自定义的存储过程支持ACID性质,主从复制,由第三方支持的多主复制(multi-master replication)
MongoDB使用硬盘存储(on-disk)的非关系文档存储每个数据库可以包含多个表,每个表可以包含多个无schema(schema-less)的BSON文档创建命令、读取命令、更新命令、删除命令、条件查询命令等支持map-reduce操作,主从复制,分片,空间索引(spatial index)

优点

  • 读写性能优异
    1、因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
    2、Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 支持丰富数据类型
    1、string(字符串),list(列表),set(集合),zset(有序集合),hash(散列)
  • 支持事务
    1、操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  • 丰富的特性
    1、可用于缓存,消息,按key设置过期时间,过期后将会自动删除

缺点

  • 本质上Redis是一个基于内存的cache,在数据落地、持久化方面不如mysql,如果redis达到了最大的内存限制后,会导致所有的写命令失败

原文地址:https://segmentfault.com/a/1190000015421119

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在风能领域,准确预测风速对于风电场的运行与管理至关重要。Matlab作为一个强大的数学计算和数据分析平台,被广泛应用于风速预测模型的构建。本文将深入探讨基于四种风速——随机风、基本风、阵风和渐变风的组合风速预测技术。 我们来理解这四种风速类型: 1. **随机风**:随机风是指风速呈现出随机性的变化,通常由大气湍流引起。在建模中,通常通过统计方法如高斯分布或Weibull分布来模拟这种不确定性。 2. **基本风**:基本风速是指在无特定扰动条件下的平均风速,它是长期观测结果的平均值,通常用于结构设计和风能评估。 3. **阵风**:阵风是短时间内风速显著增强的现象,对建筑物和风力发电机造成的主要威胁之一。阵风的预测涉及到风的脉动特性分析。 4. **渐变风**:渐变风是指风速随时间和空间逐渐变化的过程,常见于风向转变或地形影响下的风场变化。 在Matlab中,利用这四种风速类型进行组合预测,可以提高预测的准确性。预测模型可能包括以下几个步骤: 1. **数据收集与预处理**:收集历史风速数据,包括随机风、基本风、阵风和渐变风的数据,进行异常值检测、缺失值填充以及数据标准化。 2. **特征工程**:提取风速变化的相关特征,如平均值、标准差、极值、频率分布等,这些特征可能对预测有重要影响。 3. **模型选择**:可以选择多种预测模型,如时间序列分析(ARIMA、状态空间模型等)、机器学习算法(线性回归、决策树、支持向量机、神经网络等)或深度学习模型(LSTM、GRU等)。 4. **模型训练**:利用历史数据训练选定的模型,调整模型参数以优化性能,例如通过交叉验证来避免过拟合。 5. **模型验证与评估**:使用独立的测试集验证模型预测效果,常见的评估指标有均方误差(MSE)、平均绝对误差(MAE)和决定系数(R²)。 6. **组合预测**:结合四种风速的不同模型预测结果,可以采用加权平均、集成学习(如bagging、boosting)等方式,以提升整体预测精度。 7. **实时更新与动态调整**:实际应用中,模型需要不断接收新的风速数据并进行在线更新,以适应风场环境的变化。 通过以上步骤,可以构建一个综合考虑各种风速特性的预测系统,这对于风电场的功率输出预测、风电设备的维护计划以及电网调度都具有重要价值。然而,需要注意的是,每个风场的地理环境、气候条件和设备状况都有所不同,因此模型的建立应根据实际情况进行定制和优
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值