自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JavaDayUp

Java天天向上

  • 博客(264)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用virtualbox的NAT和host-only方式安装Linux虚拟机

我们经常需要在公司里面学习Linux系统,但是公司每一台电脑的IP都是网管分配的,所以在虚拟机上面安装不能使用桥连的方式,让虚拟机成为一台独立的机器。但是我们又需要学习Linux,虚拟机只需要满足以下要求:1、宿主机和虚拟机之间是互通的,虚拟机之间也是互通的。2、虚拟机可以上互联网3、同事的其他机器不能访问虚拟机要完成上面的目前我们需要使用NAT网络和host-only网络结合才能...

2019-05-31 15:08:21 222

转载 27、redis的使用注意问题

学习目标:1、简单总结一下redis的注意问题2、掌握主从搭建学习过程:1、时常关注swap:Redis设置合理的maxmemory,保证机器有20%~30%的闲置内存。修改/etc/sysctl.conf,设置vm.overcommit_memory=1,防止极端情况下,会造成fork失败,在前面安装redis时候说过了,这里旧不再啰嗦了。如果Linux>3.5...

2019-04-26 11:23:54 333

转载 26、RedisCluster的java客户端

学习目标:1、Spring 配置文件整合Redis的Cluster模式2、Spring Boot整合Redis的Cluster模式学习过程:redis的Cluster的链接方式非常简单,比哨兵模式还要更简单一下。直接看配置文件就可以了,这里就不罗嗦了。一、Spring 使用配置文件整合 Redis Cluster<?xml version="1.0" encodin...

2019-04-26 11:23:44 1090

原创 25、Redis的Cluster常用命令

学习目标:1、了解Redis的Cluster的原理2、掌握Redis的Cluster的搭建学习过程:一、常用命令1、进入集群客户端,注意我们要加入-c,否则就不是进入集群模式,我们可以登陆任何一台redis服务器[root@localhost src]# redis-cli -c -h 192.168.137.101 -p 7379192.168.137.101:73...

2019-04-26 11:23:37 1034

原创 24、RedisCluster集群的搭建

学习目标:1、了解Redis的Cluster的原理2、掌握Redis的Cluster的搭建学习过程: Redis Cluster是Redis的集群实现,内置数据自动分片机制,集群内部将所有的key映射到16384个Slot中,集群中的每个Redis Instance负责其中的一部分的Slot的读写。集群客户端连接集群中任一Redis Instance即可发送命令,当Red...

2019-04-26 11:23:28 188

原创 23、Java客户端Sentinel的配置

学习目标:1、了解Sentine机制的原理2、掌握Sentine的搭建学习过程:一、直接使用JRedis的实现Sentine 上一节课说到使用Sentine可以自动完成主从切换,客户端的代码不需要修改,以实现高可用性,所以连接redis的客户端代码需要修改,我们只需要直接连接Sentine集群就可以了,不需要连接redis服务了 JRedis直接使用J...

2019-04-26 11:23:15 1946

原创 22、哨兵Sentinel机制

学习目标:1、了解Sentine机制的原理2、掌握Sentine的搭建学习过程: 上一节我们讲到redis的主从配置并不能保证高可用性,仅仅只配置了主从服务器,如果主服务器挂了,那么需要客户端改变连接地址为从服务器才行,在生产环境肯定不可能的,需要实现主从自动切换,可达到高可用的目标。需要结合sentinel监控多个Redis服务,如果主服务器挂了,通过选举重新选举新的...

2019-04-26 11:23:07 507

原创 21、Redis的主从同步

学习目标:1、了解主从配置的原理2、掌握主从搭建学习过程: 和mysql类似,redis也可以做主从服务器同步的功能,主从服务器的使用场景可以做读写分离,在写数据时使用主服务器,读时使用从服务器,这样就可以减轻服务器的压力。但是仅仅使用主从配置,并不能保证高可用性。如果主服务器挂了,客户端并不会自动选择从服务器的。虽然数据还是在从服务器,并没有丢失,但是事实上客户端已经...

2019-04-26 11:22:41 152

原创 20、ShardedJedis客户端分片

学习目标:1、使用JRedis的客户端分片2、掌握Spring Boot整合Redis的客户端学习过程: 如果需要缓存的内容很多,单台服务器的内存不够,那么我们可以使用两台Redis服务器,使用客户端的分片技术,可以自动根据Key分布到Redis服务器中。 ShardedJedis是通过一致性哈希来实现分布式缓存的,由客户端通过把不同的key通过一致性哈希,计算...

2019-04-25 21:05:30 264

原创 19、redis的其他常用命令

学习目标:1、了解Redis的常用命令2、能在工作中灵活使用这些命令学习过程: 前面我们已经学习了很多redis的操作数据的命令了,redis还有其他很操作命令,在redis运行中,你想知道redis目前的运行其你赶快,比如有多个个客户端连接服务器,redis占用了多少内容,目前集群的环境,主从同步的情况,需要重启服务器,需要立即持久化数据等。1、info命令info...

2019-04-25 21:05:21 166

原创 18、管道 (Pipeline)

学习目标:1、了解管道 (Pipeline)2、掌握管道 (Pipeline)在客户端中的应用学习过程:管道 (Pipeline)有点类似sql中的批处理,客户端每一个request请求命令发出后,这时候客户端会阻塞,等待redis服务端的返回响应报文给客户端。如果一次需要执行的命令很多,那么效率就会很低了,由客户端把所有的命令打包,一并发送给redis服务端,这样就只是一次网络请...

2019-04-25 21:04:01 426

原创 17、Redis-Cell限流算法

学习目标:1、了解限流算法2、了解Redis-Cell的限流的使用学习过程:一、redis-cell命令有很多业务场景需要做限流,比如有些论坛一分钟只能发表10份文章,如果每一次都要获得当前时间,再去数据库查询,效率是非常慢的,Redis提供了一个外部模块redis-cell,可以非常简单的实现限流。和bloom filter布隆过滤器一样需要额外安装。先登陆官网网址htt...

2019-04-25 21:03:54 2869

原创 16、bloom filter布隆过滤器

学习目标:1、了解bloom filter布隆过滤器2、掌握bloom filter布隆过滤器在redis中的使用学习过程: HyperLogLog只能作为统计使用,如果我们需要判断一个值是否存在,那么需要使用布隆过滤器了。布隆过滤器的功能就是用来快速判断一个元素是否出现在给定集合中的重要工具,而且比哈希表更节省空间。缺点和HyperLogLog一样,有一定的误识别率,它可...

2019-04-25 20:52:42 961 2

原创 15、HyperLogLog统计基数

学习目标:1、了解HyperLogLog作用2、掌握redis对HyperLogLog的命令的支持学习过程:一、了解HyperLogLog算法基数估算时大数据应用场景中最常见的一应用,比如如果我们需要统计一天内的独立用户数,一个用户在可能会多次的访问,但是我们不需要重复的累计,最后统计的数量只要误差不太大就行了,那么我们是否需要记录每一个用户呢,事实上我们需要获得的时用户数即可...

2019-04-25 20:52:35 260

原创 14、位图的使用

学习目标:1、了解Redis对位图的操作命令2、了解位图的应用学习过程:计算机基础我们都学习过:一个字节(Byte)等于8个位(bit),一个英文字母可以由字节(Byte)表示,Redis支持直接操作位(bit),redis的操作位的命令主要有1、GETBIT key offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。当 offset 比字...

2019-04-25 20:52:26 425

原创 13、Redis的GeoHash支持

学习目标:1、了解GeoHash 算法2、掌握redis对GeoHash的命令的支持学习过程:一、了解GeoHash 算法地图上一般是使用经度和纬度两个维度来唯一的确定一个点,而geohash采用经纬度二维值转为一维的值。只需要对一个字段进行索引,提高性能、降低复杂度,可转成可排序,可比较的字符串,满足灵活的需求,具体的GeoHash的说明可以参考维基百科。https://...

2019-04-25 20:52:18 592

原创 12、Scan扫描所有key

学习目标:1、了解Scan的使用2、掌握Scan和JRedis的Scan的使用学习过程: 在生产环境中经常需要查看某些key的值,已获取其对应的value,也经常需要查看又那些大key,影响了性能,在前面我们学习了keys 命令,可以通过模糊查询获得对应对应的所有的key,如果生产环境的key很多,那么keys * 会很慢,因为redis是单线程的,这个keys 命令会导致...

2019-04-25 20:52:10 2591

原创 11、redis的应用--消息队列的使用

学习目标:1、Java封装的发布和订阅2、Java封装的List作为消息队列的使用学习过程: 在ActiveMQ中可以分为广播模式和点对点模式,广播模式所有的监听者都可以收到消息,二点对点模式也可以有多个消费者,但是一条消息只能让一个消费者消费。使用redis也可以实现上面两种场景,前面也已经介绍过redis的发布订阅模式,和List数据类型的使用,这节课我们使用Jav...

2019-04-25 20:51:40 253

原创 10、redis的java客户端实现

学习目标:1、了解Spring整合Redis的连接2、掌握RedisTemplate的基本使用学习过程: 本节课我们使用Spring 整合Redis,Redis使用单机模式,下一节课我们使用Spring Boot整合Redis,配置更简单一点。 1、先导入基本的Spring的依赖,支持Redis需要在导入以下的依赖<dependency>&l...

2019-04-18 10:11:03 182

原创 9、redis的持久化策略

学习目标:1、了解Redis的持久化的使用1、掌握Redis的持久化的配置学习过程: Redis是内存数据库,所以在服务器重启或者断电时,内存数据肯定会丢失,对于某些应用来说这是不可接收,例如如果使用Redis作为订单号的生成器,每一次都会逐次增1,如果断电重启后,订单号必须能够接着增1,而不是从0开始。所以Redis有必要持久化数据。当然如果你的业务仅仅只是用于简单的缓存,...

2019-04-18 10:06:50 602

转载 8、Redis的事务

学习目标:1、了解Redis的事务的特性2、了解Redis的事务的使用学习过程: 事务的原理是先将属于一个事务的命令发送给redis ,然后再让 redis 依次执行这些命令,在redis中,事务的作用就是在一个队列中一次性、顺序性、排他性的执行一系列的命令。事务的生命周期: 事务的创建:使用MULTI开启一个事务 加入队列:在开启事务的时候,每次操作的命...

2019-04-18 10:06:35 142

原创 7、Redis的发布和订阅

学习目标:1、了解Redis的类型介绍2、了解各种类型的基本使用学习过程:一、发布订阅简介Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。Redis发布订阅和专业的MQ对比还是有些问题的。 Redis发布订阅与ActiveMQ的比较:(1)ActiveMQ支持多种消息协议,包括AMQP,MQT...

2019-04-18 10:06:19 188

转载 6、redis丰富的数据结构支持(2)

4、Set(无序集合) Redis的Set是string类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。sadd 命令添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。sadd key member实例127.0.0.1:6379> sadd myse...

2019-04-18 10:05:53 127

转载 5、redis丰富的数据结构支持(1)

学习目标:1、了解Redis的类型介绍2、了解各种类型的基本使用学习过程: Redis强大之处就是在于其丰富的数据类型。Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。1、String(字符串) string是redis最基本的类型,一个key对应一个valu...

2019-04-18 10:05:10 266

原创 4、Redis的基本操作使用

学习目标:1、了解Redis的基本命令介绍学习过程:1、赋值与取值 set key value 赋值 get key 取值重点是这个set 值SET key value [EX seconds] [PX milliseconds] [NX|XX]将字符串值 value 关联到 key 。如果 key 已经持有其他值, SET 就覆写旧值...

2019-04-18 10:04:58 272

原创 3、Redis的安装

学习目标:1、了解Redis的window的安装2、了解Redis的linux的安装学习过程:一、window的安装 前面说过Redis 没有官方的Windows版本,但是微软开源技术团队(Microsoft Open Tech group)开发和维护着Window的版本。 https://github.com/MicrosoftArchive/redis...

2019-04-18 10:04:42 154

转载 2、Redis的介绍

学习目标:1、了解Redis的基本知识2、了解Redis的使用场景学习过程:一、Redis的简介 大家可以看一下Redis的官网的介绍 https://redis.io/ Redis 是一个开源(BSD许可)的,使用ANSI C语言编写,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Re...

2019-04-18 10:04:13 214

原创 1、本地缓存GuavaCache的使用

学习目标:1、了解缓存的作用2、了解Guava对缓存的操作方法学习过程:一、为什么需要缓存 缓存需要消耗一些内存空间达到提升速度的功能。如果一些数据需要多次的访问,缓存起来效率会高很多,但是也要注意所以如果一条数据不需要多次的访问,也就没有缓存起来,因为这样会消耗内容,还有就是缓存存放的数据总量不会超出内存容量,如果大量占用了内存也会导致系统变慢的。 还需要考虑的...

2019-04-18 10:03:38 526

原创 45、Spring整合Struts2

学习目标:1、掌握Spring整合Struts2学习过程:整合完成jdbc后,下面我们就整合一下struts2这个mvc框架,虽然spring本身也提供了一个spring MVC框架,不过使用struts2的人还是很多的,所以spring也对struts2进行了支持,你会体验到spring确实是一个很轻量级的框架,它不会对struts2有很大的影响,甚至你感觉不到spring的存在,只...

2019-01-03 21:38:06 119

原创 44、Spring整合JDBC

学习目标:1、Spring整合JDBC2、掌握JdbcTemplate的使用学习过程:昨天我们讲过spring的一个特点是“不要重复发明轮子”。由于java世界里,对一些问题已经有很多非常好用的第三方技术了,spring一般不会重新开发一个,但是spring作为一个容器需要整合这些技术,所有知识简单的整合了这些技术,把他们封装到spring的容器里面,使得这些技术更加好用,所有sp...

2019-01-03 21:33:20 166 2

原创 43、Spring的Bean组件

学习目标:1、深入了解Bean组件的定义2、了解Bean组件的作用域学习过程:所有的组件都需要在配置文件中配置,这样配置文件岂不是很庞大,而且项目中很多组件,组件之间的依赖关系也很多,这样写起来也很麻烦,这节课我们就讲几个小技巧,简化一下我们的工作。另外所有组件都是从容器中取得,这样每个组件是不是都是同一个呢,有没有其它的配置方式呢?一、导入外部文件在真实项目中会有很多组件...

2019-01-03 17:00:25 555

原创 42、spring的核心模块

学习目标:1、了解Spring的架构2、了解Spring的核心模块3、掌握Spring容器的概念学习过程:一、Spring的核心模块   Spring由7个核心模块,各个模块可以独立存在,也可以联合使用。入下图:1、Spring Core:核心容器提供了Spring的基本功能。核心容器的核心功能是用Ioc容器来管理类的依赖关系.Spring采用的模式是调用者不理会被...

2019-01-03 16:45:26 188

原创 41、spring入门

学习目标:1、了解Spring的历史2、了解DI和IOC等基本概念学习过程:这节课我们先把spring的相关概念简单的说一下,spring的概念比较多,而且比较复杂,可能一时不能理解,但是在后面的不断学习中,大家就知道,spring的概念虽然很难理解,但是spring是使用是非常简单的,所以大家千万不要给这节课的这些概念吓着了。后面就会慢慢喜欢上spring的了。一、sprin...

2018-12-23 15:26:20 221

原创 40、动态sql和物理分页

学习目标:1、条件查询的实现,使用动态sql2、理解逻辑分页和物理分页3、掌握物理分页的基本写法学习过程:一、动态sql在学习jdbc和hibernate的时候,我们在实现条件查询的时候都是采用sql(hql)查询语句拼接的方式,那么下载使用mybatis由于所有的sql语句都是写在映射文件里面的,如何实现动态的条件查询功能呢个?这里我们就要学习一些mybatis的动态sq...

2018-12-21 19:59:52 706

原创 39、增删改查示例

学习目标:1、mybatis的基本的操作学习过程:如果上一节课没有问题,那么mybatis的开发环境就已经搭建好了,由此可知,mybatis不仅仅是一个对象映射,同时还可以映射sql语句,还可以做一个参数映射,mybatis还是需要写原始的sql语句的。下面我们就把增删改查等基本功能都完成了。1、修改映射文件GoodsMapper.xml,实现增删改查功能,代码如下:&lt;...

2018-12-21 19:56:13 243

原创 38、mybatis介绍和框架搭建

学习目标:1、搭建mybatis环境2、理解mybatis的运行流程3、能正确运行mybatis的第一个例子学习过程:一、MyBatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet...

2018-12-21 19:50:32 147

转载 37、批处理

学习目标:1、搭建Hibernate的批处理2、搭建Hibernate的注解使用学习过程:一、批处理有个客户提供个了大量数据,需要导入到数据库中,要用什么方法才能提高导入的效率呢?我们可以看看三种实现方法。对比它们之间的效率。实现代码如下:public class Run5 {    // 一般不要这样做    public void addEmployees1(L...

2018-12-21 19:45:04 149

原创 36、hibernate的二级缓存

学习目标:1、搭建Hibernate环境2、理解Hibernate的运行流程3、能正确运行Hibernate的第一个例子学习过程:一、hibernate的二级缓存缓存可以分为多个级别,如我们前面学习的一级缓存即Session缓存,二级缓存需要显式配置才可启用。使用二级缓存时,与一级缓存不同的Hibernate并不提供二级缓存,而是由第三方提供,二级缓存一般将对象存放在内存中...

2018-12-21 19:40:17 154

原创 35、分页和统计查询

学习目标:1、理解hql的统计查询2、理解hql的分页查询3、掌握criteria的使用学习过程:分页算法以前对我们来说比较难,尤其是不同数据的分页算法也不同,比较麻烦,但是hibernate对分页进行了封装,使用hibernate的分页只需要设置两个函数的值就可以了,而且hibernate还可以根据不同的方言转换成为不同数据库的分页算法。一、hibernate的分页查询的...

2018-12-20 20:43:10 477

原创 34、参数查询和关联查询

学习目标:1、掌握使用hql的参数查询方式学习过程:一、参数查询1、使用?在条件查询中我们查询条件都是通过方法的参数设置的,为了提高安全性,我们很少使用字符串拼接的方式,所以在学习jdbc的时候我们使用PreparedStatement,然后使用?进行代参的方式,Query和PreparedStatement有点类似,也是支持这种方式的。同时hql也支持想大于,等于或者in等等...

2018-12-20 20:36:03 248

myplugs.zip

myplugs.zip

2021-10-21

空空如也

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

TA关注的人

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