摘要: 比较redis、数据库、文件存token https://www.cnblogs.com/penglei-it/p/wx_yh.html 阅读全文
posted @ 2019-07-10 14:20 TangXinPing 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 实现分布式锁的几种方式: 数据库锁:性能不好,效率低。 Redis分布式锁(setnx):setnx存入key如果存入成功返回1,如果key已经存在返回0,只要谁创建key成功,谁就能获取到锁。redis执行完操作的时候删除key释放锁,如果删除失败,就释放锁失败了。所以最好的办法是给key设置有效 阅读全文
posted @ 2019-07-10 14:19 TangXinPing 阅读(215) 评论(0) 推荐(0) 编辑
摘要: AutoConfig加载 自己写代码加载 xml加载 使用这三种方式都需要: 1.添加依赖 2.写配置信息 spring.redis.database=0 spring.redis.host=localhost spring.redis.port=6379 # 连接超时时间 单位 ms(毫秒) sp 阅读全文
posted @ 2019-07-10 14:12 TangXinPing 阅读(10335) 评论(1) 推荐(0) 编辑
摘要: 如果只需要整合redis的单机版,只需要在redis.conf中进行如下配置: @Configuration @PropertySource("classpath:config/redis.properties") public class RedisConfig { @Value("${redis 阅读全文
posted @ 2019-07-10 14:06 TangXinPing 阅读(410) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/plei_yue/article/details/7936237 需要的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter 阅读全文
posted @ 2019-07-10 13:59 TangXinPing 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 1.String类型 用于在Redis中管理字符串的基本命令:(看了一半) 编号 命令 描述说明 1 SET key value 此命令设置指定键的值。 2 GET key 获取指定键的值。 3 GETRANGE key start end 截取指定部分的字符串。start可以从0开始。会包含在内, 阅读全文
posted @ 2019-07-10 13:48 TangXinPing 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1.Window和Linux系统下安装Redis: http://www.cnblogs.com/HoverM/p/9448699.html 2.Redis解压后目录: redis-server:redis服务器程序 redis-cli:Redis客户端程序,它是一个命令行操作工具。也可以使用tel 阅读全文
posted @ 2019-07-10 13:45 TangXinPing 阅读(126) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/shamo89/tag/redis/ 阅读全文
posted @ 2019-07-10 13:44 TangXinPing 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 1.NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是SQL"的意思,泛指非关系型的数据库。强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。 NoSQL产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。 2.R 阅读全文
posted @ 2019-07-10 13:44 TangXinPing 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 主要参考:https://www.cnblogs.com/zxf330301/p/6534643.html 阅读全文
posted @ 2019-07-10 12:01 TangXinPing 阅读(5527) 评论(0) 推荐(2) 编辑
摘要: https://www.cnblogs.com/geek6/p/3951677.html https://blog.csdn.net/zhangerqing/article/details/8194653 https://www.cnblogs.com/malihe/p/6891920.html j 阅读全文
posted @ 2019-07-10 11:58 TangXinPing 阅读(126) 评论(0) 推荐(0) 编辑
摘要: jdk8废除永久代迎来元空间。 永久带又叫Perm区,只存在于hotspot jvm中,并且只存在于jdk7和之前的版本中,jdk8中已经彻底移除了永久带,jdk8中引入了一个新的内存区域叫metaspace。 (1)并不是所有的jvm中都有永久带,ibm的j9,oracle的JRocket都没有永 阅读全文
posted @ 2019-07-10 11:55 TangXinPing 阅读(1350) 评论(0) 推荐(0) 编辑
摘要: 1.什么是JVM?3W1H 定义: jvm是一个虚构出来的计算机,是在实际的计算机上仿真模拟出各种计算机的功能来实现的。 有什么用: Java语言最重要的特点就是跨平台运行,Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,使用JVM就是为了支持与操作 阅读全文
posted @ 2019-07-10 11:54 TangXinPing 阅读(379) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/jjwwmlp456/article/details/72771849 阅读全文
posted @ 2019-07-10 11:50 TangXinPing 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 摘自:https://www.cnblogs.com/wangchuang/p/5737188.html 任务和线程的区别: 1、任务是架构在线程之上的,也就是说任务最终还是要抛给线程去执行。 2、任务跟线程不是一对一的关系,比如开10个任务并不是说会开10个线程,这一点任务有点类似线程池,但是任务 阅读全文
posted @ 2019-07-10 11:49 TangXinPing 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 死锁: 可以认为是两个线程或进程在请求对方占有的资源。 饿死:一个线程在无限地等待另外两个或多个线程相互传递使用并且用不会释放的资源。 出现以下四种情况会产生死锁: 1,相互排斥。一个线程或进程永远占有共享资源,比如,独占该资源。 2,循环等待。例如,进程A在等待进程B,进程B在等待进程C,而进程C 阅读全文
posted @ 2019-07-10 11:48 TangXinPing 阅读(4090) 评论(0) 推荐(0) 编辑
摘要: Callable和Runnable很类似,主要区别在于Callable能返回运行结果,能抛出异常。 执行Callable方式,需要Future的实现类的支持,用于接收运算结果。FutureTask是Future接口的实现类。 public class TestCallable { public st 阅读全文
posted @ 2019-07-10 11:47 TangXinPing 阅读(815) 评论(0) 推荐(0) 编辑
摘要: 其他理解: 不应该只把它当作一个传参工具,它本身是为线程安全和某些特定场景的问题而设计的。 诡异的ThreadLocal最难琢磨的是“作用域”,尤其是在代码设计之初非常乱的情况下,假设再添加很多ThreadLocal。系统就会逐渐变成神龙见首不见尾的情况。使用ThreadLocal,不要简单粗暴地多 阅读全文
posted @ 2019-07-10 11:46 TangXinPing 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 是什么:等工作来了就工作 为什么:启动线程是很花费时间的工作,ThreadPool将重复使用线程,资源再利用也作为主题之一。 1.用此模式时还可以如何优化: 1.1承载量(capacity): 简单来说就是worker与request的数量要如何去平衡。 worker多了,浪费内存,worker少了 阅读全文
posted @ 2019-07-10 11:44 TangXinPing 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 通过此练习了解了线程中run()方法没有参数如何传参。 可以看出程序使用了匿名内部类。 尝试一: 以为不就是把Helper类extendsThread每次创建一个它然后启动吗。 碰到瓶颈1: 线程中没有带参数的run方法(如果想要实现带参数的run方法:1、定义线程内变量2、在继承thread的时候 阅读全文
posted @ 2019-07-10 11:41 TangXinPing 阅读(151) 评论(0) 推荐(0) 编辑