自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

可燃冰的博客

学无止境

  • 博客(27)
  • 收藏
  • 关注

原创 6.模板方法模式

一.定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中.使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤二.案例a.基本设计:父类{//需要子类构建细节的方法protected function1();protected function2();//模板方法:子类共有的方法,调用细节方法的汇总(该方法用final防止被重写)final p...

2019-10-16 19:46:07 183

原创 5.抽象工厂模式

一.概念为创建一组相关或相互依赖的对象提供一个接口,而且无须指定他们的具体类二.示例场景:不同类型应用(社交类:QQ,wechat,游戏类:吃鸡,农药,视频类:优酷,腾讯视频),需要在n个平台(windows,linux,android,ios...)上运行(即:每个平台都要有这几种类型的不同应用),该如何设计?1.定义抽象产品类(例如:社交类,游戏类,视频类):上图中的Ab...

2019-10-16 19:44:14 191 1

原创 4.工厂方法

一.概念定义一个用于创建对象的接口(Creator),让子类(ConcreteCreator,可以多子类,即多种工厂)决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。二.类图代码描述Product(所有产品的抽象:例如糖)ConcreteProduct(某个具体产品:例如棒棒糖)Creator(抽象工厂类:所有厂的统称)Concre...

2019-03-19 15:36:19 172

原创 3.简单工厂

1.正常简单工厂模式是根据输入的参数判断进行创建对象,这样会出现修改原代码的情况,违背了开闭原则,例如:2.通过反射的方式弥补简单工厂扩展性不足的情况例如:...

2019-03-19 15:32:31 211

原创 2.单例模式

简述:本篇文章主要是描述单例的一些关键点1.构造函数用private避免被其他类new出一个对象2.懒汉式存在线程安全问题public class Singleton2 { private Singleton2(){ } private static Singleton2 instance; public static Singlet...

2019-03-19 15:19:43 162

原创 1.UML-模式分类

一.类图二.类的关系a.虚线/实线 + 箭头依赖关系:一般是一个类临时使用另外一个类.比如作为方法参数或者返回值等,一般体现在方法上(动物依赖氧气,将氧气当入参)关联关系:一般是一个类和另外一个类有关联,另外一个类当作成员变量(例如气候是企鹅的成员变量)b.实菱形/空菱形 + 箭头组合关系:两个类有相同的生命周期(鸟和翅膀)聚合关系:整体和局部的关系has...

2019-03-19 15:12:48 345

转载 七大设计原则

设计模式(面向对象)有七大原则,分别是:  1.开放-封闭原则  2.单一职责原则  3.依赖倒转原则  4.迪米特法则(也称为最小知识原则)  5.接口隔离原则  6.合成/聚合复用原则  7.里氏代换原则开放-封闭原则具有理想主义的色彩,他是面向对象设计的终极目标。其他几条则可以看做是开放-封闭原则的实现方法。设计模式就是实现了这些原则,从而达到了代码复用,增加...

2019-03-07 12:09:31 203

原创 9.spring boot以lettuce连接池整合redis-cluster(单机及集群版)

一.添加相关pom依赖commons依赖主要应用于单机版<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-dat

2018-12-05 14:07:38 12297 10

原创 8.redis cluster新增,删除节点

一.扩容节点1.启动一个新的redis节点,例如端口号为7007节点的端口号(之前文章有所涉及,此处不赘述)2.将新增的节点添加进集群redis-trib.rb add-node 192.168.40.158:7007 192.168.40.156:7001 将新节点连接到源数据(7007新节点,7001源数据节点)执行新增后 检查节点信息redis-trib.rb check 192.1...

2018-10-31 14:26:48 1027

原创 7.redis cluster集群搭建(6个节点)

本文是3台服务器,1:7001,7002 ; 2: 7003,7004 ; 3:7005,70061.安装redis,同前面文章所提的安装过程(仅安装,暂不配置配置文件)注意:(1).在etc目录下新建几个文件夹a. redis 用于存放redis.conf配置文件b. redis-cluster 用于存放集群相关配置信息(2).在var目录下新建几个文件夹a. redis 再...

2018-10-28 12:59:04 1244

原创 6.redis哨兵配置(至少3个哨兵)

一.修改sentinel.conf文件在 /etc目录下新建sentinel文件将redis目录下的sentinel.conf文件拷贝到/etc/sentinel文件夹下并修改文件名为5000.conf(1).基本配置修改port 5000 当前Sentinel服务运行的端口bind 192.168.40.156 绑定的主机地址(若不更改,在进行主从节点切换时,无法访问,导致主从节点切...

2018-10-17 17:00:30 4821

原创 5.redis中master宕机,哨兵进行主备切换出现的问题

一.进行主备切换可能发生的问题(1)异步复制导致的数据丢失产生原因:在主从复制的过程当中,部分数据没有发送的slave,master就宕机,slave数据少于主节点(2)脑裂导致的数据丢失产生原因:某个master节点脱离正常的网络环境,哨兵误以为master节点宕机,重新选举slave为master,此时集群中会产生2个master,此时client还未切换到新的master节点,还会继...

2018-10-17 16:59:42 5289

原创 4.linux定时备份rdb文件,数据恢复

1,查看当前linux系统是否安装了定时服务:命令rpm -qa | grep crontab,,若未安装,可以自行百度安装  2.编写shell脚本vi redis_rdb_copy_daily#!/bin/shcur_date=`date +%Y%m%d`rm -rf /usr/local/redis/snapshotting/$cur_datemkdi...

2018-10-17 16:59:06 607

原创 3.redis中AOF和RDB相关配置

修改redis.conf配置文件1.RDB:默认是开启的 (定期快照)每隔60s,如果有超过1000个key发生了变更,那么就生成一个新的dump.rdb文件也可以手动调用save或者bgsave命令,同步或异步执行rdb快照生成,save可以设置多个,就是多个snapshotting检查点,每到一个检查点,就会去check一下,是否有指定的key数量发生了变更,如果有,就生成一个新的du...

2018-10-17 16:54:35 501

原创 2.redisDesktopManager无法连接远程redis问题

解决: 找到目录下redis.conf文件1.外网ping redis服务器是否成功2.注释只允许本机访问ip3.设置redis密码,默认情况redis自身保护不允许未设置密码访问

2018-10-17 16:50:55 688

原创 1.redis生产环境启动方案(主从架构)

一.单节点安装1.下载相应的redis压缩包wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gztar -xzvf tcl8.6.1-src.tar.gzcd /usr/local/tcl8.6.1/unix/./configuremake && make install使用redis-3.2.8...

2018-10-17 16:48:02 430

原创 Solidity基础(9)--Solidity异常处理

Solidity是通过回退状态的方式来处理异常错误(有点像事务回滚)。发生异常时会撤消当前调用(及其所有子调用)所改变的状态,同时给调用者返回一个错误标识。注意捕捉异常是不可能的,因此没有try catch。1.条件检查Solidity提供了assert和require来进行 * require: require函数来检查输入变量或合约状态变量是否满足条件以及验证调用外部合约返回...

2018-07-06 10:39:16 2885

原创 Solidity基础(8)--Solidity合约继承

本章节主要介绍solidity的单继承及多继承,接口相关内容1.继承简述继承通过关键字is来实现,例如:pragma solidity ^0.4.0;contract Person{ string name; uint age;}contract man is Person{}2.子类访问父类权限问题pragma solidity ^0.4.0;co...

2018-07-06 10:38:07 1114

原创 Solidity基础(7)-- 杂项补充

1.mapping一种键值对的映射关系存储结构 语法:mapping(_Key => _Value),键值对类型,键是唯一的,其赋值方式为:map[a]=test; 意思是键为a,值为test; 注: 1.键的类型允许除映射外的所有类型,如数组,合约,枚举,结构体。值的类型无限制。 2.在映射表里没有长度,键集合,值集合这样的概念,同时映射并没有做迭代的方法,可以自行实现:htt...

2018-07-06 10:37:21 185

原创 Solidity基础(6)--Solidity合约访问权限问题

本章节主要讲述智能合约中访问权限问题,主要关键字external,public,internal,private之间的区别及应用external: 外部函数是合约接口的一部分,所以我们可以从其它合约或通过交易来发起调用。一个外部函数f,不能通过内部的方式来发起调用,(如f()不可以,但可以通过this.f())。外部函数在接收大的数组数据时更加有效。public: 公开函数是合约接...

2018-07-06 10:36:35 1473

原创 Solidity基础(5)--数据地址(memory,storage,calldata)

引用类型在Solidity中有一个额外的属性,数据的存储位置。可选为memory和storage。memory:存储位置同我们普通程序的内存一致。即分配,即使用,越过作用域即不可被访问,等待被回收。 storage:这种类型了,一旦使用这个类型,数据将永远存在。 calldata:它存储的是函数参数,是只读的,不会永久存储的一个数据位置。外部函数的参数(不包括返回参数)被强制指定为call...

2018-07-06 10:35:35 4501

原创 Solidity基础(4)--类型详解(引用类型)

本章节主要详细介绍solidity中引用类型的属性信息以及注意点包括:可变字节数组,数组,结构体1. 可变字节数组string:是一个动态尺寸的utf-8编码字符串,他其实是一个特殊的可变字节数组,同时其也是一个引用类型bytes:动态字节数组注: 1.string并没有提供方法获取其字符串长度,也没提供方法修改某个索引的字节码,但是可以把string转换成byt...

2018-07-06 10:33:11 369

原创 Solidity基础(3)--类型详解(值类型)

本章节主要详细介绍solidity中值类型的属性信息以及注意点包括:Boolean,Integer,Address,定长字节数组,Enums1. Boolean类型bool:可以取值true和false 对应的运算符同java相同包括:!逻辑非,&&逻辑与,||逻辑或,==等于,!= 不等于,其中 &&,|| 为短路运算符2. I...

2018-07-06 10:31:08 589

原创 Solidity基础(2)--Solidity合约值类型与引用类型

solidity是一个静态类型的语言,在编译时需要明确指定变量的类型,本章将介绍solidity中值类型与引用类型1.值类型值类型包含: * 布尔(Booleans) * 整形(Integer) * 地址(Address) * 定长字节数组(fixed byte arrays) * 有理数和整型(Rational and Integer Literals,String l...

2018-07-06 10:28:34 347

原创 Solidity基础(1)--Solidity合约结构

本章节主要讲述智能合约中合约的基本结构,及基本关键字的使用合约中可包含内容:usingFor声明,状态变量(State Variables),结构类型(Structs Types),构造函数,函数修饰符(Function Modifiers),函数(Functions),事件(Events),枚举类型(Enum Types)智能合约 Testpragma solidit...

2018-07-06 10:27:50 680

原创 Solidity基础(0)--Solidity编写智能合约

要写智能合约有好几种语言可选:有点类似Javascript的Solidity, 文件扩展名是.sol;Python接近的Serpent, 文件名以.se结尾。还有类似Lisp的LLL,但现在最流行而且最稳定的要算是Solidity了solidity写Hello Worldpragma solidity ^0.4.0;import "./A.sol";contract Hello...

2018-07-06 10:25:59 1319 1

原创 solidity基础思维导图

solidity思维导图

2018-07-05 21:26:19 448

空空如也

空空如也

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

TA关注的人

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