自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ajun_studio的专栏

--------------------得意淡然,失意坦然;喜而不狂,忧而不伤--------------------

  • 博客(83)
  • 资源 (12)
  • 收藏
  • 关注

原创 分布式锁的实现- zookeeper

大家好,我是飓风上一遍文章分布式锁的实现- mysql互斥性超时特性提供阻塞和非阻塞接口可重入性公平锁和非公平锁其他 高性能 高可用等今天咱们来看看用zookeeper 怎么来实现分布式锁。zookeeper分布式锁的实现方式共同创建临时节点的方式,会引起“惊群”效应,并发量不能太高临时顺序接的方式,只会监听上一个顺序节点,性能会很高。

2022-09-02 19:18:08 649 1

原创 分布式锁的实现- mysql

大家好,我是飓风,今天我们来聊聊分布式锁的原理、以及基于 mysql 怎么来实现分布式锁。那么大家现在能不能想一想,分布式锁的使用场景都有哪些呢?下面我列举一些分布式锁的场景:记住一点,一定是在分布式的环境下,所以肯定是多个服务,或者多个进程来操作一个共享资源。扣减库存订单支付,检查订单是否进行了重复支付的操作缓存击穿/缓存雪崩,防止大并发对 DB 的操作。......

2022-08-26 08:06:24 2517

原创 08-Redis 【哨兵挂了,redis 还能正常工作吗?】

大家好,我是飓风上一篇07-主从复制,我们聊了redis的主从复制的原理,并没有说redis的故障转移,也就是redis主挂掉了,怎么将请求转移到从上去,如果从是多个,从是怎么进行选举的呢?那么就要看我们今天的主角了,redis哨兵,redis哨兵能够帮助我们自动的完成选主和故障转移操作,这次还是会多画图,来加深大家都这个过程的记忆和理解。...

2022-08-02 09:35:32 818

原创 07-Redis【Redis主从复制,终于有人讲明白了】

大家好,我是飓风前面的04和05我们探讨了redis的持久化,虽然redis在down机之后,能够靠持久化机制,来恢复数据,之后就可以进行正常的请求了,当时从down掉到恢复这段时间里,服务是不可用的,那么redis是怎么实现高可用的故障转移呢?那怎么实现高可用呢?主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。一个主节点可以有多个从节点,但一个从节点只能有一个主节点。...

2022-08-01 09:13:52 624

原创 06-Redis 高频面试题 缓存的【雪崩-击穿-穿透】不为人知的秘密

大家好,我是飓风前面的文章我们主要聊了一些redis的基础知识,一直没有实战或者实际中遇到的问题,大家会枯燥无味些,今天我就来聊聊实战。缓存雪崩缓存击穿缓存穿透相信这三个问题,网上已经有很多的伙伴讲过了,但是今天我还是想说下,会多画图,让大家加深印象,这三个问题也高频的面试题,但是能把这几个问题说清楚,也是需要技巧的。再说这三个问题的时候,先说下正常的请求流程,看图说话上图的意思大致如下今天我们聊了redis缓存的高频的面试和实战中遇到的问题以及解决方案。缓存雪崩限流。...

2022-07-28 15:30:40 140

原创 05-Redis 持久化之RDB 的奥秘

RDB是RedisDataBase的缩写。RDB中文我们称之为内存快照【RDB文件是经过压缩的二进制文件,占用空间很小】,也就是记录redis某一时刻的内存中的全部数据,将这个时刻的数据持久化到磁盘,实际有多少数据就存储多少,而不是像AOF那样,同样的key,操作多次,会有多条记录,都会持久化到AOF中。所以要时刻记住,RDB记录的是某一时刻的内存数据,不是操作的记录,所以在恢复的时候,直接加载数据到内存,而不是执行操作记录恢复,所以恢复速度会很快。什么是RDB?RDB的生成过程RDB缺点。...

2022-07-28 15:16:08 202

原创 04-Redis 持久化AOF你真的了解吗?

今天聊了aof日志持久化的方式,文件内容是什么,以及写入磁盘的三种策略,每种策略的对redis的性能和数据可靠性都有影响,Aways、EverySecond、No性能逐次提高,可靠性逐渐降低,具体使用要看自己对数据的实际需求。还有就是aof重写,fork子进程是会阻塞redis操作线程的,copyonwrite如果遇到大页也会增加阻塞redis操作线程的时间。手动发送“bgrewriteaof”指令,通过子进程生成更小体积的aof,然后替换掉旧的、大体量的aof文件。配置文件配置自动触发。...

2022-07-28 14:15:34 196

原创 03-Redis 凭什么这么快

今天学习了redis快的原因,节下来我们来总结下。Redis是纯内存数据库,相对于读写磁盘,读写内存的速度就不是几倍几十倍了,一般,hash查找可以达到每秒百万次的数量级。Redis采用了单线程的模型(io解析和读写操作由一个线程来完成),保证了每个操作的原子性,也减少了线程的上下文切换、公共资源锁的开销与竞争。redis采用IO多路复用,“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路I/O复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗)。,......

2022-07-28 09:52:38 220

原创 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 794

原创 将博客搬至CSDN

将博客搬至CSDN

2022-07-24 19:36:11 14

原创 01-Redis 数据类型你知道的不止这些

大家好,我是飓风。今天咱们来聊聊redis 的数据类型。 我们以问答的方式来开始今天的知识。 角色介绍: 小明 => 学生 飓风 => 老师 小明正在上大二,是个勤奋努力的小伙,最近正在学习redis相关的知识,官网、博客文章全部搜罗一遍,感觉自己信心满满,于是便去找了飓风老师讨教一番。 小明兴致勃勃的来到老师办公室。 小明:飓风老师,我最近学习了redis,redis 真的太强大了,数据类型丰富,能够适应我很多应用场景。 ...

2021-07-20 09:30:16 203 3

原创 00-Redis 你真的了解吗?

大家好 ,我是飓风redis是大家用的非常广泛的分布式缓存系统,我相信大家都能熟练的去使用它,因为他有丰富的数据类型供我们去使用,以及主从模式、哨兵模式、集群模式、持久化等丰富功能。但是你知道:- 数据类型的底层数据结构是什么吗?- 什么样的场景应该选择什么数据类型?- 为什么要这么选择?- redis 快速的原因是什么?- redis 为什么要采用单线程?- reids 都包含哪些线程?各自的职责是什么?- redis 持久化的原理是什么?持久化会影响redis性能吗?- red...

2021-07-20 08:54:35 88

原创 hadoop 2.2、 hbase0.94.18 集群安装

这里我们安装三台的集群:集群ip:192.168.157.132-134            master:192.168.157.132            slaves:192.168.157.133-134             hbase 依赖zookeeper自行安装。1、配置ssh 无密码 免登陆     1>安装ssh:132 、134、 1

2015-02-10 15:07:35 1377

原创 理解 java 内部类

1、内部类基础知识:一般定义在java类内部的类成为内部类内部类可以分为:定义在方法体外部的类、定义方法内部的类、静态内部类(只能定义在方法外部),匿名内部类说明:定义在方法外面的类:类的成员变量(静态、非静态)可以访问,为了保证能够正确的引用的类的成员变量,所以必须先实例化外部类的对象,才可以实例化内部类的对象访问权限可以任何,可以把它看成类的成员变量,这样理解就好多来了

2012-10-26 23:48:48 1593

原创 mysql 性能优化的几点建议

1、尽量取出自己想要的字段,不要这样select * from table   因为你取的越多,网络传输的数据就越多,从网络带宽和网络缓冲区上来看都是浪费。特别是在order,性能更是下降。,实现方式是先将需要排序的字段和可以直接定位到相关行数据的指针信息取出,然后在我们所设定的排序区(通过参数sort_buffer_size 设定)中进行排序,完成排序之后再次通过行指针信息取出所

2012-10-15 21:13:33 1399

原创 nginx windows 下安装和配置

下载地址:http://nginx.org/download/nginx-1.2.4.zip下载后直接解压到你的硬盘上,我的是d:\nginx启动nginxcd d:cd nginx-1.2.4start nginx查看任务任务管理器里面会有nginx的进程在浏览器输入http://127.0.0.1 此时会出现nginx的欢迎界面,说明启动nginx成功。We

2012-10-13 09:07:31 13949 1

原创 nginx 设置本地浏览器缓存文件

浏览器缓存(Browser Caching) 是为了加速浏览并节约网络资源,浏览器在用户磁盘上对最近请求过的文档进行存储。nginx可以通过 expires 指令来设置浏览器的Header语法: expires [time|epoch|max|off]默认值: expires off作用域: http, server, location使用本指令可以控制HT

2012-10-11 21:26:11 6593

原创 nginx gzip压缩

使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。主要在nginx服务端将页面进行压缩,然后在浏览器端进行解压和解析,目前大多数流行的浏览器都迟滞gzip格式的压缩,所以不用担心。默认情况下,Nginx的gzip压缩是关闭的,同时,Nginx默认只对text/html进行压缩主要配置如下: gzip on;#开启 gzip_http_version 1

2012-10-11 20:52:33 6819 1

原创 TUSCANY SCA JAVA (五) 用其他脚本语言实现组件服务

先来看看整个项目的代码架构com.ajun.tuscany.server包主要是加减乘除法的java接口和计算器接口和计算器实现类。com.ajun.tuscany.script主要是用脚本语言来实现加减乘法服务功能。com.ajun.tuscany.client客户端调用。server包主要代码:IAdd.javapackage com

2012-07-26 22:08:31 1902

原创 TUSCANY SCA JAVA (四) 引用RMI服务

在 TUSCANY SCA JAVA (三)中是将计算器作为一个RMI服务进行绑定,对外提供进行访问的,还有一种情况是如果所需要的功能在外界已经做好了,并以RMI开放供外界访问,那么tuscany如何引用呢?有这么一个例子,如果计算器的功能在外界已经实现好了,并以RMI开放供外界访问,来看看怎么进行引用。来看下图:从图中可以看出计算器组件 引用是指向了RMI服务端,并且提升为计

2012-07-25 22:30:54 2705

原创 TUSCANY SCA JAVA (三) 绑定为RMI服务

在TUSCANY SCA JAVA (二)中所实现的计算机中所有的访问都是本地,生成的所有构件,调用构件都是在本地tuscany容器中进行的,下面我来进行远程调用,这才是tuscany的真正长处所在。我们还是利用TUSCANY SCA JAVA (二)中的代码,只需要修改和.composite文件和增加一个服务端和客户端的类就可以进行测试了。在这里我们计算器构件绑定为RMI服务,只续修改之

2012-07-23 22:39:29 4111

原创 TUSCANY SCA JAVA (二) 入门

准备工作: 开发工具:Eclipse,这里用的是eclipse-jee-juno-win32,你可以更新eclipse soa相关插件有利于以后的开发和可视化的操作tuscany  jar包,网址:http://tuscany.apache.org/sca-java-1x-releases.html下载第一个,解压出来,找到lib,全

2012-07-21 13:40:58 4840

原创 TUSCANY SCA JAVA SCA介绍(一)

SCA 面向组件(构件)的架构。(组件就是构件,二者是一个意思)  1、先了解下一些基本概念,有助于sca的学习  (1)构件:构件是SCA装配和表达业务功能的基本单元,他可以提供服务或者引用其他构件。  (2)实现:构件的实现要指出构件的功能具体是如何实现,如:java,C++,javascript等。  (3)接口:接口定义个1-n个业务功能,就是定义组件的多个操作,也就是方法

2012-07-21 11:57:20 2677

原创 Google protobuf for java 小试

Protocol buffers是一个用来序列化结构化数据的技术,支持多种语言诸如C++、Java以及Python语言,可以使用该技术来持久化数据或者序列化成网络传输的数据。相比较一些其他的XML技术而言,该技术的一个明显特点就是更加节省空间(以二进制流存储)、速度更快以及更加灵活。创建Person.proto文件message Person {     optional

2012-06-26 15:08:56 10658

原创 Spring3 rmi 实现

java rmi 实现起来非常麻烦,每个接口都要继承Remote  接口,实现这个接口的类还要继承 UnicastRemoteObject类,总之非常麻烦,关于java rmi的文章      http://damies.iteye.com/blog/51778。       Spring提供类用于集成各种远程访问技术。这种对远程访问的支持可以降低你在用POJO实现支持远程访问业务时的开发难度

2012-06-21 09:11:20 5595

原创 Redis windows 测试redis持久化功能

下载地址:servicestack.googlecode.com/files/redis-2.0.2.zip下载完之后解压到你磁盘上的,我的是F:\redis-2.0.2还需要在redis根目录增加一个redis的配置文件redis.conf,文件具体内容有:# Redis configuration file example# By default Redis does

2012-06-15 22:47:14 8413 1

原创 常用js 总结2 prototype

/***是否是邮编*str:要检测的字符串*/String.prototype.isPost=function(){ if(!this.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)){ return false; } return true;}/

2012-04-27 16:48:41 756

原创 利用 spring+freemarker 发送邮件

最近公司要用到给注册会员发送邮件的功能,这里采用spring+freemarker模板来发送邮件,其中模板可以自定义,欲了解freemarker请看我写的利用freemarker 静态化网页,里面介绍的很详细和怎么使用。在做本次试验之前需要spring相关的jar和freemarker.jar①定义发送邮件的模板demo.ftl你好${username}②发送邮

2012-03-13 10:51:19 7288 2

原创 nginx url 重写 实现伪静态

server { listen 80; server_name www.xxx.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://192.1

2012-03-12 15:01:44 4809

原创 利用Spring AOP 更新memcached 缓存策略的实现

对于网上关于memcached缓存更新策略 数不胜数,但是没有一遍完整的,看起来都很费劲,由于项目中用到的memcache,自然就想到了memcache缓存更新策略的实现。你可以把你更新缓存的代码嵌套你的代码中,但是这样很不好,混换了你service的代码,要是以后再换别的缓存产品,那么你还要每个类去找,去修改很是麻烦。由于之前是这样写的,很是痛苦,所以这次要用spring aop来实现。

2012-03-12 10:56:45 6591 3

原创 ehCache+spring的简单实用

1、最近在做一个贷款项目是城市分站的 分为贷款前台和贷款机构后台,这个两个平台的二级域名不一样,一个前台是cityname.xx.com,cityname是会地区的不同而变化的,如在北京就是bj.xx.com,机构后台是loan.xx.com,在机构登录的时候 ,如果把登录信息放在session,会有一个问题,就是当切换到前台的时候,由于域名改变了,此时session就会改变,之前session保

2012-02-17 14:58:17 4287 3

原创 利用freemarker 静态化网页

1、介绍-FreeMarker是什么     模板引擎:一种基于模板的、用来生成输出文本的通用工具     基于Java的开发包和类库    2、介绍-FreeMarker能做什么     MVC框架中的View层组件     Html页面静态化    代码生成工具    CMS模板引擎  页面栏目动态定制3、介绍-为什么要用FreeMa

2011-11-03 16:09:48 107403 77

转载 linux i18n修改,中文版英文版体现

From:http://blog.sina.com.cn/s/blog_607dece60100fe0b.html对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程

2011-10-21 09:59:39 1482

原创 利用java filter 实现业务异常拦截 跳转到错误信息提示页面

1、缘由:我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理机制,我们在业务层会跑出我们遇到业务处理异常 ,然后交由struts处理将提示信息到一个页面进行显示,来提示用户的相

2011-10-15 15:40:11 22014

原创 JavaScript OOP 思想

Javascript OOP思想整理一些网上的资料,供参考1.创建对象 1.1 new用new进行创建对象:var user = new Object();user.age = 12;//同时为对象添加属性user.name =

2011-09-30 13:39:52 3363 1

原创 自己动手实现IOC和MVC-----目录

自己动手实现IOC和MVC自己动手实现IOC和MVC(一)自己动手实现IOC和MVC(二)自己动手实现IOC和MVC(三)自己动手实现IOC和MVC(四)自己动手实现IOC和MVC(五)自己动手实现IOC和MVC(六)自己动手实现IOC和M

2011-09-28 18:12:53 2212 3

原创 自己动手实现IOC和MVC(一)

最近看了一下spring ioc的源码 觉得很有意思 ,于是就想自己也实现一个ioc试试的想法 ,接着就有了现在这个自己动手实现IOC和MVC。spring3 ioc的实现是基于java annotation 或者xml配置的 ,现在大多数的人越来越喜欢annotation了

2011-09-28 18:06:03 4152

原创 自己动手实现IOC和MVC(二)

上一节介绍了一些spring基本知识 和 实现ioc的思路 ,下面按照整个思路一步步来完成咱们自己的ioc framework在instance你annotation的class和inject属性的时候,首先你要扫描的你配置的package以及package子包下的所有cla

2011-09-28 18:05:53 2270 2

原创 自己动手实现IOC和MVC(三)

上一节中可以扫描指定package以及子package下的所有class了,这一节我们会介绍怎么收集和整理这些扫描到得class的信息这时候我们整理我扫描到得的class的信息并将其赋值给我们自己定义的一个class问题如下: ①怎么定义扫描到class的信息的类呢?

2011-09-28 18:05:42 1832

原创 自己动手实现IOC和MVC(四)

现在我要进行实例化的信息都收集起来,然后进行实例化了问题?①怎么进行实例化?  这时候我要用到我们收集的class的信息类的List,进行循环 ,然后利用java反射机制进行实例化操作  下面一段伪代码:   List beanDefinitions =

2011-09-28 18:05:33 2097

利用java filter 实现业务异常拦截源码

利用java filter 实现业务异常拦截 跳转到错误信息提示页面 我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理机制,我们在业务层会跑出我们遇到业务处理异常 ,然后交由struts处理将提示信息到一个页面进行显示,来提示用户的相关操作,这里我们会根据以上情景设计一下怎么来显示该功能

2011-10-15

自己动手实现IOC和MVC源码

在自己博客里自己动手实现IOC和MVC系列中的全部源码 http://blog.csdn.net/ajun_studio/article/details/6831241

2011-09-29

memcached 安装教程

介绍了memcache在centOs上的安装过程和遇到问题的解决办法

2011-09-02

redis server 安装过程 和参数配置 简单教程2

redis server 安装过程 参数配置 简单教程 参考资料

2011-08-19

redis java客户端 jedis

一个简单java客户端Jedis,大家可以到https://github.com/xetorthio/jedis这网址下载相关源码 这里对其进行一个简单封转 包括key valye set list hashset的封装

2011-08-18

基于Lucene的搜索系统-客户端调用

基于Lucene的搜索系统 同时使用Paoding进行中文分词一中 客户端调用

2011-08-12

redis server 安装过程 和参数配置 简单教程

介绍redis服务端的安装 参数配置,和一些简单命了的操作,和一些参考网站资源 ,很适合入门

2011-08-11

httpsqs server 安装过程

httpsqs 安装过程以及在安装过程中遇到错误的解决办法总结

2011-08-11

Httpsqs java客户端代码 很简单 很实用啊

主要是在调用存储在httpsqs消息队列中的消息 java客户端代码

2011-08-05

基于Lucene的搜索系统 同时使用Paoding进行中文分词

最近由于在做的电子商务网站,前台要频繁的进行搜索商品,列出符合条件的商品,由于商品数量之大,考虑到要用lucene来显示搜索功能,本文将通过一个简单的例子来告诉你lucene的实现和使用Paoding进行中文分词,当然这是个简单的例子不会包括商品的分类和规格相关属性的查询,主要帮助大家理解和怎么使用lucene进行搜索的实现。

2011-08-01

Jquery.jqzoom实现图片滚动和局部图片放大镜效果.rar

类似京东和淘宝的商品详细页 图片滚动和放大效果

2011-07-29

java 图片上传系统 common-fileUpload

利用common-fileUpload 封装的图片上传系统 ,内部提供了可配置的约束图片上传类型,图片上传路径、缓存路径等信息,透露了两个servlet供外部进行上传、删除图片。

2011-07-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除