<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[RAGACM的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/RAGACM</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; RAGACM]]></copyright><item><title><![CDATA[linux搭建redis超详细]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/140955061</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/140955061</guid><author>RAGACM</author><pubDate>Tue, 06 Aug 2024 15:44:04 +0800</pubDate><description><![CDATA[为了能够远程连接redis，修改bind 127.0.0.1 -::1为bind 0.0.0.0。为了启动redis服务的时候能以后台方式运行，修改daemonize no为yes。修改密码，foobared是密码，改成自己想要的。3、进入redis-7.0.11，依次执行。4、修改配置文件redis.conf。6、连接redis客户端。1、下载redis包。我以7.0.11为例。]]></description><category></category></item><item><title><![CDATA[mydumper和myloader对MySQL数据备份和恢复]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/137147565</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/137147565</guid><author>RAGACM</author><pubDate>Fri, 29 Mar 2024 16:33:41 +0800</pubDate><description><![CDATA[mydumper数据备份
myloader数据恢复]]></description><category></category></item><item><title><![CDATA[oracle触发器之DML行级触发器]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/132100643</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/132100643</guid><author>RAGACM</author><pubDate>Fri, 04 Aug 2023 11:35:31 +0800</pubDate><description><![CDATA[oracle数据库，DML行级触发器]]></description><category></category></item><item><title><![CDATA[java.sql.SQLException: ORA-28001: the password has expired]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/128718608</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/128718608</guid><author>RAGACM</author><pubDate>Tue, 17 Jan 2023 17:25:29 +0800</pubDate><description><![CDATA[保姆级教学，解决java.sql.SQLException: ORA-28001: the password has expired]]></description><category></category></item><item><title><![CDATA[Java代码实现RSA算法加密解密文件功能]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/127910828</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/127910828</guid><author>RAGACM</author><pubDate>Thu, 17 Nov 2022 22:03:04 +0800</pubDate><description><![CDATA[Java实现RSA算法加密解密文件]]></description><category></category></item><item><title><![CDATA[windows环境下Ngrok的下载和部署]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/122494380</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/122494380</guid><author>RAGACM</author><pubDate>Fri, 14 Jan 2022 15:27:05 +0800</pubDate><description><![CDATA[一、下载
1、进入这个网址：https://manager.xiaomiqiu.com/
2、进行注册和登录。

二、下载
登录进去之后，找到如图的地方进行下载。（我下的是64位的）

三、部署
1、找到“商品管理”下的“商品展示”，如下图，然后购买。
小米球注册版服务器----&gt;免费的。
实名认证服务-------------&gt;这个一定要买，不买不能用，才5毛，别不舍得。

2、找到“商品管理”下的“我的商品”，可以看到刚刚买的东西。

3、找到“系统管理”下的“账户管理”下的“我的账户”，把]]></description><category></category></item><item><title><![CDATA[Java代码实现DES算法加密解密功能]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/120342643</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/120342643</guid><author>RAGACM</author><pubDate>Fri, 17 Sep 2021 09:53:35 +0800</pubDate><description><![CDATA[一、概述
DES加密算法是一种对称加密，所谓对称加密就是加密和解密都是用同一把密钥。

二、详细代码
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
impor]]></description><category></category></item><item><title><![CDATA[建造者模式]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/118109917</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/118109917</guid><author>RAGACM</author><pubDate>Tue, 22 Jun 2021 17:53:12 +0800</pubDate><description><![CDATA[建造者模式基本介绍
1、建造者模式又叫生成器模式，是一种构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别)，使这个抽象过程的不同实现方法可以构造出不同表现（属性）的对象。
2、建造者模式是一步一步创建一个复杂的对象，他允许用户只通过指定复杂对象的类型和内容就可以构建他们，用户不需要知道内部的具体构建细节。
建造者模式的四个角色
1、Product(产品角色)：一个具体的产品对象。
2、Builder(抽象建造者)：创建一个Product对象的各个部件指定的接口/抽象类。
3、ConcreteBuild]]></description><category></category></item><item><title><![CDATA[装饰者模式]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/118100217</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/118100217</guid><author>RAGACM</author><pubDate>Tue, 22 Jun 2021 10:52:38 +0800</pubDate><description><![CDATA[装饰者模式的使用场景：
在不影响其他对象的情况下，以动态、透明的方式给单个对象添加职责。
需要动态地给一个对象增加功能，这些功能也可以动态地被撤销。
当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时。不能采用继承的情况主要有两类：第一类是系统中存在大量独立的扩展，为支持每一种组合将产生大量的子类，使得字类数目呈爆炸性增长；第二类是因为定义不能继承（入final类）
1、角色
1.1、抽象构建角色(Component)：定义一个对象接口或者抽象类，可以给这些对象动态地添加职责。
1.2、具]]></description><category></category></item><item><title><![CDATA[case when和decode]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/118085279</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/118085279</guid><author>RAGACM</author><pubDate>Mon, 21 Jun 2021 14:13:49 +0800</pubDate><description><![CDATA[select fieldname,newvalue,oldvalue from guEndorEndorTextDetail where ENDORNO = 'P131010128820210000074';


对newvalue和oldvalue做处理，当fieldName字段的值包含性别或证件类型的时候，把他对应的newvalue和oldvalue转换成中文。
select fieldname,case when fieldname like '%性别%' then decode(newvalue,']]></description><category></category></item><item><title><![CDATA[vue解决ie兼容问题]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/117334681</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/117334681</guid><author>RAGACM</author><pubDate>Thu, 27 May 2021 18:31:26 +0800</pubDate><description><![CDATA[首先找到babel.config.js文件，没有就建一个。

然后在里面写
module.exports = {
    presets:[
        [
        	'@vue/app',
        	{
            	useBuiltIns: 'entry'
        	}
        ]
    ]
}

之后找到main.js文件

在main.js文件的最上面一行加上
import '@babel/polyfill'

之后启动服务，不出意外的话为报下面的错]]></description><category></category></item><item><title><![CDATA[element ui el-tabs居中显示]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/116780228</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/116780228</guid><author>RAGACM</author><pubDate>Fri, 14 May 2021 09:47:40 +0800</pubDate><description><![CDATA[vue代码如下：
&lt;el-tabs v-model="activeName" @tab-click="handleClick" stretch&gt;
	&lt;el-tab-pane label="示例1" name="first"&gt;
		&lt;el-table 此处省略好多代码&gt;&lt;/el-table&gt;
	&lt;/el-tab-pane&gt;
	&lt;el-tab-pane label="示例2" name="second"&gt;
		&lt;el-table 此处]]></description><category></category></item><item><title><![CDATA[RestTemplate传值丢失问题]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/116534636</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/116534636</guid><author>RAGACM</author><pubDate>Sat, 08 May 2021 17:09:56 +0800</pubDate><description><![CDATA[使用RestTemplate传值并非是数据丢失，而是因为传的json格式，而接收方不写@RequestBody时，是无法接口到json格式的数据的。
@GetMapping(value = "/consumer/payment/create")
public CommonResult&lt;Payment&gt; create(Payment payment){
    return restTemplate.postForObject(PAYMENT_URL + "/payment/create",pay]]></description><category></category></item><item><title><![CDATA[@AllArgsConstructor注解和@NoArgsConstructor注解的作用]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/116533797</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/116533797</guid><author>RAGACM</author><pubDate>Sat, 08 May 2021 16:50:36 +0800</pubDate><description><![CDATA[@AllArgsConstructor和@NoArgsConstructor都是lombok中的注解,作用在类上;
@AllArgsConstructor使用后添加一个构造函数，该构造函数含有所有已声明字段属性参数
@NoArgsConstructor使用后创建一个无参构造函数

]]></description><category></category></item><item><title><![CDATA[maven-project-info-reports-plugin报红问题处理]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/116484685</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/116484685</guid><author>RAGACM</author><pubDate>Fri, 07 May 2021 11:01:40 +0800</pubDate><description><![CDATA[&lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
      &lt;artifactId&gt;maven-project-info-reports-plugin&lt;/artifactId&gt;
      &lt;version&gt;3.0.0&lt;/version&gt;
      &lt;type&gt;maven-plugin]]></description><category></category></item><item><title><![CDATA[poi  Excel  合并单元格、设置自定义背景色、对齐、设置边框、字体]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/115377759</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/115377759</guid><author>RAGACM</author><pubDate>Sat, 03 Apr 2021 10:38:32 +0800</pubDate><description><![CDATA[HSSFWorkbook wb = new HSSFWorkbook();

//创建一张表
Sheet sheet = wb.createSheet("好家伙表");

//设置列宽
sheet.setColumnWidth(0,3766);
sheet.setColumnWidth(1,3766);
sheet.setColumnWidth(2,3766);
sheet.setColumnWidth(3,3766);
sheet.setColumnWidth(4,3766);
sheet.setColu]]></description><category></category></item><item><title><![CDATA[vue 判断字符串是否为json格式，json字符串格式化]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/114702284</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/114702284</guid><author>RAGACM</author><pubDate>Fri, 12 Mar 2021 19:04:26 +0800</pubDate><description><![CDATA[判断字符串是否为json格式和格式化我写在一起了
js代码：
aaa(){
	//判断字符串是否为json格式
	try{
		var obj = JSON.parse(this.jsonString)
		if(typeof obj == 'object' &amp;&amp; obj){
			//对字符串进行格式化展示
			var nbsp = "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"
			var num = 0
			var jsonend = ""
]]></description><category></category></item><item><title><![CDATA[vue el-table-column数据折行后超长部分展示...]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/114589783</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/114589783</guid><author>RAGACM</author><pubDate>Tue, 09 Mar 2021 17:20:07 +0800</pubDate><description><![CDATA[&lt;el-table :data="tableData" style="width: 100%"&gt;
      &lt;el-table-column prop="XXX" label="操作时间" /&gt;
      &lt;!--  省略好几行无用代码  --&gt;
      &lt;el-table-column prop="prompt" label="提示信息" width:"300px"&gt;
	  	&lt;template slot-scope="scope"&gt;
	]]></description><category></category></item><item><title><![CDATA[redis面试题：过期策略、内存淘汰机制]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/114173263</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/114173263</guid><author>RAGACM</author><pubDate>Sat, 27 Feb 2021 14:20:40 +0800</pubDate><description><![CDATA[redis的过期策略
定期删除+惰性删除
解释：我们存数据时设置的过期时间，并不是一到时间就一定会被删除掉的，redis在清除key的时候会做一个随机的扫描，这个扫描频率是可以在配置文件中设置的，随机扫描到这个key后发现已经过期了就会把这个key给移除，如果没有扫描到就涉及到了这个惰性删除，在查询的时候先判断一下，如果已经过期了，就删除掉返回null。设置的频率在1-500之间，最好是1-100之间。
redis的内存淘汰机制

volatile-lru：使用LRU算法(最近、最少使用)移除key，只对设]]></description><category></category></item><item><title><![CDATA[redis面试题：缓存穿透、雪崩、击穿、双写不一致]]></title><link>https://blog.youkuaiyun.com/RAGACM/article/details/114172361</link><guid>https://blog.youkuaiyun.com/RAGACM/article/details/114172361</guid><author>RAGACM</author><pubDate>Sat, 27 Feb 2021 14:07:08 +0800</pubDate><description><![CDATA[缓存穿透
通过一个key先查询redis，查不到，又去查询数据库，还查不到，从头穿到尾。
两种解决方案：

在前端做数据校验，校验这个数据是否符合要求
布隆过滤器（常用）：布隆过滤器可以想象成一个二进制的数组文件，保存数据的时候将数据对应的hash值的下标的位置置为1
，1表示存在，0表示不存在，这样查询之前先判断该值是否一定不存在，为0时就返回。

redis雪崩
在某一时刻大量的数据同时失效，导致大量的请求打到数据库上。
两种解决方案：

避免缓存集中失效，在设置过期时间的时候在后面拼上一个随机值
互斥]]></description><category></category></item></channel></rss>