数据库

Redis在Java web中的应用

删除回忆录丶 提交于 2020-03-26 10:56:05
一般而言Redis在Javaweb应用中存在两个主要的场景,一个是缓存常用的数据,另一个是在需要高速读/写的场合使用它快速读/写,比如一些需要进行商品抢购和抢红包的场合. 一,缓存 在对数据库的读/写操作中,现实的情况是读操作的次数远超写操作, 一般是1 : 9 到3 : 7 的比例,所以需要读的可能性是比写的可能性多得多。当发送S QL 去数据库进行读取时,数据库就会去磁盘把对应的数据索引回来, 而索引磁盘是一个相对缓慢的过程。如果把数据直接放在运行在内存中的Redis 服务器上,那么不需要去读/写磁盘了,而是直接读取内存,显然速度会快得多,并且会极大减轻数据库的压力。 而使用内存进行存储数据开销也是比较大的,因为磁盘可以是TGB 级别,而且十分廉价,内存一般是几百个GB 就相当了不起了,所以内存虽然高效但空间有限,价格也比磁盘高许多,因此使用内存代价较高,并不是想存什么就存什么,因此我们应该考虑有条件的存储数据。一般而言,存储一些常用的数据,比如用户登录的信息: 一些主要的业务信息,比如银行会存储一些客户基础信息、银行卡信息、最近交易信息等。一般而言在使用 Red is 存储的时候,需要从3 个方面进行考虑。 ·业务数据常用吗?命中率如何?如果命中率很低,就没有必要写入缓存。 · 该业务数据是读操作多,还是写操作多,如果写操作多,频繁需要写入数据库,也没有必要使用缓存。

linux入门系列19--数据库管理系统(DBMS)之MariaDB

左心房为你撑大大i 提交于 2020-03-26 09:50:31
前面讲完Linux下一系列服务的配置和使用之后,本文简单介绍一款数据库管理系统(MySQL的兄弟)MariaDB。 如果你有MySQL或其他数据的使用经验,MariaDB使用起来将非常轻松。 本文讲解Centos7默认的数据MariaDB,由于是入门系列文章因此不会深入讲解,后面有机会在单独深入。 一、MariaDB产生背景 数据处理是软件的核心,软件的本质就是处理数据,包括输入输入、处理、输出。目前数据库主要分为关系型数据库和非关系型数据,关系型数据库主要有:SQLServer、Oracle、MySQL、MariaDB等;非关系型数据库(NoSQL)包含:Redis、HBase、MongoDB等等。 相信大家都听过或者用过MySQL数据库,它是一款市场占有率非常高的数据库管理系统,技术成熟、配置步骤相对简单,而且具有良好的可扩展性。 但是由于Oracle公司在2009年收购了MySQL的母公司Sun,因此MySQL项目也随之纳入了Oracle。被收购后,虽然MySQL仍然保持着开源软件的身份,但是却申请了多项商业专利,这就不禁让人担心其会被逐渐商业化。 一方面,MySQL本身是一款开源软件,是全球极客、程序员等技术高手在开源社区的大旗下的公共智慧结晶,自己的劳动成果被其他公司商业化自然也伤了一大批开源工作者的心

为啥要有微服务?啥是微服务?

谁说我不能喝 提交于 2020-03-26 09:42:30
前言 为什么要有微服务呢? 什么是微服务? SpringCloud 中为什么会有那么多的组件? ...... 作为SpringCloud教程的第一篇,不讲解具体的技术使用,通过一个通俗易懂的小故事,来解决这些疑惑。 本文分为三个部分: 架构的演变,即为什么会出现微服务技术 什么是微服务,即微服务的标准概念 微服务要解决什么问题,即微服务中那么多的组件都是干嘛的 从单体到微服务「小故事讲解架构演变」 新技术会站在老技术的基础上,解决老技术出现的问题的同时,进行迭代和演化 单体架构 这年,可能是十年前也可能是十五年前,小鹿入职了一家处于萌芽期的电商公司—并夕夕商城。 这个时候公司初创,人少,事儿少,用户少,当然了老板的钱也少,本着多快好省的信念,作为公司唯一开发工程师小鹿,跌跌撞撞的开发了一款能用的商城网站,架构如下: 网站整体非常的简单,在没什么用户的现阶段也是非常的好用,而且还非常的省心,但是没有想到的是,公司业务越来越好,用户量是越来越大,随着访问量的不断增大,项目经常卡死故障。 于是老板大手一挥,指引商城技术改革,emmm,还加钱招人,又招了小羊,小马数位同事,对并夕夕商城进行升级优化。 经过激烈的讨论,优化方向为:增加应用负载能力,即负载均衡,应用服务器集群 于是,噔噔蹬蹬,新的架构出现了 负载均衡 增加负载均衡之后,应用服务器不再是系统的瓶颈了

MongoDB 基础(2019年开篇)

自作多情 提交于 2020-03-26 08:52:32
MongoDB基础知识: 1、什么是MongoDB NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL"。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB是由C++编写的,MongoDB语法类似JS,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB将数据存储为一个文档,数据结构由键值对(key=>value)组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。 示例: { name: "wangchunwang", age: 26, groups: ["news", "sports"] } 假设上述文档所在的集合是testcoll,那么以下几种查询键值方法等效: > db.testcoll.findOne().name // 点链式访问 > db["test"].findOne()["name"] // 数组式访问 2、进入MongoDB Shell 在cmd中输入 > mongo [ip:port/database -u username -p] 查看当前操作的数据库:> db 显示所有数据库:> show dbs

JAVA架构师必备词汇和知识点

江枫思渺然 提交于 2020-03-26 08:00:50
01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机制(上线回滚、数据库版本回滚、事务回滚) 02 高并发 应用缓存 HTTP 缓存 多级缓存 分布式缓存 连接池 异步并发 03 分布式事务 二阶段提交(强一致) 三阶段提交(强一致) 消息中间件(最终一致性),推荐阿里的 RocketMQ。 04 队列 任务队列 消息队列 请求队列 05扩容 单体垂直扩容 单体水平扩容 应用拆分 数据库拆分 数据库分库分表 数据异构 分布式任务 06 网络安全 SQL 注入 XSS 攻击 CSRF 攻击 拒绝服务(DoS,Denial of Service)攻击 架构师必备工具 01 操作系统 Linux(必备)、某软的 02 负载均衡 DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB 03 分布式框架 Dubbo、Motan、Spring-Could 04 数据库中间件 DRDS 、Mycat、360 Atlas、Cobar (不维护了) 05 消息队列 RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka 06 注册中心 Zookeeper、Redis 07 缓存 Redis、Oscache

sqlalchemy 初识

两盒软妹~` 提交于 2020-03-26 07:44:52
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作。简单来说就是将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 orm(object relational mapping),即对象映射关系程序。类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言。 orm的优点: 1、隐藏了数据访问细节,“封闭”的通用数据库交互是ORM的核心。他使得我们的通用数据库交互变得简单易行,并且完全不用考虑复杂的SQL语句。快速开发,由此而来。 2、ORM使我们构造固化数据结构变得简单易行。 缺点: 1、无可避免的,自动化意味着映射和关联管理,代价是牺牲性能。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。 sqlalchemy安装: 可以在pycharm上直接安装,也可以使用pip安装: pip install sqlalchemy 来源: https://www.cnblogs.com/fone933/p/8325634

SqlAlchemy ORM

蓝咒 提交于 2020-03-26 07:43:49
ORM介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言。 orm的优点: 隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。快速开发,由此而来。 ORM使我们构造固化数据结构变得简单易行。 缺点: 无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。 SQLAlchemy是 Python 编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果 Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作 MySQL-Python mysql+mysqldb://

架构必备词汇

情到浓时终转凉″ 提交于 2020-03-26 07:28:42
高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机制(上线回滚、数据库版本回滚、事务回滚) 高并发 应用缓存 HTTP缓存 多级缓存 分布式缓存 连接池 异步并发 分布式事务 二阶段提交(强一致) 三阶段提交(强一致) 消息中间件(最终一致性),推荐阿里的RocketMQ 队列 任务队列 消息队列 请求队列 扩容 单体垂直扩容 单体水平扩容 应用拆分 数据库拆分 数据库分库分表 数据异构 分布式任务 网络安全 SQL注入 XSS攻击 CSRF攻击 拒绝服务(DoS,Denial of Service)攻击 架构装逼必备工具 操作系统 Linux(必备)、某软的 负载均衡 DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB(阿里云) 分布式框架 Dubbo、Motan、Spring-Could 数据库中间件 DRDS (阿里云)、Mycat、360 Atlas、Cobar (不维护了) 消息队列 RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka 注册中心 Zookeeper、Redis 缓存 Redis、Oscache、Memcache、Ehcache 集成部署 Docker、Jenkins

架构装逼必备词汇(转某大牛微博)

做~自己de王妃 提交于 2020-03-26 06:39:54
高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机制(上线回滚、数据库版本回滚、事务回滚) 高并发 应用缓存 HTTP缓存 多级缓存 分布式缓存 连接池 异步并发 分布式事务 二阶段提交(强一致) 三阶段提交(强一致) 消息中间件(最终一致性),推荐阿里的RocketMQ 队列 任务队列 消息队列 请求队列 扩容 单体垂直扩容 单体水平扩容 应用拆分 数据库拆分 数据库分库分表 数据异构 分布式任务 网络安全 SQL注入 XSS攻击 CSRF攻击 拒绝服务(DoS,Denial of Service)攻击 来源: https://www.cnblogs.com/xqzj/p/7658024.html

SQL Server 2019 的亮点总结 Why use SQL Server

一曲冷凌霜 提交于 2020-03-26 03:22:24
微软在 Ignite 2019 大会上正式发布了新一代数据库产品SQL Server 2019。使用统一的数据平台实现业务转型SQL Server 2019 附带 Apache Spark 和 Hadoop Distributed File System(HDFS),可实现所有数据的智能化。 SQL Server 2019 的亮点 SQL Server 是数据集成的中心。通过 SQL server 和 Spark 为结构化和非结构化数据提供转型洞察力。 2.支持多种语言和平台,现在可以在 Windows、Linux 和容器上使用。 3.保护静态和使用中的数据。据 NIST 漏洞数据库统计,SQL Server 已经成为过去 8 年内最不容易遭受***的数据库。 Power BI 报表服务器使您的用户可以访问丰富的交互式 Power BI 报表以及 SQL Server Reporting Services 的企业报告功能。 SQL Server大数据集群允许用户部署运行在Kubernetes上的SQL Server、Spark和HDFS容器的可伸缩集群。这些组件并行运行,使用户能够从Transact-SQL或Spark中读取、写入和处理大数据,从而使用户能够轻松地将高价值的关系数据与高容量的大数据组合起来进行分析和使用。 通过数据虚拟化打破数据孤岛, 通过利用SQL Server