自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 利用amoeba(变形虫)实现mysql数据库读写分离

amoeba是阿里开发的一款数据库读写分离的项目(读写分离只是它的一个小功能),由于是基于java编写的,所以运行环境需要安装jdk;前期准备工作:1.两个数据库,一主一从,主从同步;master: 172.22.10.237:3306 ;主库负责写入操作;slave: 10.4.66.58:3306 ; 从库负责读取操作;amoeba: 172.22.10.237:8066 ; 我把a...

2019-12-17 10:50:17 186

原创 导入导出mysql数据库

复制stg上的数据库 到 开发环境1. 导出stg数据库(只复制数据库表结构,不包含数据)登录到stg环境,在root/dump路径下,执行dump命令mysqldump -hp-stg-cluster.us-east-1.rds.amazonaws.com -P3306 -uroot -pPassword --add-locks -q -d PNewServer > PNewServ...

2019-12-17 10:08:17 98

原创 线程池ThreadPoolExecutor使用

ThreadPoolExecutor是线程池中最核心的一个类,它提供了四个构造方法:查看一下参数最多的构造函数:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTi...

2019-12-16 22:08:47 217

原创 JVM参数分类

标准:-开头,所有的HotSpot都支持非标准:-X开头,特定版本HotSpot支持特定命令不稳定:-XX开头,下个版本可能取消-XX:+PrintCommandLineFlags JVM设置过的详细的XX参数的名称和值-XX:+PrintFlagsFinal 最终参数值-XX:+PrintFlagsInitial 默认参数值...

2019-12-13 16:20:32 126

原创 JAVA中,哪些对象可以作为GC Roots?

JVM内存模型Java数据区域分为五大数据区域。这些区域各有各的用途,创建及销毁时间。其中方法区和堆是所有线程共享的,栈,本地方法栈和程序虚拟机则为线程私有的。根据java虚拟机规范,java虚拟机管理的内存将分为下面五大区域。其中三个是线程私有:程序计数器,虚拟机栈,本地方法栈,两个是线程共享:堆,方法区。线程私有的区域等到线程结束时(栈帧出栈时)会自动被释放,空间比较容易清理。而...

2019-12-13 14:16:49 2291

原创 【笔记】Redis深度历险-------字典dict

为什么redis dict 扩容的时候要考虑 bgsave, 但是缩容的时候不用考虑?1.bgsave时,dict不扩容是为了尽可能减少内存页过多分离,系统后需要更多的开销去回收内存。2.bgsave是数据持久化到磁盘的过程,而且缩容的条件是元素个数少于数组的10%,不产生过多的内存碎片或内存分离。...

2019-12-11 16:02:08 337

原创 【笔记】Redis深度历险-------保护Redis

使用redis时,需要注意安全风险以及进行必要的防范措施,避免数据泄露和丢失、避免主机权限遭到黑客窃取,以及避免人为操作的失误。指令安全Redis有一些非常危险的指令,这些指令会对Redis的稳定和数据安全造成非常严重的影响。比如keys指令会导致Redis卡顿,flushdb和fulshall会清空Redis的所有数据。Redis配置文件中提供了rename-command指令用来将指令修...

2019-12-09 11:03:03 122

原创 mybatisPlus中的updateById无法更新null值的字段

今天遇到了一个问题,至今未找到原因(只好换了一种方式解决问题先)本人使用的mybatis-plus 版本是2.0.7很多人都碰到过这个问题,使用mybatis-plus时,更新操作时,默认情况下如果字段为null是不会进行修改的查询了网上的一些解决办法,【第一种方法】:全局配置方式在MyBatis-Plus配置文件中修改field-strategy字段验证的值为0,即忽略判断。但是这样...

2019-12-06 16:56:02 4661

原创 【笔记】Redis深度历险-------优胜劣汰(LRU算法)

当Redis内存超出物理内存限制时,内存的数据会开始和磁盘产生频繁的交换(swap)。交换会让Redis的性能急剧下降,对于访问量较大的Redis来说,这样的龟速存取效率基本上等于不可用。在生产环境中我们是不允许Redis出现交换行为的,为了限制最大使用内存,Redis提供了配置参数maxmemory来限制内存超出期望大小。当实际内存超出maxmemory时,Redis提供了几种可选策略(ma...

2019-12-06 09:59:05 145

原创 spring定时任务详解(@Scheduled注解)

(一)在xml里加入task的命名空间xmlns:task=“http://www.springframework.org/schema/task”http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"(二)启用注解驱动的定时任务<ta...

2019-12-03 17:00:33 582

原创 Linux下yum安装redis

1、yum install redis --查看是否有redis yum 源[root@localhost logs]# yum install redisLoaded plugins: fastestmirrorbase ...

2019-12-02 09:15:20 171

原创 【笔记】Redis深度历险----核心原理与应用实战

为什么Redis先执行指令,之后在记录AOF日志,而不是像其他存储引擎一样反过来呢?因为Redis会在收到客户端修改指令后,进行参数校验、逻辑处理,如果没有问题,就立即将该指令文本存储到AOF日志中,也就是说,先执行指令才将日志存盘。如果反过来,则可能会存入很多无效的指令(或者错误指令)。...

2019-11-30 21:41:26 367 1

原创 rabbitmq和redis用作消息队列的区别

将redis发布订阅模式用做消息队列和rabbitmq的区别:可靠性redis :没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中;rabbitmq:具有消息消费确认机制,如果发布一条消息,还没有消费者消费该队列,那么这条消息将一直存放在队列中,直到有消费者消费了该条消息,以此可以保证消息的可靠消费;实时性redis:实时性...

2019-11-29 14:50:13 104

原创 线上服务器CPU占用率高如何排查定位

查看占用cpu高的进程top如下图:可看出PID为11866的java进程占用cpu最高,查看进程中最耗cpu的子线程top -Hp 11866如下图:可看出PID为7166的线程占用cpu最高,达到了97.7%将最耗cpu的线程id转换为16进制输出printf "%x \n" 11902查询具体出现问题的代码位置jstack 11866 | grep 2e7e -...

2019-11-26 13:25:06 653

原创 Java设计模式之单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。...

2019-11-25 13:54:52 72

原创 【笔记】Redis深度历险-------使用HyperLogLog 数据结构进行估数(JAVA)

HyperLogLog 数据结构进行估数,用于统计 如计算网页每天的用户的访问数量UV, 可以解决很多精度要求不是很高的统计问题package com.ryz2593.happy.study.redis;import redis.clients.jedis.Jedis;/** * HyperLogLog 数据结构进行估数,用于统计 如计算网页每天的用户的访问数量UV * 可以解决很多精...

2019-11-25 11:08:54 113

原创 【笔记】Redis深度历险-------使用Redis来实现简单限流策略

问题描述限流的目的主要是控制用户行为,避免垃圾请求,比如在一些社区论坛中,用户的发帖,回复、点赞等行为都要严格受控。一般要严格限定某行为在规定时间内被运行的次数,超过了次数就是非法行为。对非法行为做相应的处理。一般在应用场景中,会限制用户的某个行为在规定的时间内只能允许发生N次。解决方案使用滑动时间窗口(定宽),只需要保留这个时间窗口,窗口之外的数据都可以砍掉。zset中的value没有什...

2019-11-25 10:46:14 195

原创 【笔记】Redis深度历险-------使用Redis中的zset(有序列表)实现延时队列 JAVA实现

延时队列可以通过Redis的zset(有序列表)来实现。将消息序列化成一个字符串作为zset的value这个消息的到期处理时间作为score然后用多个线程轮训zset获取到期的任务进行处理多个线程处理是为了保障可用性,万一挂了一个线程还有其他线程可以处理。package com.ryz2593.happy.study.redis;import com.alibaba....

2019-11-22 10:50:48 2075

原创 Redis的list数据结构 lpush、rpush、lpop、rpop等常用操作

lpush添加一个或多个元素插入到list的头部lpush key [values...]127.0.0.1:6379> lpush mylist java c++ c(integer) 3127.0.0.1:6379> lrange mylist 0 -11) "c"2) "c++"3) "java"lpop从 list 中删除并返回第一个元素lpop k...

2019-11-21 17:22:57 23411

转载 转载 九大Java性能调试工具,必备至少一款

转载 九大Java性能调试工具,必备至少一款 ...

2019-11-21 16:32:21 101

原创 【笔记】Redis深度历险-------redis分布式锁原理与实现

分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。分布式锁:线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(s...

2019-11-21 09:33:08 109

原创 调换List集合中任意两个元素的位置

调换任意类型列表中两个元素的位置,定义一个临时变量用户暂存数据,然后在调换元素swap()方法:public void swap(List<E> list, int pos1, int pos2) { //判断list是否为空 if (CollectionUtils.isEmpty(list)) { return; } ...

2019-11-19 16:57:52 6528 2

原创 mysql复制表结构以及数据,修改表名

mysql 复制表结构数据复制已有的一张表,结构相同,并将数据复制进去步骤:1. 创建表结构:create table tb_user_back like tb_user;2. 将表中数据插入到新表中:insert into tb_user_back select * from tb_user;...

2019-11-18 15:29:40 813

原创 实现生产者消费者模式的四种方式(Synchronized、Lock、BlockingQueue、Semaphore)

一、问题描述生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(Bounded-buffer problem),是一个多线程同步问题的经典案例。生产者生成一定量的数据放到缓冲区中,然后重复此过程;与此同时,消费者也在缓冲区消耗这些数据。生产者和消费者之间必须保持同步,要保证生产者不会在缓冲区满时放入数据,消费者也不会在缓冲区空时消耗数据。不够完善的解决方法...

2019-11-18 14:45:02 540

原创 Linux中统计文件中字符串出现的次数

如:统计邮件发送的次数。查询关键字 Email sent!grep 'Email sent!' admin-info.log | wc -l

2019-11-14 10:28:44 455

原创 mysql自增主键id的起始值设置

清空了test表中的全部数据,想让主键从1开始记录。修改test表,主键自增从1开始执行语句:alter table test AUTO_INCREMENT=1;然后再添加数据, id就是从1开始了。...

2019-11-13 08:46:50 463

原创 Spring常见面试题,附带详细答案----大厂面试必备

Spring IocSpring Ioc就是控制发转,是指创建对象的控制权的转移,以前创建对象的主动权和时机由我们自己把控的,而现在这种权利转移到spring容器中,并由容器根据配置文件去创建实例和管理各实例之间的依赖关系,对象和对象之间松散耦合,也利于功能的复用。DI依赖注入,和控制反转是同一个概念的不同角度的描述,即应用程序在运行时依赖Ioc容器来动态注入对象需要的外部资源。 最直观的表...

2019-11-02 22:29:48 188 1

原创 Spring-Data-JPA自定义Repository实现自定义sql查询

Spring Data JPA是Spring Data的一个子项目,它通过提供基于JPA的Repository极大的减少了JPA作为数据访问方案的代码量。结合Specification(规范)和自定义的Repository实现来定制一个自动模糊查询。即对于任意的实体对象进行查询,对象里面有几个值就查几个,当值为字符型时自动进行模糊查询,其余的类型使用自动等于查询,没有值就查询全部。(1)定...

2019-10-29 13:57:28 5380

原创 Synchronized面试常见知识点

### synchronized关键字最主要的三种使用方式的总结- **修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁**- **修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁** 。也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管ne...

2019-10-23 15:13:12 405

原创 IDEA "Library source does not match the bytecode for class"问题

Jar包更新后,报错信息:"Library source does not match the bytecode for class" 经检查,发现Jar内容还是旧版本的。  Jar包管理工具为Maven解决方案...

2019-10-22 17:05:21 955

原创 一次数据库无法连接问题解决(mysql)

公司一次断电之后,开发使用的mysql无法本地连接,通过Xshell连接到开发服务器上,启动mysql(service mysql restart)失败查看mysql的log[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.[ERROR] Fatal error: Ca...

2019-10-22 16:10:35 252

原创 MySQL通过.frm和.ibd恢复表结构和数据

此种情况适用于将表给误删了,然后在进行表结构和数据恢复在开发环境上将一个表给删除了MySQL中.frm文件:保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关。MySQL中.ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。1. 在一个可以正常使用的MySQL数据...

2019-10-22 16:04:52 724

转载 MySQL命令行导出数据库

MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录)2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令

2015-11-20 11:10:51 250

原创 android:layout_grovity="bottom" 不起作用

实现RadioGroup位于底部今天突然想学习一下android代码的编写,首先做一个位于底部的单选button类似的菜单栏,使用RadioGrou控件进行实现开始的时候代码<RadioGroup android:id="@+id/slrRadioGroup" android:layout_width="fill_parent" andr

2015-09-18 13:57:51 445 1

JDBC技术,连接数据库

建立与数据库管理系统的连接; 向服务器提交要执行的SQL语句

2012-10-14

java源代码查看工具

此工具可用来查看你下载的.rar .jar java源文件,使你能了解到java的运行原理,更好地掌握java.

2012-10-14

TSP c++实现

旅行商问题解决,c++实现办法,可以用的哦

2012-10-14

空空如也

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

TA关注的人

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