- 博客(13)
- 收藏
- 关注
原创 redis缓存----hash一致性(ip一致性)
hash一致性就是一种无状态的均衡两次hash1.第一次hash:hash(ip):将服务器均衡的分布到一个环上;2.第二次hash:(hash(userId)):将用户均匀的分布到邻近的服务器上当服务器挂掉或者当增加新的ip后,会重新hash...
2018-09-28 15:35:51 476
原创 为什么使用redis?使用redis注意什么问题:
1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题主要的问题:(一)缓存和数据库双写一致性问题(二)缓存雪崩问题(三)缓存击穿问题(...
2018-09-28 15:29:28 1907
原创 redis分布式锁的实现
1.互斥性;2.不会发生死锁;3.具有容错性;4.解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了
2018-09-06 16:33:40 96
原创 ConcurrentLinkedQuene --------并发队列
/** * Alipay.com Inc. * Copyright (c) 2004-2018 All Rights Reserved. */package com.weigu.controller;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.CountDownLatch...
2018-09-04 16:41:36 354 1
原创 信号量----Semaphore
用于限制获取线程资源的数量 @Test public void test1() { //~~资源的次数 Semaphore semaphore = new Semaphore(3); for (int i = 0; i < 10; i++) { Parent parent = new Parent("第...
2018-09-04 16:41:02 67
原创 CyclicBarrier
应用场景:需要所有的子任务都完成时,才执行主任务,这个时候可以选用CyclicBarrier /** * await方法的目的是:等待所有需要加入的线程共同到达一个屏障点的时候才可以继续运行; * //如果将参数改为4,但是下面只加入了3个选手,这永远等待下去 */ CyclicBarrier barrier = new CyclicBarrier...
2018-09-04 11:49:32 139
原创 CountDownLatch并发容器----计数器
其实最重要的就两个方法:countDown()和await方法;同时一个线程只能调用countDown()方法或者await()方法,如果调用了await()方法,那么当前线程就阻塞,只能等到其他的线程调完以后才可以正常运行;即:count=0的时机public CountDownLatch(int count) { if (count < 0) throw new I...
2018-09-04 11:14:38 163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人