<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[baomw的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/baomw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; baomw]]></copyright><item><title><![CDATA[谈谈redis缓存三大问题（三）- 缓存击穿]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103788699</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103788699</guid><author>baomw</author><pubDate>Wed, 08 Jan 2020 20:56:16 +0800</pubDate><description><![CDATA[首先还是先看下缓存击穿的一个基本概念]]></description><category></category></item><item><title><![CDATA[谈谈redis的过期删除策略与内存淘汰机制]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103890718</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103890718</guid><author>baomw</author><pubDate>Wed, 08 Jan 2020 17:40:58 +0800</pubDate><description><![CDATA[今天这边主要说说redis内存的过期删除策略与内存淘汰机制。]]></description><category></category></item><item><title><![CDATA[linux安装zookeeper详细步骤]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103835540</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103835540</guid><author>baomw</author><pubDate>Sat, 04 Jan 2020 21:00:31 +0800</pubDate><description><![CDATA[安装前首先当然是下载安装包了。我们进入，zookeeper官网： https://zookeeper.apache.org/releases.html
前提：由于zookeeper是使用java语言开发的，所以，在安装zookeeper之前务必先在本机安装配置好java环境！
1，找到下载链接，然后在linux中先下载所需安装包（我这边下载的是3.4.9版本）：
wget https://arch...]]></description><category></category></item><item><title><![CDATA[谈谈redis缓存三大问题（二）- 缓存雪崩]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103788696</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103788696</guid><author>baomw</author><pubDate>Sat, 04 Jan 2020 15:38:38 +0800</pubDate><description><![CDATA[今天抽时间和大家聊聊redis的雪崩以及redis集群的演变过程。]]></description><category></category></item><item><title><![CDATA[谈谈redis缓存三大问题（一）- 缓存穿透]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103788690</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103788690</guid><author>baomw</author><pubDate>Thu, 02 Jan 2020 11:27:33 +0800</pubDate><description><![CDATA[这几天抽时间和大家一起聊聊redis缓存在生产环境使用中的几大问题，以及如何去优化代码去避免他！

首先我们来看看缓存使用过程的一个问题：缓存穿透]]></description><category></category></item><item><title><![CDATA[谈谈redis的持久化机制]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103788684</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103788684</guid><author>baomw</author><pubDate>Wed, 01 Jan 2020 21:25:38 +0800</pubDate><description><![CDATA[说道redis的持久化机制，相信有经验的开发人员可能都知道，rdb，aof。但是不知道大家有没有仔细的去想过几个问题：]]></description><category></category></item><item><title><![CDATA[redis配置详解]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103789050</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103789050</guid><author>baomw</author><pubDate>Tue, 31 Dec 2019 22:03:03 +0800</pubDate><description><![CDATA[关于redis配置，详细解释如下：
# 配置大小单位,开头定义了一些基本的度量单位，只支持bytes，不支持bit  对大小写不敏感
# 1k =&gt; 1000 bytes
# 1kb =&gt; 1024 bytes
# 1m =&gt; 1000000 bytes
# 1mb =&gt; 1024*1024 bytes
# 1g =&gt; 1000000000 bytes
# 1gb =...]]></description><category></category></item><item><title><![CDATA[谈谈自定义注解及相关开发实践]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103721037</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103721037</guid><author>baomw</author><pubDate>Sat, 28 Dec 2019 14:28:49 +0800</pubDate><description><![CDATA[说道自定义注解，可能大家都不太陌生，实际开发过程中可能多多少少也会用到，今天这边就通过自定义注解结合反射，分享一些实际开发经验。
...]]></description><category></category></item><item><title><![CDATA[从源码角度聊聊spring中的FactoryBean]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/103728169</link><guid>https://blog.youkuaiyun.com/baomw/article/details/103728169</guid><author>baomw</author><pubDate>Sat, 28 Dec 2019 00:29:18 +0800</pubDate><description><![CDATA[说到spring，相信对于BeanFactory大家肯定都不陌生，百度上随便一搜，99都会说什么字如其意：bean工厂啊，容器，管理bean的。。。对于BeanFactory其实就是这样子的，这里我说的肯定没有别人好，这边就不一一赘述了。今天这边主要来谈谈FactoryBean。
先来看一个颠覆你三观的案例：
@Service
public class FactoryBeanTest implem...]]></description><category></category></item><item><title><![CDATA[spring中的事件编程模型]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/100280454</link><guid>https://blog.youkuaiyun.com/baomw/article/details/100280454</guid><author>baomw</author><pubDate>Thu, 26 Dec 2019 16:22:49 +0800</pubDate><description><![CDATA[最近一直忙于业务开发实现，很少有机会做一些技术沉淀，这可能对一个技术工作者来说，未必是一件好事。之前就一直想写一篇关于spring事件驱动模型相关技术博客，主要还是想给自己做一个技术总结，同时也好和大家做一做分享交流。]]></description><category></category></item><item><title><![CDATA[java获取某个月最后一天]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/101759217</link><guid>https://blog.youkuaiyun.com/baomw/article/details/101759217</guid><author>baomw</author><pubDate>Mon, 30 Sep 2019 11:15:02 +0800</pubDate><description><![CDATA[代码如下：
public static String getLastDayOfMonth(int year,int month)
    {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONT...]]></description><category></category></item><item><title><![CDATA[java8 stream的多字段排序（踩坑）]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/100916728</link><guid>https://blog.youkuaiyun.com/baomw/article/details/100916728</guid><author>baomw</author><pubDate>Tue, 17 Sep 2019 10:02:27 +0800</pubDate><description><![CDATA[关于java8 的stream排序用法这里不做多说，这里介绍下曾经在多字段排序时遇到过的一个坑。
需求：需要根据id去分组，然后取出每组中行号最大的一个对象值。
想到可以利用stream的多字段排序，先按id去排，再看行号去排，demo代码如下：
class Tt{
        private int id;

        private int line;

        public...]]></description><category></category></item><item><title><![CDATA[centos 开放端口]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/94388396</link><guid>https://blog.youkuaiyun.com/baomw/article/details/94388396</guid><author>baomw</author><pubDate>Mon, 01 Jul 2019 13:40:28 +0800</pubDate><description><![CDATA[（1）获取活动的区域
[root@baomw-centos1 run]# firewall-cmd --get-active-zones
（2）开启某个端口
[root@baomw-centos1 run]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
（3）使用命令加载设置
[root@baomw-centos1 run]...]]></description><category></category></item><item><title><![CDATA[docker容器常用操作]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/89705154</link><guid>https://blog.youkuaiyun.com/baomw/article/details/89705154</guid><author>baomw</author><pubDate>Tue, 30 Apr 2019 10:56:23 +0800</pubDate><description><![CDATA[输入 docker 可以查看Docker的命令用法，输入 docker COMMAND --help 查看指定命令详细用法。
运行容器
docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG
# --name 指定容器名，可自定义，不指定自动命名
# -i 以交互模式运行容器
# -t 分配一个伪终端，即命令...]]></description><category></category></item><item><title><![CDATA[docker镜像常用操作]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/89705072</link><guid>https://blog.youkuaiyun.com/baomw/article/details/89705072</guid><author>baomw</author><pubDate>Tue, 30 Apr 2019 10:54:02 +0800</pubDate><description><![CDATA[输入 docker 可以查看Docker的命令用法，输入 docker COMMAND --help 查看指定命令详细用法。
查找镜像
docker search 关键词
#搜索docker hub网站镜像的详细信息

下载镜像
docker pull 镜像名:TAG
# Tag表示版本，有些镜像的版本显示latest，为最新版本

查看本地镜像
docker images
# 查看本地所有镜像
...]]></description><category></category></item><item><title><![CDATA[fastjson的tostring输出null值问题]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/89643789</link><guid>https://blog.youkuaiyun.com/baomw/article/details/89643789</guid><author>baomw</author><pubDate>Sun, 28 Apr 2019 18:49:57 +0800</pubDate><description><![CDATA[大家在日常测试的时候，经常需要输出一个dto的具体key-value，如下图，当我们直接输出user对象时，发现输出的是只是对象的引用并没有输出我们想要的key-value值。

这里大家可能都知道使用fastjson转换成string输出，当然首先是引入fastjson的jar包
 
    &lt;dependency&gt;
        &lt;groupId&gt;com.alibab...]]></description><category></category></item><item><title><![CDATA[谈谈java8新特性Optional<T>]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/89554094</link><guid>https://blog.youkuaiyun.com/baomw/article/details/89554094</guid><author>baomw</author><pubDate>Fri, 26 Apr 2019 15:44:19 +0800</pubDate><description><![CDATA[java.lang.NullPointerException

相信对每一个java程序员来说都不陌生的，常常因为缺少一个判空导致系统各自通讯错误，异常。从java8开始，给我们提供了一个对象判空操作处理类Optional。

根据jdk8官方文档，可以知道，该根据类存在于java.util下的final类，也就是说是官方提供给我们的一个工具类。
当然首先我们来看下具体的使用方法：
 Option...]]></description><category></category></item><item><title><![CDATA[谈谈mysql locate函数]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/89398781</link><guid>https://blog.youkuaiyun.com/baomw/article/details/89398781</guid><author>baomw</author><pubDate>Fri, 19 Apr 2019 14:16:25 +0800</pubDate><description><![CDATA[大家都知道，当我们mysql需要使用模糊查询的时候，往往会使用like去做相关查询条件的模糊匹配，但是很多场景下，使用locate会获取同样的效果
create table user(
	id int primary key auto_increment,
	name varchar(18),
	description varchar(255)
) charset=UTF8;

select * ...]]></description><category></category></item><item><title><![CDATA[使用idea配置本地tomcat]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/89385952</link><guid>https://blog.youkuaiyun.com/baomw/article/details/89385952</guid><author>baomw</author><pubDate>Thu, 18 Apr 2019 19:22:25 +0800</pubDate><description><![CDATA[近期接手的项目，开发环境需要配置tomcat来做做项目启动，这边先总结下，idea中配置本地tomcat的详细过程。
1，下载tomcat，直接去apache官网或者csdn下载即可，tomcat下载不用安装，如果有需要直接改下本地server.xml配置即可，或者直接使用默认配置也是可以的，默认8080端口，这就不用多说了。
2，本地配置，点击右上角，Edit Configurations

3...]]></description><category></category></item><item><title><![CDATA[谈谈系统中的缓存预热-@PostConstruct]]></title><link>https://blog.youkuaiyun.com/baomw/article/details/89182777</link><guid>https://blog.youkuaiyun.com/baomw/article/details/89182777</guid><author>baomw</author><pubDate>Wed, 10 Apr 2019 17:09:07 +0800</pubDate><description><![CDATA[说起缓存，相信大家都不陌生，下面我们先看这张图

上图是一个最简单的应用系统业务流转模型，当一个客户端连接到server时，需要做数据访问，在server中会判断是否已经在缓存中，如果在则直接在缓存中拿出数据返回，由于缓存是在内存中的（比如redis，mongo，sping-cache等），不用大批量的跟数据库进行交互，避免了大量io操作，大大提高效率。
下面，我们来考虑一个问题，可以设想下如下场...]]></description><category></category></item></channel></rss>