NoSQL数据库介绍+Redis部署

目录

一、NoSQL概述

1、数据的高并发读写

2、海量数据的高效率存储和访问

3、数据库的高扩展和高可用

二、NoSQL的类别

1、键值存储数据库

2、列存储数据库

3、文档型数据库

4、图形化数据库

三、分布式数据库中的CAP原理

1、传统的ACID

1)、A--原子性

2)、C--一致性

3)、I--隔离性

4)、D--持久性

2、CAP

四、Redis概述

五、Redis特点

六、Redis部署


 

一、NoSQL概述

NoSQL指非关系型的数据库,它可以作为关系型数据库的良好补充,在Web2.0网站的兴起,非关系型的数据库现在成为了一个极其热门的新领域,非关系数据库产品的发展非常迅速。传统的关系型数据库只能存储结构化数据,对于非结构化的数据支持不够完善。NoSQL数 据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。例如

1、数据的高并发读写

网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所有基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。例如网站的实时统计在线用户状态,记录热门帖子的点击次数。

2、海量数据的高效率存储和访问

像阿里、腾讯等大型网站的用户登录系统,在一张海量的关系数据库,使用SQL语句查找效率是极其低下的。

3、数据库的高扩展和高可用

基于Web网站的架构中,数据库是最难进行横向扩展的,当一个网页的系统的用户量不断增大,对数据库进行升级和扩展时,事很困难的,往往只有停机进行升级维护和数据迁移等。因此需要数据库具有高扩展和高可用性。

NoSQL数据库主要应用场景:

1). 数据模型比较简单

2). 需要灵活性更强的IT系统

3). 对数据库性能要求较高

4). 不需要高度的数据一致性

5). 对于给定key,比较容易映射复杂的环境

6). 取最新的N个数据(如排行榜)

7). 数据缓存

二、NoSQL的类别

1、键值存储数据库

这一种数据库类型主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。key/value模型对于IT系统来说优势在于简单,容易部署。

应用:内容缓存,主要用于处理大量数据高访问负载。

优点:快速查询。

缺点:存储的数据缺少结构化。

2、列存储数据库

这部分数据库通常事用来对分布式存储的海量数据,键依然存在,但是它们的特点是指向了多个列。

应用:分布式文件。

优点:查询速度快,可扩展性强,更容易进行分布式扩展。

缺点:功能相对局限。

3、文档型数据库

该类型的数据库模型是版本化的文档,半结构化的文档以特定的格式存储,入JSON。文档类型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,而且文档型数据库比键值数据库的查询效率更高。

应用:Web应用。

优势:数据结构要求不严格。

缺点:查询性能不高,且缺乏统一的查询语句。

4、图形化数据库

图形结构的数据同其他行列以及刚性结构的SQL数据不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上,NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要定制数据模型。许多NoSQL数据库都有REST格式的数据接口或者查询API。

应用:社交网络。

优点:利用图结构相关算法。

缺点:需要整个图做计算才能得出结果,不容易做分布式的集群方案。

三、分布式数据库中的CAP原理

1、传统的ACID

关系型数据库遵循ACID规则,事务(transaction)

1)、A--原子性

指事物里所有操作要么都成功,要么都失败。事物的成功条件是事物中所有操作都成功,如果只要有其中一个操作失败,整个事物都失败,需要回滚。

2)、C--一致性

指数据库要一直处于一直的状态,事物的运行不会该百年数据库原本的一致性约束。

3)、I--隔离性

指并发的事物之间互不影响,如果一个事物要访问数据正在被另一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

4)、D--持久性

指事物一旦提交,它所作的修改将会永久的保存在数据库中,即使宕机也不会丢失。

2、CAP

CAP理论是指在分布式存储系统中,最多能实现上面得两点,由于当前网络硬件存在延迟丢包等问题,所以分区容忍性是我们必须要实现得,因此我们只能在一致性和可用性进行权衡,没有NoSQL系统能同时保证这三点。

C--强一致性、A--可用性、P--分区容错性

CA--单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。如传统的Oracle数据库。

AP-- 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些如,大多数网站架构的选择。

CP--满足一致性,分区容忍必的系统,通常性能不是特别高,如Redis、Mongodb

注:在做分布式架构的时候必须做出取舍。 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。因此一致性和可用性之间取一个平衡。对于大多数web应用,并不需要一致性。

四、Redis概述

Redis(REmote D Ictionary Server 远程字典服务器),是完全开源免费的,用C语言编写的,遵守BSD 协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库, 是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器。

Redis是一个开源的高性能键值对(Key-Value)数据库。它通过提供多种键值数据类型来适应不同场景 下的存储需求,目前为止Redis支持的键值数据类型如下:

字符串类型、散列类型、列表类型、集合类型、有序集合类型。

五、Redis特点

  • 性能极高:Redis 读的速度是 110000 次 /s,写的速度是 81000 次 /s 。
  • 丰富的数据类型:Redis 支持二进制案例的 String,List,Hash,Set及 ZSet 数据类型操作。
  • 原子性:Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作 是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。
  • 数据持久化:可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • Redis 提供的API支持:C、C++、C#、Clojure、Java、JavaScript、Lua、PHP、Python、Ruby、 Go、Scala、Perl等多种语言。
  • 其他特性:Redis 还支持 publish/subscribe 通知,key 过期等特性。

六、Redis部署

RPM包安装

1)获取安装包

[root@master ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2)安装

[root@master ~]# yum install redis

3)启动redis服务器

[root@master ~]# systemctl start redis

4)查看redis服务器状态

[root@master ~]# systemctl status redis

99ca85eb77184d67a1fbc80600a2e9f0.png

 5)查看端口

注:redis的默认端口为6379

#方法一
[root@master ~]# netstat -lnupt | grep :6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1991/redis-server 1 
#方法二
[root@master ~]# ss -lnupt | grep :6379
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=1991,fd=4))
#方法三
[root@master ~]# yum install lsof   #需要先安装lsof
[root@master ~]# lsof -i tcp:6379
COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 1991 redis    4u  IPv4  22990      0t0  TCP localhost:6379 (LISTEN)

6)连接

[root@master ~]# redis-cli -p 6379
127.0.0.1:6379> ping #验证 出现PONG说明连接成功了
PONG

7)退出

127.0.0.1:6379> quit #或者exit

8)关闭服务

root@master ~]# redis-cli shutdown
[root@master ~]# ps -ef | grep redis  #进行查看是否关闭

也可以在服务器里面关闭

127.0.0.1:6379> shutdown

 

原文地址:https://blog.csdn.net/weixin_65685029/article/details/132522896

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读752次。关系型数据库关系型数据库是一个结构化的数据库,创建在关系模型(二维表模型)基础上,一般面向于记录SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作主流的关系数据库包括Oracle、Mysql、SQL Server、Microsoft Access、DB2等非关系型数据库NoSQL(nOSQL=Not Only SQL),意思是“不仅仅是SQL”,是非关系型数据库的总称。除了主流的关系型数据库外的数据库,都认为是非关系型主流的NoSQ.._redis是非关系型数据库吗
文章浏览阅读687次,点赞2次,收藏5次。商城系统中,抢购和秒杀是很常见的营销场景,在一定时间内有大量的用户访问商场下单,主要需要解决的问题有两个:1. 高并发对数据库产生的压力;2. 竞争状态下如何解决商品库存超卖;高并发对数据库产生的压力对于第一个问题,使用缓存来处理,避免直接操作数据库,例如使用 Redis。竞争状态下如何解决商品库存超卖对于第二个问题,需要重点说明。常规写法:查询出对应商品的库存,判断库存数量否大于 0,然后执行生成订单等操作,但是在判断库存是否大于 0 处,如果在高并发下就会有问题,导致库存_php库存结余并发
文章浏览阅读1.4k次。MongoTemplate开发spring-data-mongodb提供了MongoTemplate和MongoRepository两种方式访问MongoDB,MongoRepository的方式访问较为简单,MongoTemplate方式较为灵活,这两种方式在Java对于MongoDB的运用中相辅相成。_springboot插入指定的mongodb数据库
文章浏览阅读887次,点赞10次,收藏19次。1.背景介绍1. 背景介绍NoSQL数据库是一种非关系型数据库,它的特点是可以存储非结构化的数据,并且可以处理大量的数据。HBase是一个分布式、可扩展的列式存储系统,它是基于Google的Bigtable设计的。HBase是一个开源的NoSQL数据库,它的核心功能是提供高性能的随机读写访问。在本文中,我们将对比HBase与其他NoSQL数据库,例如Redis、MongoDB、Cass...
文章浏览阅读819次。MongoDB连接失败记录_edentialmechanisn-scram-sha-1
文章浏览阅读470次。mongodb抽取数据到ES,使用ELK内部插件无法获取数据,只能试试monstache抽取mongodb数据,但是monstache需要mongodb replica set 模式才能采集数据。############monstache-compose文件。#replicas set 启动服务。# 默认备份节点不能读写,可以设置。# mydb指的是需要同步的数据库。#登录主mongodb初始化rs。#primary 创建用户。# ip地址注意要修改。# ip地址注意要修改。_monstache csdn
文章浏览阅读913次,点赞4次,收藏5次。storage:fork: trueadmin登录切换数据库注意: use 代表创建并使用,当库中没有数据时默认不显示这个库删除数据库查看表清单> show tables # 或者 > show collections表创建db.createCollection('集合名称', [options])table1字段类型描述capped布尔(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。_mongodb5
文章浏览阅读862次。Centos7.9设置MongoDB开机自启(超全教程,一条龙)_mongodb centos开机启动脚本
文章浏览阅读1.3k次,点赞6次,收藏21次。NoSQL数据库使用场景以及架构介绍
文章浏览阅读856次,点赞21次,收藏20次。1.背景介绍1. 背景介绍NoSQL数据库是一种非关系型数据库,它的设计目标是为了解决传统关系型数据库(如MySQL、Oracle等)在处理大量不结构化数据方面的不足。NoSQL数据库可以处理大量数据,具有高性能、高可扩展性和高可用性。但是,与关系型数据库不同,NoSQL数据库没有固定的模式,数据结构也不一定是表格。在NoSQL数据库中,数据存储和查询都是基于键值对、列族、图形等不同的...
文章浏览阅读416次。NoSQL定义:非关系型、分布式、开放源码和具有横向扩展能力的下一代数据库。由c++编写的开源、高性能、无模式的基于分布式文件存储的文档型数据库特点:高性能、高可用性、高扩展性、丰富的查询支持、可替换已完场文档某个指定的数据字段应用场景:社交场景:使用mongodb存储用户信息游戏场景:用户信息,装备积分物流场景:订单信息,订单状态场景操作特点:数据量大;读写操作频繁;价值较低的数据,对事物性要求不高开源、c语言编写、默认端口号6379、key-value形式存在,存储非结构化数据。_nosql
文章浏览阅读1.5k次,点赞3次,收藏2次。Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket. at redis.clients.jedis.DefaultJedisSocketFactory.createSocket(DefaultJedisSocketFactory.java:110) at redis.clients.jedis.Connection.connect(Conne_redis.clients.jedis.exceptions.jedisconnectionexception: failed to create so
文章浏览阅读6.5k次,点赞3次,收藏12次。readAnyDatabase(在所有数据库上都有读取数据的权限)、readWriteAnyDatabase(在所有数据库上都有读写数据的权限)、userAdminAnyDatabase(在所有数据库上都有管理user的权限)、dbAdminAnyDatabase(管理所有数据库的权限);:clusterAdmin(管理机器的最高权限)、clusterManager(管理和监控集群的权限)、clusterMonitor(监控集群的权限)、hostManager( 管理Server);_mongodb创建用户密码并授权
文章浏览阅读593次。Redis是一个基于内存的键值型NoSQL数据库,在实际生产中有着非常广泛的用处_搭建本地redis
文章浏览阅读919次。Key 的最佳实践[业务名]:[数据名]:[id]足够简短:不超过 44 字节不包含特殊字符Value 的最佳实践:合理的拆分数据,拒绝 BigKey选择合适数据结构Hash 结构的 entry 数量不要超过 1000(默认是 500,如果达到上限则底层会使用哈希表而不是 ZipList,内存占用较多)设置合理的超时时间批量处理的方案:原生的 M 操作Pipeline 批处理注意事项:批处理时不建议一次携带太多命令。Pipeline 的多个命令之间不具备原子性。_redis高级实战
文章浏览阅读1.2k次。MongoDB 递归查询_mongodb数据库 递归
文章浏览阅读1.2k次。通过实际代码例子介绍:如何通过MongoTemplate和MongoRepository操作数据库数据_springboot操作mongodb
文章浏览阅读687次,点赞7次,收藏2次。首先欢迎大家阅读此文档,本文档主要分为三个模块分别是:Redis的介绍及安装、RedisDesktopManager可视化工具的安装、主从(哨兵)模式的配置。_redis 主从配置工具
文章浏览阅读764次。天下武功,无坚不摧,唯快不破!我的名字叫 Redis,全称是 Remote Dictionary Server。有人说,组 CP,除了要了解她外,还要给机会让她了解你。那么,作为开发工程师的你,是否愿意认真阅读此心法抓住机会来了解我,运用到你的系统中提升性能。我遵守 BSD 协议,由意大利人 Salvatore Sanfilippo 使用 C 语言编写的一个基于内存实现的键值型非关系(NoSQL)..._redis 7.2 源码
文章浏览阅读2k次。MongoDB 的增删改查【1】_mongodb $inc