- 博客(21)
- 资源 (12)
- 收藏
- 关注
原创 分布式锁的实现- zookeeper
大家好,我是飓风上一遍文章分布式锁的实现- mysql互斥性超时特性提供阻塞和非阻塞接口可重入性公平锁和非公平锁其他 高性能 高可用等今天咱们来看看用zookeeper 怎么来实现分布式锁。zookeeper分布式锁的实现方式共同创建临时节点的方式,会引起“惊群”效应,并发量不能太高临时顺序接的方式,只会监听上一个顺序节点,性能会很高。
2022-09-02 19:18:08
725
原创 分布式锁的实现- mysql
大家好,我是飓风,今天我们来聊聊分布式锁的原理、以及基于 mysql 怎么来实现分布式锁。那么大家现在能不能想一想,分布式锁的使用场景都有哪些呢?下面我列举一些分布式锁的场景:记住一点,一定是在分布式的环境下,所以肯定是多个服务,或者多个进程来操作一个共享资源。扣减库存订单支付,检查订单是否进行了重复支付的操作缓存击穿/缓存雪崩,防止大并发对 DB 的操作。......
2022-08-26 08:06:24
2607
原创 08-Redis 【哨兵挂了,redis 还能正常工作吗?】
大家好,我是飓风上一篇07-主从复制,我们聊了redis的主从复制的原理,并没有说redis的故障转移,也就是redis主挂掉了,怎么将请求转移到从上去,如果从是多个,从是怎么进行选举的呢?那么就要看我们今天的主角了,redis哨兵,redis哨兵能够帮助我们自动的完成选主和故障转移操作,这次还是会多画图,来加深大家都这个过程的记忆和理解。...
2022-08-02 09:35:32
1020
原创 07-Redis【Redis主从复制,终于有人讲明白了】
大家好,我是飓风前面的04和05我们探讨了redis的持久化,虽然redis在down机之后,能够靠持久化机制,来恢复数据,之后就可以进行正常的请求了,当时从down掉到恢复这段时间里,服务是不可用的,那么redis是怎么实现高可用的故障转移呢?那怎么实现高可用呢?主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。一个主节点可以有多个从节点,但一个从节点只能有一个主节点。...
2022-08-01 09:13:52
739
原创 06-Redis 高频面试题 缓存的【雪崩-击穿-穿透】不为人知的秘密
大家好,我是飓风前面的文章我们主要聊了一些redis的基础知识,一直没有实战或者实际中遇到的问题,大家会枯燥无味些,今天我就来聊聊实战。缓存雪崩缓存击穿缓存穿透相信这三个问题,网上已经有很多的伙伴讲过了,但是今天我还是想说下,会多画图,让大家加深印象,这三个问题也高频的面试题,但是能把这几个问题说清楚,也是需要技巧的。再说这三个问题的时候,先说下正常的请求流程,看图说话上图的意思大致如下今天我们聊了redis缓存的高频的面试和实战中遇到的问题以及解决方案。缓存雪崩限流。...
2022-07-28 15:30:40
200
原创 05-Redis 持久化之RDB 的奥秘
RDB是RedisDataBase的缩写。RDB中文我们称之为内存快照【RDB文件是经过压缩的二进制文件,占用空间很小】,也就是记录redis某一时刻的内存中的全部数据,将这个时刻的数据持久化到磁盘,实际有多少数据就存储多少,而不是像AOF那样,同样的key,操作多次,会有多条记录,都会持久化到AOF中。所以要时刻记住,RDB记录的是某一时刻的内存数据,不是操作的记录,所以在恢复的时候,直接加载数据到内存,而不是执行操作记录恢复,所以恢复速度会很快。什么是RDB?RDB的生成过程RDB缺点。...
2022-07-28 15:16:08
299
原创 04-Redis 持久化AOF你真的了解吗?
今天聊了aof日志持久化的方式,文件内容是什么,以及写入磁盘的三种策略,每种策略的对redis的性能和数据可靠性都有影响,Aways、EverySecond、No性能逐次提高,可靠性逐渐降低,具体使用要看自己对数据的实际需求。还有就是aof重写,fork子进程是会阻塞redis操作线程的,copyonwrite如果遇到大页也会增加阻塞redis操作线程的时间。手动发送“bgrewriteaof”指令,通过子进程生成更小体积的aof,然后替换掉旧的、大体量的aof文件。配置文件配置自动触发。...
2022-07-28 14:15:34
243
原创 03-Redis 凭什么这么快
今天学习了redis快的原因,节下来我们来总结下。Redis是纯内存数据库,相对于读写磁盘,读写内存的速度就不是几倍几十倍了,一般,hash查找可以达到每秒百万次的数量级。Redis采用了单线程的模型(io解析和读写操作由一个线程来完成),保证了每个操作的原子性,也减少了线程的上下文切换、公共资源锁的开销与竞争。redis采用IO多路复用,“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路I/O复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗)。,......
2022-07-28 09:52:38
295
原创 02-Redis 哈希表的门道
redis为了实现所有key、value的快速访问,redis使用了一个哈希表来保存所有key、value的对应关系。所谓的哈希表,就是一个很大的数组,数组内的每个元素,称为哈希桶。一个key过来,我们只需计算这个key的hash值就可以定位到桶的位置(具体的hash散列算法这里不深入研究,计算完hash值,可以对桶的个数取模就得到数组index)。哈希桶内保存并不是值本身,而是key、value的指针。key就是String,value就可以是任何redis的数据类型了。...
2022-07-26 09:55:05
915
原创 01-Redis 数据类型你知道的不止这些
大家好,我是飓风。今天咱们来聊聊redis 的数据类型。 我们以问答的方式来开始今天的知识。 角色介绍: 小明 => 学生 飓风 => 老师 小明正在上大二,是个勤奋努力的小伙,最近正在学习redis相关的知识,官网、博客文章全部搜罗一遍,感觉自己信心满满,于是便去找了飓风老师讨教一番。 小明兴致勃勃的来到老师办公室。 小明:飓风老师,我最近学习了redis,redis 真的太强大了,数据类型丰富,能够适应我很多应用场景。 ...
2021-07-20 09:30:16
339
3
原创 00-Redis 你真的了解吗?
大家好 ,我是飓风redis是大家用的非常广泛的分布式缓存系统,我相信大家都能熟练的去使用它,因为他有丰富的数据类型供我们去使用,以及主从模式、哨兵模式、集群模式、持久化等丰富功能。但是你知道:- 数据类型的底层数据结构是什么吗?- 什么样的场景应该选择什么数据类型?- 为什么要这么选择?- redis 快速的原因是什么?- redis 为什么要采用单线程?- reids 都包含哪些线程?各自的职责是什么?- redis 持久化的原理是什么?持久化会影响redis性能吗?- red...
2021-07-20 08:54:35
129
原创 利用freemarker 静态化网页
1、介绍-FreeMarker是什么 模板引擎:一种基于模板的、用来生成输出文本的通用工具 基于Java的开发包和类库 2、介绍-FreeMarker能做什么 MVC框架中的View层组件 Html页面静态化 代码生成工具 CMS模板引擎 页面栏目动态定制3、介绍-为什么要用FreeMa
2011-11-03 16:09:48
107842
6
原创 自己动手实现IOC和MVC-----目录
自己动手实现IOC和MVC自己动手实现IOC和MVC(一)自己动手实现IOC和MVC(二)自己动手实现IOC和MVC(三)自己动手实现IOC和MVC(四)自己动手实现IOC和MVC(五)自己动手实现IOC和MVC(六)自己动手实现IOC和M
2011-09-28 18:12:53
2255
2
原创 自己动手实现IOC和MVC(一)
最近看了一下spring ioc的源码 觉得很有意思 ,于是就想自己也实现一个ioc试试的想法 ,接着就有了现在这个自己动手实现IOC和MVC。spring3 ioc的实现是基于java annotation 或者xml配置的 ,现在大多数的人越来越喜欢annotation了
2011-09-28 18:06:03
4246
原创 自己动手实现IOC和MVC(二)
上一节介绍了一些spring基本知识 和 实现ioc的思路 ,下面按照整个思路一步步来完成咱们自己的ioc framework在instance你annotation的class和inject属性的时候,首先你要扫描的你配置的package以及package子包下的所有cla
2011-09-28 18:05:53
2335
原创 自己动手实现IOC和MVC(三)
上一节中可以扫描指定package以及子package下的所有class了,这一节我们会介绍怎么收集和整理这些扫描到得class的信息这时候我们整理我扫描到得的class的信息并将其赋值给我们自己定义的一个class问题如下: ①怎么定义扫描到class的信息的类呢?
2011-09-28 18:05:42
2038
原创 自己动手实现IOC和MVC(四)
现在我要进行实例化的信息都收集起来,然后进行实例化了问题?①怎么进行实例化? 这时候我要用到我们收集的class的信息类的List,进行循环 ,然后利用java反射机制进行实例化操作 下面一段伪代码: List beanDefinitions =
2011-09-28 18:05:33
2154
原创 自己动手实现IOC和MVC(五)
下面介绍几个工具类会在项目中用到① BeanUtils.java 对java反射中操作的一些封装package com.ajunframework.beans.utils;import java.lang.reflect.Constructor;import j
2011-09-28 18:05:21
1965
原创 自己动手实现IOC和MVC(六)
下面来对现在ioc做的简单测试UserDao.java 模拟数据库的操作package com.ajun.test.dao;import com.ajunframework.beans.annotation.Dao;@Daopublic class User
2011-09-28 18:05:12
1481
原创 自己动手实现IOC和MVC(七)
相信大家都用过struts或者spring mvc这样的mvc框架,先来介绍一下mvc吧,MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通
2011-09-28 18:04:56
2411
原创 自己动手实现IOC和MVC(八)
来对上一节实现的mvc做个测试吧首先dao层PersonDao.java.这里做一些假数据package com.ajun.ts.dao;import java.util.ArrayList;import java.util.List;import com.
2011-09-28 18:04:46
1688
java 图片上传系统 common-fileUpload
2011-07-27
利用java filter 实现业务异常拦截源码
2011-10-15
自己动手实现IOC和MVC源码
2011-09-29
基于Lucene的搜索系统 同时使用Paoding进行中文分词
2011-08-01
redis java客户端 jedis
2011-08-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人