学习笔记
养猫还是养狗?
这个作者很懒,什么都没留下…
展开
-
Redis目录
最近看了一套redis视频,感觉挺好的,正好将基础整理了一下,光看很多东西忘得很快,在redis里手敲了一遍,想着在这记下来,以后如果有忘了的可以翻一下:原视频地址:https://www.bilibili.com/video/av59604203/?spm_id_from=333.788.videocard.3CAP原理和BASE:https://blog.csdn.ne...原创 2019-12-31 09:41:07 · 695 阅读 · 2 评论 -
Redis——redis.conf配置文件
Units单位: 1k和1kb不是一个值,只支持bytes,不支持bit ,对单位的缩写大小写不区分INCLUDES 包含: 类似于Struts配置文件类,通过includes包含配置一些文件配置,redis.conf作为总闸,包含其他NETWORK 网络: ...原创 2019-12-31 09:35:36 · 1453 阅读 · 0 评论 -
JedisAPI
jedisPoolUtils:package com.oarage.common.basedata.redis;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;/** * @author:qsc *...原创 2019-12-31 08:25:55 · 152 阅读 · 0 评论 -
Redis——主从复制
主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/saver机制,master以写为主,Slave以读为主主要做读写分离和容灾备份配置方式: 1 配从不配主 2 从库配置:slaveof +主机IP+ 主机端口:每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件 用In...原创 2019-12-31 08:25:26 · 141 阅读 · 0 评论 -
Redis——事务
事务:可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序额地串行化的执行而不会被其他命令插入,不许加塞,是在一个队类中,一次性的顺序的,排他性的执行一系列命令常用命令:discard:取消事务,放弃执行事务块内的所有命令exec:执行所有事务块内的命令multi:标记一个事务块的开始unwatch:取消watch命令对所有可以的监控watch...原创 2019-12-31 08:24:24 · 142 阅读 · 0 评论 -
Redis持久化——aof
aof:以日志的形式来记录每个写瞬间,将Redis执行过的所有写操作记录下来(读操作不记录),只许追加文件但不可改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写治理从前到后执行一次以完成数据的恢复工作。aof保存的是appendonly.aof文件 默认关闭:yes打开aof持久化 ...原创 2019-12-30 08:52:42 · 289 阅读 · 0 评论 -
Redis持久化——rdb
rdb是在指定的时间间隔内内存中的数据集快照写入磁盘,也就是常说的Snapshot快照,它恢复时是将快照文件直接读到内存里. Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再将这个临时文件替换上次持久化好的文件,整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模的数据恢...原创 2019-12-30 08:52:30 · 158 阅读 · 0 评论 -
Redis——zset
在set基础上,加一个socre值,作为分数,一般来做游戏中的天梯,排行版等之前set是k1 v1 v2 v3 ,现在zet是k1 socre v1 socre v2 socre v3zadd+key的名字+socre+ v1 +socre +v2+ socre +v3:插入 例:zadd zset1 60 v1 70 v2 80 v3 100 v4zrange+key...原创 2019-12-30 08:51:48 · 473 阅读 · 0 评论 -
Redis——hash
KV模式不变,但V是一个键值对 K,K_Vhset+key的名字:插入到hash中 例:hset user id 1hget +key的名字:获取hash 例:hget user idhmset+key的名字+kv+kv...:一次插入多个到hash中 例:hmset customer id 1 name 张三 age 25hmget+...原创 2019-12-30 08:51:03 · 122 阅读 · 0 评论 -
Redis——set
sadd+key的名字:set中插入值 例sadd set1 1 1 2 2 3 但是set是不允许重复的,因此,只会插入1 2 3smembers +key的名字:查询set集合元素sismember+key的名字+值:查询set集合中是否存在值,存在返回1,不存在返回0scard+key的名字:获取集合中的元素个数screm key的名字+值:删除集合中的元素sran...原创 2019-12-30 08:49:54 · 107 阅读 · 0 评论 -
Redis——List
lpush+key的名字+值+值....:单key多值,增加一个列表 例:lpush list1 1 2 3 4 5lrange+key的名字+数字(第几位)+数字(第几位):查询范围 ,例:lrange list1 0 -1 查询全部 结果为 5 4 3 2 1rpush+key的名字+值+值....:单key多值,增加一个列表 例:rpush list21 2 3 4 ...原创 2019-12-30 08:48:58 · 140 阅读 · 0 评论 -
Redis——String
set +key的名字+值:插入一个字符串 set key1 v1get+key的名字:得到一个字符串 get key1 返回 v1del +key的名字:删除append +key的名字+值:将key的值与后面的值拼接起来 如 append key1 123 ,然后get key1,返回为v1123strlen+key的名字 :返回key的长度in...原创 2019-12-30 08:47:18 · 154 阅读 · 0 评论 -
Redis键——Key常用
keys *:获取所有keyexists +key的名字:判断某个key是否存在,存在则返回1,不存在则返回0move +key的名字+db(数据库):将key移到某个库,当前库就没有了expire +key的名字+数字(代表多少秒):为给定的key设置过期时间,到期后该key自动移除ttl +key的名字:查看还有多少秒过期:返回-1表示永不过期,-2表示已过期,其他数字表示还有...原创 2019-12-30 08:46:47 · 168 阅读 · 0 评论 -
Redis 杂项
redis是一个单进程处理客户端的请求,是通过对linux的epoll函数包装来做到的,redis的实际处理速度完全依靠于主进程的效率。 Epoll是linux内核为处理大批量文件描述而作了改进的epoll,是linux下多路复用IO接口select/poll的增强版本,他能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。默认16个数据库,类...原创 2019-12-30 08:46:26 · 153 阅读 · 1 评论 -
CAP原理和BASE
传统的ACID为原子性(Atomicity),一致性(Consistency),独立性(Isolation),持久性(Durability)CAP:强一致性(Consistency),可用性(Availability),分区容错性(Partition tolerance)由于当前网络硬件肯定会出现延迟丢包的问题,所以其中分区容忍性是必须要实现的CAP原理3进二:CA:单点集群,满...原创 2019-12-31 08:23:40 · 161 阅读 · 0 评论 -
SpringCloud入门学习
@RestControllerpublic class Member { public List<String> getMemberAll(){ List<String> listUser=new ArrayList<>(); listUser.add("zhangsan"); listUser.ad...原创 2019-06-11 18:29:38 · 385 阅读 · 0 评论 -
SpringCloud 断路器(Hystrix)
SpringCloud入门:https://blog.csdn.net/weixin_43844810/article/details/91452562为什么需要 Hystrix?在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用(RPC)。为了保证其高可用,单个服务又必须集群部署。由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调...原创 2019-06-12 11:13:08 · 271 阅读 · 0 评论 -
Redis学习笔记
简介 Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value 数据库。数据类型 Redis 的 key 是字符串类型,但是 key 中不能包括边界字符,由于 key 不是边界安全的字符串,所像"my key"和"mykey\n" 这样包含空格和换行的 key 是不允许的。...原创 2019-07-15 09:37:05 · 98 阅读 · 0 评论 -
Spring核心技术
看看视频,整理一哈文档:什么是Spring可以解决对象创建以及对象之间依赖关系的一种框架Spring提供了一站式解决方案: 1) Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系 2) Spring Web Spring对web模块的支持。 ...原创 2019-05-18 16:12:49 · 293 阅读 · 0 评论 -
Socket简单模拟tcp与Udp客户端服务端
网络模型图:应用层,传输层,网络层,链路层 什么是Socket?Socket就是为网络服务提供的一种机制。通讯的两端都有Sokcet网络通讯其实就是Sokcet间的通讯数据在两个Sokcet间通过IO传输。TCP与UDP在概念上的区别:udp: a、是面向无连接, 将数据及源的封装成数据包中,不需要建立...原创 2019-05-07 09:08:39 · 1601 阅读 · 0 评论 -
Zookeeper实现负载均衡原理以及实现选举策略
使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点。客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器。Maven依赖: <dependencies> <dependency> <gr...原创 2019-06-13 15:31:41 · 545 阅读 · 0 评论 -
Zookeeper实现分布式锁
什么是多线程多线程为了能够提高应用程序的运行效率,在一个进程中有多条不同的执行路径,同时并行执行,互不影响。什么是线程安全当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。解决办法使用同步代码块或者Lock锁机制,保证在多个线程共享同一个变量只能有一个线程进行操作什么是Java内存模...原创 2019-06-13 15:19:28 · 237 阅读 · 0 评论 -
并发队列
先进先出(FIFO):先插入的队列的元素也最先出队列,类似于排队的功能。从某种程度上来说这种队列也体现了一种公平性。 后进先出(LIFO):后插入队列的元素最先出队列,这种队列优先处理最近发生的事件。 在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继...原创 2019-04-30 10:15:35 · 1570 阅读 · 0 评论 -
线程池原理解析
为什么要创建线程池?项目中经常创建,启动销毁线程是非常耗时的,使用线程池去进行管理,提高程序效率。什么是线程池?Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线...原创 2019-05-05 09:55:03 · 127 阅读 · 0 评论 -
java反射机制
反射机制:就是正在运行动态获取当前的类的所有信息。类不用new,使用java的反射机制帮助去初始化,类私有属性可以使用反射机制去赋值核心:获取当前类的class文件。反射机制的作用:提高程序的扩展性,封装一些工具类,写框架如何禁止java的反射机制?将类的构造函数私有化应用场景:SpringIoc,jdbc连接驱动,框架创建一个User类:packag...原创 2019-05-05 16:20:28 · 92 阅读 · 0 评论 -
NIO编程概述
什么是NIO?Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。Java NIO: Channels and Buffers(通道和缓冲区)标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓...原创 2019-05-07 16:30:59 · 175 阅读 · 0 评论 -
跨域解决方案&&防止表单提交
跨域原因产生:其实就是浏览器安全机制,在当前域名请求网站中,默认不允许通过ajax请求发送其他域名,浏览器会无法返回结果。也就是a项目页面访问b项目服务:前端代码(a项目的前端):<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DO...原创 2019-05-14 16:42:38 · 877 阅读 · 0 评论 -
垃圾收集算法
什么是垃圾回收机制?jvm不定时清理堆内不可达对象。(不再经常使用的对象)需要知道两个概念,引用计数法和可达性分析https://blog.csdn.net/weixin_43844810/article/details/856775961标记清除算法首先标记出所要回收的对象,在标记完成后统一回收,他的标记过程就是通过可达性分析算法或引用计数算法判断对象是否是不可用的。(老年代...原创 2019-01-03 10:51:12 · 102 阅读 · 0 评论 -
JVM参数调优参数配置以及使用IDEA对jvm参数修改测试分析
在虚拟机运行的过程中,如果可以跟踪系统的运行状态,那么对于问题的故障排查会有一定的帮助,为此,在虚拟机提供了一些跟踪系统状态的参数,使用给定的参数执行Java虚拟机,就可以在系统运行时打印相关日志,用于分析实际问题。我们进行虚拟机参数配置,其实就是围绕着堆、栈、方法区、进行配置,也就是参数调优。堆的参数配置:-XX:+PrintGC 每次触发GC的时候打印相关日志-XX:+U...原创 2019-05-09 11:55:16 · 872 阅读 · 0 评论 -
java并发包(jdk1.5之后)
1同步容器类Vector和ArayList: ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不...原创 2019-04-30 09:59:39 · 376 阅读 · 0 评论 -
多线程线程安全总结
什么是线程安全问题?答:当多个线程共享同一个全局变量,当作写操作的时候,可能会受到其他线程干扰,导致数据误差,这种现象叫做线程安全问题。做读的时候,不会产生线程安全问题例:package com.example.demo.thredDemo;/** * @author:qsc * @date: 2019/4/26 * @time: 14:56 * @Describe:...原创 2019-04-26 17:06:11 · 174 阅读 · 0 评论 -
多线程入门总结
应用程序:可以执行的软件进程:多个线程的集合。进程中有多个不同的执行命令,进程是正在运行中的程序在进程中,代码的执行顺序受主线程影响(main),因为主线程的线程优先级较高线程:执行某一特定操作的路径,是执行逻辑的最小单位,每个线程之间互不影响,是自己在独立运行多线程:为了提高程序的效率。 注:多线程下载并不提高宽带速度,而只是程序的效率,(断点续传会提高宽带速度)多线程的...原创 2019-04-25 16:18:06 · 95 阅读 · 0 评论 -
Zookeeper入门学习
什么ZookeeperZookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过...原创 2019-06-13 15:09:42 · 207 阅读 · 0 评论 -
定时任务以及分布式任务调度平台XXLJob
什么是定时任务指定时间去执行任务Java实现定时任务方式:Thread: public class Demo01 { static long count = 0; public static void main(String[] args) { Runnable runnable = new Runnable()...原创 2019-06-06 16:10:01 · 579 阅读 · 0 评论 -
nginx简介
什么是nginx?nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。作用:集群(提高吞吐量,减轻单台服务器压力),反向代理(不暴露真实IP地址),虚拟服务器,静态服务器(动静分离)。解决跨域问题,使用nginx搭建企业级api接口网关反向代理服务器:Nginx、lvs、F5(硬件)、haproxynginx应用场景1、ht...原创 2019-05-30 16:56:57 · 981 阅读 · 0 评论 -
Spring事务
事务的概述⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设用户A...原创 2019-05-18 16:21:25 · 110 阅读 · 0 评论 -
Http协议总结
什么是Http协议对客户端和服务器端之间数据传输的格式规范简称为“超文本传输协议”。什么是Http协议无状态协议?怎么解决Http协议无状态协议?无状态到底是什么?转(对无状态解释的很清楚):https://www.cnblogs.com/bellkosmos/p/5237146.html(1)、无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息(...原创 2019-05-13 11:06:47 · 583 阅读 · 0 评论 -
MySQL优化详解
MySQL如何进行优化?1.表的设计合理化(符合3NF)2.添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]3.SQL语句优化4.分表技术(水平分割分表、垂直分割分库)5.读写[写: update/delete/add]分离6.存储过程 [模块化编程,可以提高速度]7.对mysql配置优化 [配置最大并发数my.ini, 调整缓...原创 2019-05-17 09:55:37 · 432 阅读 · 0 评论 -
通过反射获取和设置对象私有字段的值
package com.oarage;import java.lang.reflect.Constructor;import java.lang.reflect.Field;/** * @author:qsc * @date: 2019/5/15 * @time: 15:28 * @Describe: */public class ReflectionUtil { ...转载 2019-05-15 15:32:37 · 1354 阅读 · 0 评论 -
编程实现文件拷贝&&统计给定文件中给定字符串的出现次数
package com.oarage;/** * @author:qsc * @date: 2019/5/15 * @time: 15:11 * @Describe: */import java.io.*;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;public final class M...转载 2019-05-15 15:31:29 · 387 阅读 · 0 评论