自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 redis-shake可视化监控

可部署多个 redis-shake 10.111.11.12:8888 10.111.11.12:8889 10.111.11.12:8890。根据上边返回的json数据,制定自己需要的监控模版,部署json-exporter 10.111.11.11:7979。上边的都配置好,把自己的peometheus数据源添加到grafana中,就可以设置自己想要的监控界面了。单独的文件配置可实现动态加载,同时可添加自定义的标签在文件中。

2024-03-28 13:51:31 766

原创 kvrocks01 - kvrocks2redis迁移工具

kvrocks迁移工具

2023-05-05 17:20:29 850

原创 springboot-redis-messageListener

主要实现两个功能1.过期事件监听 KeyspaceEventMessageListener2.发布订阅 RedisMeaasgeListener DispatchMessageListener MessagelistenerAdapter。

2023-04-10 10:20:06 1839 1

转载 Jackson -- ObjectMapper

类()是使用Jackson解析JSON最简单的方法。可以从字符串、流或文件解析JSON,并创建Java对象或对象图来表示已解析的JSON。将JSON解析为Java对象也称为从JSON反序列化Java对象也可以从Java对象创建JSON. 从Java对象生成JSON的过程称为序列化Java对象到JSONJackson对象映射器(Object Mapper)可以把JSON解析为用户自定义类对象, 或者解析为JSON内置的树模型的对象(详见下文)//用Car类初始化序列化器CarSerializer。

2023-04-04 16:59:16 1533

原创 springboot-开机自启功能实现-CommandLineRunner和ApplicationRunner

区别:1.两个接口的实现方法一样,参数不一样,其他没什么区别。两个参数都可以接收java命令设置的参数及值2.ApplicationRunner接口的实现方法比CommandLineRunner接口的实现方法前执行(也可通过设置@Order决定谁先执行)作用:满足springBoot框架需要预加载数据需求,执行操作的时间是在容器启动末尾时间执行操作。

2023-04-04 11:34:43 211

原创 jdk更换版本后,无效的目标发行版问题解决方案

无效的目标发行版:11(已解决)

2022-11-18 10:48:48 390

原创 docker下载镜像慢

docker 下载镜像文件慢的可以尝试下

2022-11-10 11:03:48 2608

原创 go编译环境镜像文件及案例

不是go语言学习者,只是偶尔需要go的编译环境,有个镜像去编译还是很方便的

2022-11-04 11:49:48 337

原创 centos8 yum install failed to set locale, defaulting to C

centos8 yum install 问题

2022-11-04 10:59:16 2100 2

原创 Redis trouble22 -- cluster模式下,从节点内存大于主节点内存原因分析

rehash导致主从节点内存大小不一

2022-07-12 00:41:12 401

原创 tendisplus03-删除log脚本

tendisplus作为腾讯新开源的存储类的中间件,功能是很强大,但是一些小东西还不是很完善,就比如说这个日志定期清理的功能都没有,还要附加脚本进行删除,不然你就发现你的数据只有60G,日志已经攒了100G,下边就是定时清理日志的脚本nohup sh /usr/local/bin/del_log.sh > /usr/local/bin/del_log.log &#!/bin/bashdir=/tendisplus/store/log/ReservedNum=3while tru

2022-02-17 11:24:05 621

原创 Redis trouble21 -- aof持久化导致redis命令阻塞

目录1.异常日志2.问题分析3.引起原因4.解决方案5.appendfsync everysec不是1s1.异常日志 Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.* Asynchronous AOF fsync is ta...

2022-01-11 14:48:27 1588 4

原创 tendisplus04-集群restorebackup方式复制迁移数据

'注:backup-binlog目录一定要在容器启动时就已经创建好'0.两个集群信息集群1主节点 --> 从节点127.0.0.1:8001--> 127.0.0.1:8004127.0.0.1:8002--> 127.0.0.1:8005127.0.0.1:8003--> 127.0.0.1:8006主节点backup目录 ...

2021-12-09 15:04:45 8174

原创 查找swap占用高的容器名称

1.查找swap占用的排名,找出最高占用的pidfor file in /proc/*/status;do awk '/VmSwap|Name|^Pid/{printf $2 " " $3}END{ print ""}' $file;done |sort -k 3 -n -r |head2.查找容器idcat ${pid}/cgroup|head -n 1 |cut -d ":" -f 33.根据容器id查找容器名称docker inspect --format '{{.N..

2021-12-07 11:00:14 264

原创 tendisplus02-删除binlog脚本

tendisplus是腾讯开源的kv中间件有一个回档的功能,主要是使用在dump目录下产生的binlog文件进行回档,我们的业务是不需要回档功能的,而且binlog占用的磁盘大小比我们的主要数据占用的都多,反而没有起到节约磁盘的目的,所以写了一个脚本来清理binlog文件,只保留最新的7个binlog文件,在你tendisplus集群启动的时候就可以启动起来,我们当前使用的是tendis2.4.3,后期更新版本可能会加上关闭这个功能的配置,但是在没有配置的情况下,就只能先定时执行脚本删除无用的binlog文

2021-11-27 17:34:37 1148

原创 tendisplus01-创建集群脚本

tendisplus集群是腾讯开源的kv存储中间件,很好用,就是创建集群时需要一步步创建,下面的这个脚本就是解决了我们在创建集群时繁琐的执行步骤1.创建6个tendisplus节点127.0.0.1:6379127.0.0.2:6379127.0.0.3:6379127.0.0.4:6379127.0.0.5:6379127.0.0.6:63792. ./tendisplus-build.sh"127.0.0.1:3679 127.0.0.2:3679 127.0.0.3:6379..

2021-11-27 17:18:29 8017

原创 Redis安全设置

目录一、模拟一次redis攻击事件二、安全设置1.requirepass2.rename-command配置使用3.防火墙4.bind5. port一、模拟一次redis攻击事件机器1:ssh-keygen -t rsacat .ssh/id_rsa.pub 内容作为key: crackit键的value值机器2:redis配置:1.port 63792.requirepass ""3.bind 0.0.0.0 或 ""4.以root用户启动...

2021-11-24 23:02:57 1354

原创 Redis-linux环境配置

目录一、vm.overcommit_memory二、swappiness三、THP四、OOM killer五、ulimit六、TCP backlog一、vm.overcommit_memory# WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1'

2021-11-23 18:27:32 620

原创 rsync error: error allocating core memory buffers

一、问题描述使用rsync文件传输时,相同的两台服务器传输相同的文件一个成功了,一个报出下边的错误,显而易见就是内存不足了[root@sss085080 ~]# rsync -atvu /alauda/new/* /alauda/data/sending incremental file listERROR: out of memory in flist_expand [sender]rsync error: error allocating core memory buffers (cod

2021-10-25 17:09:10 625

转载 swap知识点

结合了两篇文章copy下来的,转载记得附上文章原文地址linux开启swap(磁盘缓存)操作_阳光梦的专栏-CSDN博客_kib swap系统内存还有很多的情况下为何swap使用很高了 - 程序员大本营linux开启swap(磁盘缓存)操作_阳光梦的专栏-CSDN博客_kib swap一、Swap是什么Swap就是把一块磁盘空间或者一个本地文件,当成内存来使用。 换出,就是把进程暂时不用的内存数据存储到磁盘中 换入,就是在进程再次访问这些内存的时候,从磁盘中读取到内存 Swap其实是把系统

2021-09-29 16:24:39 2658

原创 List与String[]相互转化

一、List 转 String[] @Test void arraysTostr() { List<String> list = new ArrayList<>(); list.add("mm"); list.add("nn"); list.add("hh"); String[] strings = list.toArray(new String[list.size()]);

2021-09-24 16:40:27 11209

原创 Redis trouble18 -- Unable to configure Redis to keyspace notifications

解决方案redis的服务端没有开启配置数据库通知的配置,在redis服务端执行下边命令即可config setnotify-keyspace-events Egxconfig rewritenotify-keyspace-events数据库通知数据库通知是Redis 2.8版本新增加的功能,这个功能可以让客户端通过订阅给定的频道或者模式,获知数据库中键变化,以及数据库中命令执行情况分类:键空间通知:“某个键执行了什么命令”的通知称为键空间通知(key-space n...

2021-09-08 16:41:55 1818 4

原创 Redis trouble17 -- slaveof主从同步注意点

注意点:1.使用slaveof主从同步的时候,是要求从节点的masterauth与主节点配置的requirepass相同才会创建主从关系2.使用slaveof主从同步是将所有db中的数据都同步过去3.在slaveof同步过程中,从节点是只读的,如果想要从节点也可写,在从节点中配置:config set replica-read-only noconfig set slave-read-only no若主从均可写,会存在数据不一致的情况,要谨慎使用...

2021-09-08 16:11:30 935

原创 Redis trouble16 -- (Non critical) Master does not understand: Unrecognized REPLCONF option: capa

一、问题描述看日志上边的信息有两个ERR:1.(Non critical) Master does not understand REPLCONF capa: -ERR Unrecognized REPLCONF option: capa2.Partial resynchronization not possible (no cached master)1:S 19 Aug 2021 11:06:02.919 * MASTER <-> REPLICA sync started1:

2021-09-08 15:39:57 941

原创 Redis trouble15 -- unable to failover:check ‘cluster-replica-validity-factor‘ configuration option

一、问题描述标题太短了放不下,完整的异常提示为:Currently unable to failover: Disconnected from master for longer than allowed. Please check the 'cluster-replica-validity-factor' configuration option.原为三主三从集群,同时宕掉一对主从,此时集群状态fail,启动从节点,会发现从节点并没有如我们所想那样成为主节点,集群状态依旧fail,这个是个正

2021-09-08 15:20:12 743

原创 Redis trouble14 -- signal-handler (1619081683) Received SIGTERM scheduling shutdown...

一、问题描述异常1:主从中断报错Unable to partial resync with the slave for lack of backlog (Slave request was: 2595405802583).异常2:Discarding previously cached master state异常3:1:signal-handler (1619081683) Received SIGTERM scheduling shutdown...1:S 22 Apr 2.

2021-09-08 14:46:35 4869

原创 Redis trouble13 -- Error creating bean with name stringRedisTemplate defined in class path resource

一、问题描述org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'redissonController': Unsatisfied dependency expressed through field 'stringRedisTemplate'; nested exception is org.springframework.beans.factory.Unsat

2021-09-07 18:00:41 1380

原创 Redis trouble12 -- aof 文件损坏修复

一、问题描述aof持久化的redis执行flushall之后,想恢复数据,于是删除aof中的最后一条指令flushall之后,重启redis提示aof文件损坏,使用fix修复会存在清空数据的危险二、解决方案aof-load-truncated yesredis在恢复时,会忽略最后一条可能存在问题的指令。默认值yes。即在aof写入时,可能存在指令写错的问题(突然断电,写了一半),这种情况下,yes会load并继续,而no会直接恢复失败配置之后重启节点对于redis集群若想恢复需要重.

2021-09-07 17:57:07 608

原创 Redis trouble11 -- redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream

一、问题描述一次线上问题,客户端使用的时候时不时就会报出来这个问题,当时开发还问题是不是服务端配置的问题,我当时特别肯定的说不是,结果打脸了二、解决方案经过排查redis服务端的timout设置为了10,将timeout设置为0,问题解决...

2021-09-07 15:47:16 793

原创 Redis trouble10 -- redis内存突增找不到原因?

一、问题描述一次线上内存突增,数据量并没有增加,但是数据量确增长了差不多2G,过一段时间后差不多又降低了1G,找了很久都没找到是什么引起的,最终找到原因二、问题原因上边的问题是因为redis当数据量达到一定程度的时候会进行一次rehash才会导致内存上涨如下表所示是key的数量与对应的hash列表所占内存大小,当key数量较小的时候,是感知不到内存的变化的,当key数量达到6千7百万的时候,可以看到内存已经按G的大小来计算了,就没办法忽略了.key数量对应的hash列表所占内存.

2021-09-07 15:43:28 257

原创 Redis trouble09 -- Detected DNS change. zcx.zcx.com has changed from 10.xx.xx.17 to 10.xx.xx.18

一、问题描述redisson在使用时抛出以下异常2021-03-24 14:18:49.172 INFO 8 --- [isson-netty-2-1] o.r.c.pool.MasterPubSubConnectionPool : 1 connections initialized for zcx.zcx.com/10.172.17.17:301672021-03-24 14:18:49.175 INFO 8 --- [sson-netty-2-24] org.redisson.conne..

2021-09-07 15:28:08 1115 3

原创 PIKA trouble02 -- (error) ERR Syntax error, try CLIENT (LIST [order by [addr|idle]| KILL ip:port)

一、问题描述原来使用的是redis,现在更换成pika使用,使用springboot2.1.8版本,里边配置了clientName,启动的时候并没有什么问题,但是在使用的时候会报出来下边的异常信息:org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisCo.

2021-09-07 15:04:25 569

原创 Redis trouble08 -- 客户端并没有调用ping命令,但是监控上看到有很多的ping指令在执行

多半是开启了testOnBorrow配置,每个连接执行前都会进行连接检测,连接检测的原理就是调用ping返回pong命令,下边是testOnBorrow的使用原理GenericObjectPool类中调用factory.validateObject(p)public T borrowObject(final long borrowMaxWaitMillis) throws Exception { ... if (p != null && getTestOnBorrow

2021-09-06 14:33:20 412

原创 Redis trouble07 -- MISCONF redis save RDB snapshots, but is currently not able to persist

一、问题描述线上每隔一天redis就会报出来下边的问题MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist二、解决方案归根到底就是redis持久化失败:提供下边的配置解决Redis服务端参数:config set stop-writes-on-bgsave-error noconfig rewrite系统参数:sysctl vm.overcommit_

2021-09-06 11:47:47 63

原创 Redis trouble06 -- io.lettuce.core.RedisCommandTimeoutException:Command timed out after 10 seconds

一、问题描述线上一段时间时不时的会报出来下边的问题Redis command timed out;nested exception is io.lettuce.core.RedisCommandTimeoutException:Command timed out after 10 second这个问题在github上有提到过,大家最终的解决方式都是下边的第一种二、解决方案1.将lettuce换成jedis2.第二种方案并没有验证,因为上边的问题也不是随时可以复现的,只是个人分析

2021-09-06 11:38:21 5574

原创 Redis trouble04 -- 数据明明存储进去了,但是读取不到redis中的数据,scan发现数据前面多了xac\xed\x00\x05t\x00\特殊字符

一、问题描述:数据存储到redis中,从代码中也能从redis中读取到,但是从cli客户端中不能查询到数据,通过scan后发现存入的数据前边都多了一串特殊字符二、问题分析存储数据的时候我们使用的是redis的默认的序列化方式(JDK序列化方式),要想读出来数据,需要使用相同的序列化方式,这就是为什么代码中可以读取到数据,因为代码中的redis使用的还是jdk的序列化方式,但是cli客户端就不一样了,我们使用cli客户端读取数据,使用没有进行序列化的key,和使用jdk序列化之后的key是.

2021-09-03 15:25:36 988

原创 shell01 - echo输出重叠

var1=$1 var2=$2 var3=$3echo "$var1 $var2 $var3" 输出时,存在数据相互覆盖的问题1.存在\r,按照下边方式对字符进行处理var1=$(echo $var1| tr -d '\r')var2=$(echo $var2| tr -d '\r')var3=$(echo $var3| tr -d '\r')echo "$var1 $var2 $var3"2.存在\n,按照下边方式对字符进行处理var1=$(echo $var1| tr -d..

2021-04-08 14:08:03 1114

原创 alpine的docker容器中不能运行golang的二进制文件

前言最近在做一个exporter的镜像,主要是考虑到监控不需要进入容器执行命令所以希望监控的镜像文件足够小,所以选择了alpine做基础镜像1.问题描述下边这是我的Dockerfile文件,当编译的时候会提示/bin/sh: ./tendisplus_exporter: not foundFROM alpineCOPY tendisplus_exporter /usr/local/bin/RUN chmod 777 /usr/local/bin/tendisplus_exporter

2021-03-02 16:30:05 1681 1

原创 添加了launch.json后启动时出现 golang package XXX is not in GOROOT XXX

主要原因是go mod和gopath管理包冲突问题,对于之前构建的mod名称与现在名称不符的情况下,会去找原来的包,导致上边的问题1.删除原来go.mod文件2.执行go mod init 项目名称3.重新执行launch.json就ok了主要是mod管理包的问题,如果之前构建的mod名称不是现在的项目名称的话,他会直接去之前的名称下面找包,结果是找不到。...

2021-02-26 01:03:46 679

原创 Vscode中添加GO-launch.json中添加env启动项目

第一次使用Vscode也是第一次编译redis-exporter,使用的go语言,需要传送环境变量到项目中,所以在启动时需要添加launch.json文件进行启动点击此处即可添加launch.json文件,下边为更改过后的配置文件,还有其余配置,这里没有,因为我也没用过,这个简单配置只用于传送环境变量启动{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions

2021-02-23 17:58:46 5326 4

空空如也

空空如也

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

TA关注的人

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