- 博客(12)
- 资源 (7)
- 收藏
- 关注
原创 20191227 Redis监控和性能指标
1、Redis性能指标;2、Redis配置文件;通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息比较重要的2部分性能指标memory和stats。可以指定info命令的参数来获取单个分类下的数据。比如输入info memory命令,会只返回与内存相关的数据。1、内存使用率used_memoryused_me...
2019-12-27 18:27:08 415
原创 20191225 RedisCluster
RedisCluster原理整个缓存查询命中率。一致性Hash正是为了解决这个问题而出现的,该路由算法通过引入一个一致性Hash环,以及进一步增加虚拟节点层,来实现尽可能高的命中率。使用FNV1_32_HASH哈希算法来尽可能使key与节点分布得更加均匀,引入了虚拟节点,来做负载均衡。集群内部通信在redis cluster集群内部通过gossip协议进行通信,集群元数据...
2019-12-25 20:16:30 456
原创 20191220 CAS理论
CAS比较替换CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。CAS是一种非阻塞式的同步方式。乐观锁是一种思想。CAS是这种思想的一种实现方式。CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹...
2019-12-20 18:57:32 329
原创 20191220 使用Redis实现乐观锁
锁机制:乐观锁:1)通过版本号来实现,先查询获取版本号,在更新的时候校验版本号并修改。悲观锁:同步关键字就是悲观锁,也称为排它锁。乐观锁还让用户查询当前版本号,悲观锁如果不释放,查都不让查询。乐观锁存在多种实现方式:mysql数据库版本号,redis实现,CAS实现等。在并发情况下,使用锁机制,防止争抢资源。悲观锁是对数据的修改持悲观态度(认为数据在被修改的时候一定会...
2019-12-20 18:54:11 4967
原创 20191219 策略模式
策略模式:指的是对象具备某个行为,但是在不同的场景中,该行为有不同的实现算法。策略模式使用的就是面向对象的继承和多态机制,从而实现同一行为在不同场景下具备不同实现。策略模式本质:分离算法,选择实现。主要解决在有多种算法相似的情况下,使用 if...else 或 switch...case 所带来的复杂性和臃肿性。优点1)算法多样性,且具备自由切换功能;2)有效避免......
2019-12-19 15:34:14 158 2
原创 20191219 门面设计模式
门面设计模式外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。使用哪种设计模式属于详细设计。门面模式就是动里不动外,让外层好调用。使用门面设计模式。门面设计模式:网关聚合层;接口定义不动,只变化接口实现。单例模式:线程池;策略模式:支付接口;外部系统------>门面对象------>子系统。通过门面对象才能访......
2019-12-19 11:53:07 173
原创 20191206 linux常用命令
可用的memory=free memory+buffers+cached(可用内存的统计)如何查看linux系统的内存和cpu信息? 文件:cpuinfo,meminfo,或者直接top命令。如何查看正在运行的用户进程:进程名称,所占用端口号信息?netstat -ntlupgrep -C 10 1089676533 error-latest.log Linux下grep显...
2019-12-06 10:21:56 164
原创 20191205 swagger接口文档api完善
添加请求头,token信息,完善对框架的完善。自己打jar包让别人引用,慢慢进行封装。 @Bean public Docket customDocket(){ ParameterBuilder ticketPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<P...
2019-12-06 09:54:39 160
原创 20191114 分布式job调度中心
分布式job配置中心相当于注册中心,每个需要跑定时任务的微服务都需要自动或者手动注册到上面。管理后台执行器管理,任务管理,调度日志,可以查看某个job的执行状况。多个任务Handler,配置一个端口。一个执行器中可以包含多个Handler,把当前项目注册到分布式job管理中心,成为一个执行器。1)一个项目中包含多个Handler任务;一个执行器中可能会配置多个任务。每...
2019-12-06 09:52:25 722 1
原创 20191204 支付后端文档
JSAPI支付:公众号接入文档(支付系统对比.pdf 文档)商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时(公众号),可以调用微信支付完成下单购买的流程。立即支付---->确认支付---->支付成功调起微信支付控件,用户开始输入支付密码。密码验证通过,支付成功。商户后台得到支付成功的通知。返回商户页面,显示购买成功。该页面由商户自定义。微信支...
2019-12-04 17:01:00 494
原创 20191102 常见异步的手段
//一、使用线程池 ExecutorService executorService= Executors.newFixedThreadPool(5); executorService.submit(new Runnable() { @Override public void run() { ...
2019-12-02 18:31:46 200
原创 20191202 浅拷贝、深拷贝、原型模式
如图所示浅拷贝、深拷贝原型模式深拷贝和浅拷贝的区别(copy的是值还是引用)1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”java的传递类型:java传递的话只有值传递,不存在引用传递。浅拷贝(Sha......
2019-12-02 17:25:52 178
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人