自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (3)
  • 收藏
  • 关注

原创 设计模式

更新ingSOLID原则 缩写 英文 中文 描述 SRP The Single Responsibility Principle 单一责任原则 让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。 OCP The Open Closed Principle 开放封闭原则 软件实体应该是可扩展,而不可修改的。也就是说,对扩展是

2017-05-01 21:56:04 2328 2

转载 淘宝海量数据库之三:事务的ACID

转自:http://blog.sina.com.cn/s/blog_3fc85e260100msz3.html每个事务使得数据库从一个一致的永久状态原子地转移到一个新的一致的永久状态,可以说,事务的ACID(thetransactional properties of Atomicity, Consistency, Isolation andDurability)属性是数据库事务的灵魂:

2017-03-15 11:33:24 811

原创 mysql的server优化

mysql的8组后台线程master thread:主要负责将脏缓存页刷新到数据文件,执行purge操作,触发检查点,合并插入缓冲区等insert buffer thread:负责插入缓冲区的合并操作read thread:负责数据库读取操作,可配置多个读线程write thread:负责数据库写操作,可配置多个写线程log thread:用于将重做日志刷新到logfile中purge

2017-03-08 10:42:29 598

原创 mysql事务与锁

事务控制start transaction|begin [work]commit [work] [and [no] chain] [[no] release]rollback [work] [and [no] chain] [[no] release]set autocommit={0|1}分布式事务只支持InnoDB存储引擎。两阶段事务ACID原子性(Atomicity):要么全执行,要

2017-03-08 10:39:06 508

原创 磁盘IO优化

RAID(Redundant Array of Inexpensive Disks):廉价磁盘冗余阵列 raid级别 特性 优点 缺点 raid0 也叫条带化(Stripe),按一定的条带大小将数据依次分布到各个磁盘,没有数据冗余 数据并发读写速度快,无额外磁盘空间开销,投资省 数据无冗余保护,可靠性差 raid1 也叫磁盘镜像(Mirror),两个磁盘一组,所

2017-03-08 10:37:47 924

原创 mysql 的sql优化

show [session|global] status命令可以提供服务器状态信息,可以知道读写比率;回滚操作的情况,太频繁说明程序有问题Slow_queries:慢查询的次数 定位执行效率较低的sql语句通过慢查询日志定位那些执行效率较低的sql语句,用–log-slow-queries[=file_name]选项启动时,mysqld写一个包含所有执行时间超过long_query_time秒的

2017-02-23 15:06:14 599

原创 mysql分区

分区优点和单个磁盘或者文件系统分区相比,可以存储更多数据优化查询。where子句中包含分区条件时,可以只扫描必要的一个或者多个分区来提高查询效率;同时在涉及聚合函数查询时,可以容易地在每个分区上并行处理,最终汇总所有分区得到的结果。对于已经过期或者不需要保存的数据,可以通过删除与这些数据有关的分区来快速删除数据跨多个磁盘来分散数据查询,以获得更大的查询吞吐量。分区有利于管理非常大的表,采用

2017-02-23 15:04:54 345

原创 mysql索引

MyISAM和InnoDB存储引擎默认创建都是BTREE索引,mysql目前不支持函数索引,但是支持前缀索引。只有MyISAM储存引擎支持FULLTEXT索引。默认情况下,MEMORY存储引擎使用HASH索引,但也支持BTREE索引。设计索引原则搜索的索引列,不一定是所要选择的列。最合适索引的列是出现在where子句中的列,不是select关键字后的列使用唯一索引。索引的列基数越大,索引效果越好

2017-02-23 15:03:48 361

原创 mysql存储引擎

mysql的存储引擎主要有MyISAM,InnoDB,MEMORY, MERGE,NDB,最常用的是InnoDB和MyISAM. MyISAMMyISAM在磁盘存储成3个文件.frm(存储表定义).MYD(MYData,存储数据).MYI(MYIndex,存储索引)MyISAM表支持3种不同的存储格式静态(固定长度)表动态表压缩表 InnoDB InnoDB存储表和索引使

2017-02-23 15:02:04 367

原创 mysql基础简介

timestamp vs biginttimestamp会随时区的变化而变化,而bigint是一个固定的,别的时区的人就会觉得时间上有差别。 char vs varcharchar是固定长度,而varchar是变长;char会忽略末尾的空格,而varchar会保留。MyISAM存储引擎:建议使用固定长度的数据列代替可变长度的数据列MEMORY存储引擎:char和varchar都按照cha

2017-02-23 14:58:51 537

原创 mysql常用命令

启动服务service mysql start 重启服务service mysql restart 关闭服务service mysql stop 查看所有数据库show databases; 选择数据库use {dbname} 查看表show tables; 删除数据库drop database {dbname}; 查看表结构desc {tablename} 删除表

2017-02-23 14:55:58 488

原创 Java多线程编程——对象及变量的并发访问 02

Java多线程编程——对象及变量的并发访问 02synchronized同步方法方法内的变量为线程安全:运行时,入栈操作,故为线程安全实例(对象)变量非线程安全:运行时,在堆中,故为非线程安全关键字synchronized取得的锁都是对象锁synchronized锁重入:当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁的。异常时,自动释放锁同步不能继承synchr

2016-08-11 16:09:21 484

原创 Spring——装配Bean 02

Spring——装配Bean 02自动装配:有助于减少甚至消除配置元素和元素,让Spring自动识别如何装配Bean的依赖关系自动检测:比自动装配更进一步,让Spring能够自动识别那些类需要被装配成Spring Bean,从而减少对元素的使用4种类型的自动装配byName:把与Bean的属性具有相同名字(或者id)的其他Bean自动装配到Bean的对应属性中,如果没有跟属性的名字相匹配的B

2016-08-07 13:30:03 436

原创 Spring简介 01

Spring简介Spring核心:依赖注入(DI)和面向切面编程(AOP)Spring意义为了降低java开发的复杂性,Spring采取了以下4种关键策略:基于POJO的轻量级和最小侵入性编程通过依赖注入和面向接口实现松耦合基于切面和惯例进行声明式编程通过切面和模板减少样板式代码依赖注入解耦。减少对其他类的依赖,面向接口编程简化测试构造器注入public class A {

2016-08-02 14:17:10 661

原创 深入理解Java虚拟机-虚拟机性能监控与故障处理工具

深入理解Java虚拟机-虚拟机性能监控与故障处理工具JDK监控和故障处理工具 名称 主要作用 jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据 jinfo Configuration Info for

2016-07-08 16:34:48 596

原创 深入理解Java虚拟机-垃圾收集器与内存分配策略

深入理解Java虚拟机-垃圾收集器与内存分配策略三个问题哪些内存需要回收?什么时候回收?如何回收?引用计数算法当对象有一个引用时,计数器加1,当引用失效时,计数器减1,计数器为0则表示对象不可能再被使用。但是这个算法很难解决对象之间相互循环引用的问题。举个栗子public class ReferenceCountingGC { public Object instance = nul

2016-07-08 10:48:16 1101

原创 深入理解Java虚拟机-自动内存管理机制

深入理解Java虚拟机-自动内存管理机制首先看下面的Java虚拟机运行时的数据区图,运行时数据区包含方法区、堆、虚拟机栈,本地方法栈,程序计数器。灰色区域是所有线程共享的数据区,是线程不安全的。另外三个模块是是线程安全的。 程序计数器是一块较小的内存空间。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行得字节码指令。如果线程正在执行的是一个java内部方法,这个计数器记录的是正在执

2016-07-07 20:48:54 851

原创 Elasticsearch简介

Elasticsearch简介Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。使用场景全文检索结构化搜索分析应用维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-youmean)等搜索建议功能。英国卫报使用Elasticsearch结合用户日志和社

2016-07-07 11:34:52 951

原创 CentOS7下安装Scrapy

更新yum[root@localhost ~]# yum -y update安装gcc及扩展包[root@localhost ~]# yum install gcc libffi-devel python-devel openssl-devel安装开发工具包[root@localhost ~]# yum groupinstall -y development安装libxslt-devel支持l

2016-06-16 14:09:34 3826

原创 mysql主从复制配置

mysql主从复制配置环境准备192.168.1.159:3306192.168.1.160:3306两台服务器,作为mysql数据库的主从服务器,配置复制。在主服务器上创建复制用户mysql> grant replication slave,replication client on *.* to slave_user@'192.168.%.%' identified by 'slave_ps

2016-06-07 14:05:38 529

原创 mysql5.6.30安装

mysql5.6.30安装下载mysql-server_5.6.30-1ubuntu14.04_amd64.deb-bundle.tar并将文件拷贝至linux服务器中在/usr/local目录下创建目录mysql5.6.30root@localhost:/home/xiaoyao# mkdir /usr/local/mysql5.6.30拷贝安装文件至/usr/local/mysql5.6.30

2016-06-07 11:37:57 1610

原创 Redis + Keepalived主从集群的搭建及故障转移

Redis + Keepalived主从集群的搭建及故障转移设计思路:当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby;当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能;当 Master 恢复正常,则从Slave同步数据,同步数据之后关闭主从复制功能,恢复Master身份,于此同时Slave等待Maste

2016-06-06 14:22:27 3970 1

原创 Ubuntu14.04下安装redis-3.2.0以及开机自启动

Ubuntu14.04下安装redis-3.2.0以及开机自启动去官网下载redis-3.2.0.tar.gz,将redis-3.2.0.tar.gz放入/opt目录下解压redis-3.2.0.tar.gzxiaoyao@xiaoyao-virtual-machine:/opt$ sudo tar -zxvf redis-3.2.0.tar.gz编译redisxiaoyao@xiaoyao-vi

2016-06-06 12:54:41 6981 2

原创 Redis系列学习笔记21 集群

集群Redis 的分布式数据库实现Redis 集群是一个由多个 Redis 服务器组成的分布式网络服务器群,集群中的各个服务器被称为节点(node),这些节点会相互连接并进行通信。分布式的 Redis 集群没有中心节点,所以用户不必担心某个节点会成为整个集群的性能瓶颈。Redis 集群的每个节点都有两种角色可选,一个是主节点(master node),另一个是从节点(slave node):其中主节

2016-05-24 19:08:46 503

原创 Redis系列学习笔记20 Redis多机特性工作原理简介

Redis多机特性工作原理简介复制(replication)Sentinel集群(cluster)复制SLAVEOFSLAVEOF <ip> <port>将一个服务器(从服务器)变成为另一个服务器(主服务器)的复制品。复制的执行步骤从服务器向主服务器发送SYNC命令接到SYNC命令的主服务器会调用BGSAVE命令,创建一个RDB文件,并使用缓冲区记录接下来执行的所有写命令。当主服务

2016-05-23 16:16:45 1133

原创 Redis系列学习笔记19 Redis多机功能

Redis多机功能从单台 Redis 服务器过渡至多台 Redis 服务器到目前为止,本课程介绍的所有内容都是以单机 Redis 为背景的,也即是,我们考虑的事情只和一台Redis 服务器有关。但是在生产环境中实际地使用 Redis 的时候,只使用一台 Redis 服务器一般来说是没办法满足我们的需求的,限制主要来自于两个方面:内存容量不足:Redis 使用内存来储存数据库中的数据,但是对于一台机

2016-05-23 16:16:11 534

原创 Redis系列学习笔记18 Redis持久化

Redis持久化RDB持久化:将数据以二进制文件的形式存到硬盘里面。AOF持久化:增量存储至硬盘里面。在Redis服务器创建RDB文件的情况中,以下三种是最常见的:服务器执行客户端发送的SAVE命令;服务器执行客户端发送的BASAVE命令;使用save配置选项设置的自动保存条件被满足,服务器自动执行BGSAVE。SAVE在执行SAVE命令的过程中,Redis服务器将被阻塞,无法处理客户

2016-05-23 16:15:29 446

原创 Redis系列学习笔记17 服务器管理

服务器管理命令与工具检查连接是否正常PING命令使用客户端向 Redis 服务器发送一个 PING ,如果客户端与服务器之间的连接正常,并且服务器的运作也正常的话,那么命令将返回一个 PONG 。通常用于测试网络连接和服务器状态,或者用于测量延迟值。redis> PINGPONGredis> PINGCould not connect to Redis at 127.0.0.1:6379: C

2016-05-23 16:14:55 550

原创 Redis系列学习笔记16 服务器配置

服务器配置通过调整服务器来适应你的需要Redis 服务器提供了一些配置选项(configuration option),通过修改这些选项的值,可以改变选项对应功能的行为。举个例子,前面介绍 SELECT 命令时曾经说过,Redis 服务器默认会创建 0 号至 15 号共十六个数据库以供用户使用。但 Redis 服务器的数据库数量并不是一成不变的,Redis 提供了 databases 选项,它的默认

2016-05-23 16:14:02 485

原创 Redis系列学习笔记15 论坛构建

论坛构建介绍如何使用 Redis 去构建一个论坛主要功能用户账号创建帖子、回复帖子、为帖子投票为帖子分类,查看属于特定分类的帖子将多个分类(category)归类至某个标签(tab),查看属于特定标签的帖子每日热议帖子排行榜基于算法的帖子推荐一个帖子的构成部分:分类标题用户的投票数量作者发布时间点击量内容TAG根据分类展示帖子分类页面会根据帖子最后一次被回复的时间来排

2016-05-23 16:13:13 1037

原创 Redis系列学习笔记14 微博功能分析

微博功能分析UniqueSet 类 API 作用 实现原理 UniqueSet(client, key) 设置唯一集合的客户端和键。 is_include(element) 检查元素是否存在于唯一集合。 SISMEMBER add(element) 将元素添加到唯一集合。 SADDuser 类 API 作用 实现原理 User(clie

2016-05-23 16:12:36 1525

原创 Redis系列学习笔记13 Lua 脚本

Lua 脚本在服务器端执行复杂的操作尽管使用流水线可以一次发送多个命令,但是对于一个由多个命令组成的复杂操作来说,为了执行该操作而不断地重复发送相同的命令,这并不是最高效的做法,会对网络资源造成浪费。如果我们有办法避免重复地发送相同的命令,那么客户端就可以减少花在网络传输方面的时间,操作 就可以执行得更快。脚本功能有以下好处:使用脚本可以直接在服务器端执行 Redis 命令,一般的数据处理操作可

2016-05-23 16:11:53 568

原创 Redis系列学习笔记12 事务

事务Redis 的事务功能允许用户将多个命令包裹起来,然后一次性地、按顺序地执行被包裹的所有命令。在事务执行的过程中,服务器不会中断事务而改去执行其他命令请求,只有在事务包裹的所有命令都 被执行完毕之后,服务器才会去处理其他命令请求。 命令 作用 MULTI 开始一个新的事务。 DISCARD 放弃事务。 EXEC 执行事务中的所有命令。MULTI开始一个事务。在这

2016-05-23 16:10:53 449

原创 Redis系列学习笔记11 流水线

流水线通过减少客户端与服务器之间的通信次数来提高程序的执行效率Redis 的流水线功能允许客户端一次将多个命令请求发送给服务器, 并将被执行的多个命令请求的结果在一个命令回复中全部返回给客户端, 使用这个功能可以有效地减少客户端在执行多个命令时需要与服务器进行通信的次数。

2016-05-23 16:10:17 577

原创 Redis系列学习笔记10 发布与订阅

发布与订阅定义与模型订阅命令与发布命令订阅频道或模式、退订频道或模式、发布消息。SUBSCRIBE channel [channel …]订阅给定的一个或多个频道。PSUBSCRIBE pattern [pattern …]订阅一个或多个模式, pattern 参数可以包含 glob 风格的匹配符,比如:news::* 模式可以匹配 news::bussiness 、 news::it 、 new

2016-05-23 16:08:41 421

原创 Redis系列学习笔记9 键过期功能

键过期功能让 Redis 在指定的时间自动删除特定的键。键过期功能的相关命令 类型 命令 设置生存时间 EXPIRE 命令和 PEXPIRE 命令。 设置过期时间 EXPIREAT 命令和 PEXPIREAT 命令。 查看剩余生存时间 TTL 命令和 PTTL 命令。 删除生存时间或过期时间 PERSIST 命令。EXPIRE key seconds将键 ke

2016-05-23 16:07:26 354

原创 Redis系列学习笔记8 数据库

数据库查看键类型TYPE key返回键key储存的值的类型。 类型 说明 none 键不存在 string 字符串或者HyperLogLog(HLL是二进制值) hash 散列 list 列表 set 集合 zset 有序集合DEL key [key …]删除给定的任意多个键,不存在的键会被忽略,命令返回被成功删除的键的数量。EXISTS ke

2016-05-23 16:06:28 464

原创 Redis系列学习笔记7 HyperLogLog

HyperLogLog使用常量空间估算大量元素的基数。问题记录网站每天获得的独立 IP 数量。使用集合来储存每个访客的 IP ,通过集合性质(集合中的每个元素都各不相同)来得到多个独立 IP ,然后通过调用 SCARD 命令来得出独立 IP 的数量。为了更好地解决像独立 IP 地址计算这种问题,Redis 在 2.8.9 版本添加了 HyperLogLog 结构。HyperLogLog 介绍Hype

2016-05-23 16:05:40 482

原创 Redis系列学习笔记6 有序集合

有序集合按照元素的分值来有序地储存各不相同的元素。有序集合和集合一样,都可以包含任意数量的,各不相同的元素(element),不同于集合的是,有序集合的每个元素都关联着一个浮点数格式的分值(score),并且有序集合会按照分值,以从小到大的顺序来排列有序集合中的各个元素。虽然有序集合中的每个元素都必须是各不相同的,但是元素的分值并没有这一限制,换句话说,两个不同元素的分值可以是相同的。基本操作ZAD

2016-05-23 16:04:54 531

原创 Redis系列学习笔记5 集合

集合存储多个各不相同的元素Redis的集合以无序的方式存储多个各不相同的元素。用户可以快速地向集合添加元素,或者从集合里面删除元素,也可以对多个集合进行集合运算操作,比如计算并集、交集和差集。SADD key element [element …]将一个或多个元素添加到给定的集合里面,已经存在于集合的元素会自动忽略,命令返回新添加到集合的元素数量。SREM key element [element

2016-05-23 16:04:19 487

rework 重来:更为简单有效的商业思维(中文版) 完整

rework 重来:更为简单有效的商业思维(中文版),找了半天才找到完整版,总共249页,希望对大家有用

2016-12-20

依赖注入Dependency Injection

这是一个大牛的博客的翻译,主要详细讲解依赖注入的,学习设计模式的朋友可以了解一下,另一个比较好的博客是http://tutorials.jenkov.com/dependency-injection/index.html,认真看完这两个资料,依赖注入是没有问题了

2015-11-03

快学scala(完整版)

scala快速上手,中文版,建议初学者学习这本书。

2015-10-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除