自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WangXiaoYuuuuu

做什么样准备,有什么样运气。

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

原创 阿里云服务器Mongodb被黑,数据丢失

问题最近将项目部署在阿里云服务器上,在mongodb中存储的图片以及数据都没了.白天添加的数据,到了第二天,所有数据都没有.原因在mongodb的db中出现一个如下名字的库:READ_ME_TO_RECOVER_YOUR_DATA结果去查了下发现就是被黑了…解决方案因为现在配置文件中的bind_ip是0.0.0.0,任何Ip都可以访问,将Ip改为127.0.0.1…但是只能本机访问,外部数据存储不了.PASS掉配置文件中增加auth=true的配置,验证默认是false,由于这个配置

2020-06-30 19:37:53 2217

原创 解决 Error creating bean with name redisConnectionFactory问题

Error creating bean with name ‘cacheManager’ defined in class path resource [org/springframework/boot/autoconfigure/cache/RedisCacheConfiguration.class]: Unsatisfied dependency expressed through method ‘cacheManager’ parameter 0; nested exception is org.sp

2020-06-02 13:59:21 7182 1

原创 Redis主从复制常见的一些问题

频繁的全量复制(一)伴随着系统的运行,master的数据会越来越大,一旦master重启,runid将发生变化,会导致所有的slave进行全量复制内部优化调整方案:master 内部创建master_replid变量,使用runid相同的策略生成,长度41位,并发送给左右的slave在master关闭时执行命令shutdown save,进行RDB持久化,将runid和offset存储到RDB文件中repl-id repl-offset通过redis-check-rdb命令可以查看该信息

2020-05-29 15:00:16 387

原创 Redis主从复制(三)

数据同步+命令传播阶段工作流程心跳机制进入命令传播阶段后,master和slave间需要进行数据信息交换,使用心跳机制进行维护,实现双方连接保持在线master心跳:指令:PING周期:由repl-ping-slave-period决定,默认10秒作用:判断slave是否在线查询:INFO replication 获取slave最后一次连接时间间隔,lag项维持在0或1视为正常slave心跳:指令:REPLCONF ACK{offset}周期:1秒作用1:汇报slave自

2020-05-29 13:43:22 155

原创 Redis主从复制(二)

主从复制工作流程阶段二:数据同步阶段工作流程在slave初次连接master后,复制master中的所有数据到slave将slave的数据库状态更新成master当前的数据状态步骤一:请求同步数据步骤二:创建RDB同步数据步骤三:恢复RDB同步数据步骤四:请求部分同步数据步骤五:恢复部分同步数据至此,数据同步工作完成状态:slave:具有master的全部数据,包含RDB过程接收的数据master:保存slave当前数据同步的位置总体:完成了数据的克隆数据同步阶段mas

2020-05-28 21:51:19 98

原创 Redis主从复制(一)

单机redis的风险和问题问题1.机器故障现象:硬盘故障,系统崩溃本质:数据丢失,很可能对业务造成灾难性打击结论:基本上会放弃使用redis问题2.容量瓶颈现象:内存不足,从16G升级到64G等等无限升级…本质:穷,硬件条件跟不上结论:放弃使用redis结论为了避免单点redis服务器故障,准备多台服务器,互相连通.将数据复制多个副本保存在不同的服务器上,连接在一...

2020-05-11 23:07:06 93

原创 Redis三种删除策略

首先我们先说一下redis删除的是过期数据,而什么是过期数据呢?过期数据就是设置了有效性的数据到达了过期时间的数据.TTL指令获取数据状态返回时间:具有时效性的数据返回-1:表示永久有效的数据返回-2:表示已经过期的数据或被删除的数据或未定义的数据时效性数据的存储结构数据删除策略的目标在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务...

2020-04-21 14:41:45 4792

原创 Redis事务

redis事务就是一个命令执行的队列,将一系列定义命令包装成一个整体(一个队列).当执行时,一次性按照添加顺序依次执行,中间不会被打断或干扰.一个队列中,一次性,顺序性,排他性的执行一系列命令.事务的基本操作开启事务multi作用:设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中(队列中)执行事务exec作用:设定事务的结束位置,同时执行事务,与multi成对出现,...

2020-04-20 17:59:45 103

原创 Redis持久化RDB和AOF的区别

RDB和AOF的如何选择对数据非常敏感,建议使用默认的AOF持久化方案AOF持久化策略使用everysecond,每秒钟fsync一次,该策略redis仍可以保持很好的处理性能,当出现问题时,最多丢失0-1秒的数据注意:由于AOF文件存储体积较大,且恢复速度慢数据呈现阶段有效性,建议使用RDB持久化方案数据可以良好的做到阶段内无丢失(该阶段是开发者或运维人员手工维护的),且恢...

2020-04-19 23:07:11 345

原创 Redis持久化-AOF

AOFAOF持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中命令达到恢复数据的目的.AOF的主要作用是解决了数据持久化的实时性,目前已经时redis持久化的主流方式AOF写数据的过程AOF写数据的三种策略always(每次)每次写入操作均同步到AOF文件中,数据零误差,性能较低,不建议使用everysec(每秒)每秒将缓存区中的指令同步到AOF文件中,数据准...

2020-04-19 21:30:31 291

原创 Redis持久化-RDB

持久化言简意赅,持久化就是将内存中的数据存储在硬盘中.持久化分为两种:RDB(快照)将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据AOF(日志)将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程RDBsave指令-启动方式命令:save作用:手动执行一次保存操作save指令相关配置Redis相关配置...

2020-04-19 17:40:13 139

原创 Linux下Redis配置文件

基础配置daemonize yes以守护进程方式启动,使用本启动方式,redis将以服务的形式存在,日志将不再打印到命令窗口中port 6***设置当前服务启动端口号dir "/自定义目录/redis/data"设定当前服务文件保存位置,包含日志文件,持久化文件logfile "6*.log"**设定日志文件名,便于查阅RDB启动方式-save指令相关配置dbfilename ...

2020-04-18 16:44:22 1434

原创 Redis通用指令学习

keykey是一个字符串,通过key获取redis中保存的数据key基本操作删除指定key:del key查看key是否存在:exists key获取key的类型:type keykey扩展操作(时效性控制)为指定key设置有效期expire key seconds (秒)pexpire key millliseconds (毫秒)下面这两个是使用时间戳expir...

2020-04-16 23:34:03 121

原创 Redis五种数据类型

概念:Redis是用C语言开发的一个开源的高性能键值对(key-value)的非关系型数据库特征:1.数据间没有必然的关联关系2.内部采用单线程机制进行工作3.高性能4.多数据类型支持_______________________________________________________数据类型学习笔记:string 字符串存储的数据:单个数据,最简单的数据存储类型,...

2020-04-16 21:51:27 176

原创 springboot2.x版本下的redis注意

以前一直使用的springboot1.x版本的,项目升级后修改为2.x版本,redis就报错了首先是pom依赖需要修改<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-...

2020-04-16 13:37:44 170

原创 Python报错TypeError: 'set' object is not subscriptable

在学习Pthyon阶段,在迭代输出列表的时候,创建成了集合对象,出现了这个BUG以下是错误案例#创建的集合names = {"你大爷","你二大爷","你三大爷"}ages = {18,19,20,21}jobs = {"老师","程序员","打酱油的"}for i in range(3): print("姓名:{0},年龄:{1},工作:{2}".format(names[...

2020-03-26 21:57:32 50671 5

原创 Idea如何使用Git进行项目管理

如果要添加使用Github人员。第一步:在包含项目的github中添加成员第二步:本地下载安装Git,直接问度娘。或者看这个安装git第三步:在idea中添加git点击test只要出现下图,就正面添加git成功第四步:添加github注意:在这里基本操作就结束了,以下是在连接github是所出现的一些BUG因为我这里是将SVN转换成Git,所以代码会变成红色。原因是代码不在...

2020-03-03 17:29:07 154

原创 java代码Hadoop伪分布式连接失败

这里说的连接失败是在linux虚拟机上连接失败.LINUX版本:CENTOS6.5第一次尝试:修改core-site.xml将hadoop01修改为具体的IP地址,但是不起作用第二次尝试:删除hadoop下的存放数据的文件夹,然后重新格式化,依然没有作用第三次尝试(成功):将/etc/hosts 文件中的数据进行修改:之前写的是127.0.0.1 hadoop01修改为 ...

2020-01-02 21:00:48 548

原创 String.format()使用记录

工作中需要按照需求设置固定的编号,就用到了String.format()这里做一下记录public static void main(String[] args) { //A20191209030001 //A固定开头 //20191209时间 //03员工编号 //0001产品编号 String newPlanNo = newPlanNo("A20191209030...

2019-12-17 18:32:27 159

原创 Avro

序列化/反序列化机制将对象转化为字节来进行存储称之为序列化;将字节还原会对象的过程称之为反序列化java中的序列化反序列化机制:需要利用原生流来实现,Serializable(该对象可以进行序列化/反序列化),static/transient(被修饰之后不能序列化/反序列化),serialVersionUID(版本号,如果版本号对上了再进行序列化/反序列,如果对不上,不进行序列化/反序列化...

2019-12-09 23:50:51 398 1

原创 ConcurrentMap

java.util.concurrent.ConcurrentMapjava.util.concurrent.ConcurrentMap 接口表示了一个能够对别人的访问(插入和提取)进行并发处理的 java.util.Map。ConcurrentMap除了从其父接口 java.util.Map 继承来的方法之外还有一些额外的原子性方法。ConcurrentMap 的实现既然 Conc...

2019-12-06 10:37:46 115

原创 Zookeeper集群启动其中一个服务器状态是standalone

standalone意为单机模式,但是我配置了三台服务器,其他两个都正常(一个leader,一个follower),有一个却是standalone将conf目录下的zoo_simple.cfg删除,前提是已经将该文件复制为zoo.cfg问题解决...

2019-12-05 21:19:47 2178

原创 PriorityBlockingQueue

优先级阻塞式队列优先级阻塞式队列默认情况下元素采用自然顺序升序排列。也可以自定义类实现compareTo()方法来指定元素排序规则,或者初始化PriorityBlockingQueue时,指定构造参数Comparator来对元素进行排序。但需要注意的是不能保证同优先级元素的顺序。这个队列会对放入的元素进行自然排序,也就意味着队列中的元素对应的类要实现Comparable(该接口对实现...

2019-11-29 11:07:32 270

原创 LinkedBlockingQueue

LinkedBlockingQueue 类实现了 BlockingQueue 接口。阻塞式链表基于节点来进行数据的存储。在使用的时候可以指定容量也可以不指定。如果指定了容量,则容量不可变。如果不指定容量,则默认容量为Integer.MAX_VALUE,即231-1,所以一般认为这种、情况下,队列是没有界限的。LinkedBlockingQueue 内部以 FIFO(先进先出)的顺序...

2019-11-29 09:53:08 286

原创 ArrayBlockingQueue

ArrayBlockingQueue 类实现了 BlockingQueue 接口。ArrayBlockingQueue 是一个有界的阻塞队列,其内部实现是将对象放到一个数组里。有界也就意味着,它不能够存储无限多数量的元素。它有一个同一时间能够存储元素数量的上限。你可以在对其初始化的时候设定这个上限,但之后就无法对这个上限进行修改了(译者注:因为它是基于数组实现的,也就具有数组的特性:一旦初...

2019-11-28 14:09:24 202

原创 BlockingQueue

java.util.concurrent 包里的 BlockingQueue 接口表示一个线程安放入和提取实例的队列。BlockingQueue用法BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费这些对象的场景。下图是对这个原理的阐述:一个线程往里边放,另外一个线程从里边取的一个 BlockingQueue 。一个线程将会持续生产新对象并将其插入到队列之中,...

2019-11-28 10:59:43 93

原创 CAS无锁算法

锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切 换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换 的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。用户态的锁虽然避免了这些问题,但是 其实它们只是在没有真实的竞争时才有效。Java在JDK1.5之前都是靠synchr...

2019-11-27 10:31:27 211

原创 springdataJPA对原生sql支持问题

在项目中用到的是springdataJPA连接数据库进行操作,但是JPA中的hql语句不能够满足业务要求,因而需要用到原生sql但是有一个问题: @Query(value = "SELECT ppd.* FROM zt_productionplandetails AS ppd \n" + " \tLEFT JOIN zt_salesplan sp ...

2019-11-26 13:24:46 529

原创 数据库存储时间问题

在存入数据库的时候前台显示比数据库存入数据少了一天打dug查询,传入数据无错,数据库存储后就是少了一天最终发现为:配置文件中少spring.datasource.url = jdbc:mysql://127.0.0.1:3306/ztsfs?useUnicode=true&characterEncoding=UTF-8&serverTimezone=utc中的 server...

2019-11-26 13:06:14 299

原创 阿拉伯数字转中文大写的方法

public class NumberToCN { /** * 汉语中数字大写 */ private static final String[] CN_UPPER_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; /** * 汉语中...

2019-11-21 09:13:02 182

原创 MongoDB逻辑运算符学习

逻辑运算符$or => or$and => and$not$nor$or就是或的意思,跟sql中的or意义一样,多个条件满足一个,就符合条件eg:`select * from users where id=1 or name=‘jack’在这里插入代码片...

2019-11-11 22:40:36 410

原创 从MongoDB中下载文件,文件名显示为下划线

问题在springboot集成MongoDB数据库,进行文档存储时,下载文件名字出现错误下载下来是这个名字代码://下载 @RequestMapping(value = "/downfile", method = RequestMethod.POST) @ResponseBody public void downfile(@RequestParam(name = "fname",...

2019-11-11 19:25:37 454

原创 MongoDB比较运算符学习

比较运算符$eq = “=” 等于$gt (greater than ) > 大于$gte >= (equal) 大于等于$lt (less than) < 小于$lte <= (equal) 小于等于$ne (not equal) !...

2019-11-05 23:09:22 458

原创 注解@NoRepositoryBean的作用

最近工作中用到了spring data JPA,看官方文档有个@NoRepositoryBean,说说自己的理解。官方文档:The intermediate repository interface is annotated with @NoRepositoryBean. Make sure you add that annotation to all repository interfac...

2019-11-05 17:17:32 5511

原创 线程中的run()方法和start()方法的区别

run()方法只是一个普通的方法,还是在主线程中进行调用,而start()则是开启了新的线程public class Ha extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()); }}public static void main(Str...

2019-11-01 15:32:29 175

原创 SQL语句的一些注意事项,和相关优化

注意事项1.不论一个sql中涉及到多个表,每次都用两个表(结果集)操作,得到新的结果后再和下一个表(结果集)操作.2.避免在select f1,(select f2 from tableB )… from tableA 这样得到字段列。直接用tableA和tableB关联得到A.f1,B.f2就可以了。3.避免隐含的类型转换如select id from employee where e...

2019-10-30 10:09:26 564

原创 Mysql一些函数的用法

记录工作中用到的一些mysql函数,待补充。。。IF()函数IF函数,相当于java中的三目表达式。IF(expr1,expr2,expr3)参数含义:如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。这里举一个工作中用到的例子:SELECT DISTINCT u.* FROM zt_client u WHERE ...

2019-10-29 10:07:58 99

原创 Mysql的关联条件的修改

Mysql的关联条件的修改1.自己刚开始写的思路就是先去使用子查询,查到需要的字段信息,作为where条件,逻辑没问题,但是mysql不支持这种操作UPDATE zt_productmanage SET mangeStatus =12 WHEREid = (select id FROM zt_productmanage WHERE planDetails_id =...

2019-10-24 14:01:17 722

原创 MongoDB4.0安装

安装MongoDB自己犯的一些错误这里记一些在我安装MongoDB时所犯的一些错误安装就不多说本机的Robo可以连接上MongoDB,但是其他机器却连不上在百度查说的是少了mongod.conf配置文件,然后跟着新增了配置文件如下:dbPath: D:\Program Files\MongoDB\Server\4.0\datalogpath: D:\Program Files\...

2019-10-22 09:27:46 76

原创 缓存穿透,缓存雪崩,缓存击穿自我理解

缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。缓存雪崩缓存雪崩,是指在某一个时间段,缓存集中过期失效。产生雪崩的原因之一,比如马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中的放入了缓存,假设缓存...

2019-10-17 15:59:01 166

空空如也

空空如也

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

TA关注的人

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