30W数据批量导入redis集群

前言

碰到工作中有数据要一次性快速刷入redis的场景
查了下资料,找到了快速高效的写入方法了

1、先想法子把数据组装程redis底层的命令格式

比如:

1
2
hset key filed value
set key value

2、大量的基础数据生成redis命令

之前我是采用golang读取数据源并转化程redis命令

3、用redis批量导入方式写入redis

1
cat d1.txt | redis-cli -a runoob

如果不想看到执行过程,可以用如下

1
cat d1.txt | redis-cli -a runoob --pipe

如果是远程执行,也可以

1
cat d1.txt | redis-cli -a runoob -p 6380 -h 192.168.1.100 --pipe

4、为什么不用程序去做呢

经过对比测试,程序写入redis还赶不上上面的批量导入命令
难点是d1.txt文件的生成,需要把数据组装成如下的redis命令
举例d1.txt样例

……

阅读全文

mysql集群在线无损扩容

前言

收到数据库磁盘占比告警了
前提条件,磁盘采用lvm管理方式,做在线无损扩容才方便管理,其他方式没测试过

1、分配一个1T的新盘,HDD、SDD随规划选择

这个一般在磁阵或者云管理平台操作,不需要什么命令,一般都是图形化操作

2、查找新分配的1T新盘

1
2
fdisk -l     
lvmdiskscan

个人建议第二个命令,2个命令都会返回一堆查询值,怎么判断谁是新盘,谁是已使用的盘,这点有运维经验的人还是不成问题的,不详说

……

阅读全文

dos命令速查

前言

dos命令速查

1、有关某个命令的详细信息,请键入HELP命令名

命令 说明
assoc 显示或修改文件扩展名关联。
attrib 显示或更改文件属性。
break 设置或清除扩展式CTRL+C检查。
bcdedit 设置启动数据库中的属性以控制启动加载。
cacls 显示或修改文件的访问控制列表(ACL)。
call 从另一个批处理程序调用这一个。
cd 显示当前目录的名称或将其更改。
chcp 显示或设置活动代码页数。
chdir 显示当前目录的名称或将其更改。
chkdsk 检查磁盘并显示状态报告。
chkntfs 显示或修改启动时间磁盘检查。
cls 清除屏幕。
cmd 打开另一个Windows命令解释程序窗口。
color 设置默认控制台前景和背景颜色。
comp 比较两个或两套文件的内容。
compact 显示或更改NTFS分区上文件的压缩。
convert 将FAT卷转换成NTFS。你不能转换当前驱动器。
copy 将至少一个文件复制到另一个位置。
date 显示或设置日期。
del 删除至少一个文件。
dir 显示一个目录中的文件和子目录。
diskpart 显示或配置磁盘分区属性。
doskey 编辑命令行、撤回Windows命令并创建宏。
driverquery 显示当前设备驱动程序状态和属性。
echo 显示消息,或将命令回显打开或关闭。
endlocal 结束批文件中环境更改的本地化。
erase 删除一个或多个文件。
exit 退出CMD.EXE程序(命令解释程序)。
fc 比较两个文件或两个文件集并显示它们之间的不同。
find 在一个或多个文件中搜索一个文本字符串。
findstr 在多个文件中搜索字符串。
for 为一组文件中的每个文件运行一个指定的命令。
format 格式化磁盘,以便用于Windows。
fsutil 显示或配置文件系统属性。
ftype 显示或修改在文件扩展名关联中使用的文件类型。
goto 将Windows命令解释程序定向到批处理程序中某个带标签的行。
gpresult 显示计算机或用户的组策略信息。
graftabl 使Windows在图形模式下显示扩展字符集。
help 提供Windows命令的帮助信息。
icacls 显示、修改、备份或还原文件和目录的ACL。
if 在批处理程序中执行有条件的处理操作。
label 创建、更改或删除磁盘的卷标。
md 创建一个目录。
mkdir 创建一个目录。
mklink 创建符号链接和硬链接
mode 配置系统设备。
more 逐屏显示输出。
move 将一个或多个文件从一个目录移动到另一个目录。
openfiles 显示远程用户为了文件共享而打开的文件。
path 为可执行文件显示或设置搜索路径。
pause 暂停批处理文件的处理并显示消息。
popd 还原通过PUSHD保存的当前目录的上一个值。
print 打印一个文本文件。
prompt 更改Windows命令提示。
pushd 保存当前目录,然后对其进行更改。
rd 删除目录。
recover 从损坏的或有缺陷的磁盘中恢复可读信息。
rem 记录批处理文件或CONFIG.SYS中的注释(批注)。
ren 重命名文件。
rename 重命名文件。
replace 替换文件。
rmdir 删除目录。
robocopy 复制文件和目录树的高级实用工具
set 显示、设置或删除Windows环境变量。
setlocal 开始本地化批处理文件中的环境更改。
sc 显示或配置服务(后台进程)。
schtasks 安排在一台计算机上运行命令和程序。
shift 调整批处理文件中可替换参数的位置。
shutdown 允许通过本地或远程方式正确关闭计算机。
sort 对输入排序。
start 启动单独的窗口以运行指定的程序或命令。
subst 将路径与驱动器号关联。
systeminfo 显示计算机的特定属性和配置。
tasklist 显示包括服务在内的所有当前运行的任务。
taskkill 中止或停止正在运行的进程或应用程序。
time 显示或设置系统时间。
title 设置CMD.EXE会话的窗口标题。
tree 以图形方式显示驱动程序或路径的目录结构。
type 显示文本文件的内容。
ver 显示Windows的版本。
verify 告诉Windows是否进行验证,以确保文件正确写入磁盘。
vol 显示磁盘卷标和序列号。
xcopy 复制文件和目录树。
wmic 在交互式命令shell中显示WMI信息。
……

阅读全文

tcp、http的一些知识整理

前言

tcp、http的一些知识整理

1、含义

1.1 序列号seq

占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。

1.2 确认号ack

占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。

……

阅读全文

tomcat开启远程debug

前言

测试环境的问题在本地复现不出来,最直接的办法就是远程 debug:本地 IDEA 打断点,连到测试环境的 tomcat 上单步跟。配置很简单,给 catalina 加一段 JDWP 参数就行,但有个 shutdown.sh 失效的坑要提前知道。

1、配置方法

linux 下在 catalina.sh 开头(或者按规范放 bin/setenv.sh)加:

1
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888"

windows 下修改 catalina.bat:

1
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888

参数含义:

……

阅读全文

SpringMVC全局token防止重复提交

前言

表单重复提交是老问题:用户手快点了两下提交、网络卡顿刷新重发,数据就插了两条。最常见的解法是提交完成后 redirect 跳转,但它解决不了 ajax 提交和移动端提交的场景(没有页面可跳)。通行的做法是用 token:django 等框架内置了这套机制,SpringMVC 需要自己搭,这篇把完整实现整理出来(思路参考了网上的经典方案,见文末参考)。

……

阅读全文

python工具-移除照片或视频背景

前言

BackgroundRemover是一个命令行工具,用于从视频 和图像中删除背景

1、依赖

Requirements
python <= 3.6
python3.6-dev #or what ever version of python you using
torch and torchvision stable version https://pytorch.org
ffmpeg 4.4+

1
2
3
pip install python3.6-dev
pip install ffmpeg
pip install torch

2、安装

1
pip install backgroundremover

3、下载模型并设置

如果不提前下载模型的话,在首次执行的时候会自动下载,但是需要从 google 网盘下载,因此需要有翻墙能力。
如果手工下载可以参考下面地址:
1、https://github.com/xuebinqin/U-2-Net#usage-for-salient-object-detection,参考章节"Download the u2net_portrait.pth"
2、https://pan.baidu.com/s/1FbUIBJsEua7G1vYo06lSmg 提取码: o0uu
3、https://drive.google.com/u/0/uc?id=1rbSTGKAE-MTxBYHd-51l2hMOQPT_7EPy&export=download

……

阅读全文

springboot的devTools热部署

前言

springboot利用devtools实现热部署

1、application.yml

1
2
3
4
5
6
7
8
9
spring:
    devtools:
        restart:
            #热部署生效
          enabled: true
            #设置重启的目录
            #additional-paths: src/main/java
            #classpath目录下的WEB-INF文件夹内容修改不重启
          exclude: WEB-INF/**

设置WEB-INF下的jsp修改不需要重启。

2、pom.xml

1
2
3
4
5
6
7
8
<!--devtools热部署-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖该项目的项目如果想要使用devtools,需要重新引入 -->
    <scope>true</scope>
</dependency>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
      <fork>true</fork>
    </configuration>
    <dependencies>
      <!-- spring热部署-->
      <!-- https://mvnrepository.com/artifact/org.springframework/springloaded -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>springloaded</artifactId>
        <version>1.2.6.RELEASE</version>
      </dependency>
    </dependencies>
</plugin>

3、idea设置

1、File-Settings-Compiler-Build Project automatically
2、ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running

……

阅读全文

nginx参数介绍

前言

nginx的反向代理和当做前端容器使用比较广泛,有一些参数详情搜集整理下

1、Nginx运行工作进程数量

Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。
如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件

1
grep ^processor /proc/cpuinfo | wc -l 
1
2
3
4
5
6
7
8
9
[root@lx~]# vi /usr/local/nginx1.10/conf/nginx.conf
worker_processes 4;
[root@lx~]# /usr/local/nginx1.10/sbin/nginx-s reload
[root@lx~]# ps -aux | grep nginx |grep -v grep
root 9834 0.0 0.0 47556 1948 ?     Ss 22:36 0:00 nginx: master processnginx
www 10135 0.0 0.0 50088 2004 ?       S   22:58 0:00 nginx: worker process
www 10136 0.0 0.0 50088 2004 ?       S   22:58 0:00 nginx: worker process
www 10137 0.0 0.0 50088 2004 ?       S   22:58 0:00 nginx: worker process
www 10138 0.0 0.0 50088 2004 ?       S   22:58 0:00 nginx: worker process

2、Nginx运行CPU亲和力

比如4核配置:

……

阅读全文

linux的一些细节点-不定期补充

前言

linux的一些小细节记录

1、tmp目录、var目录自动清理

tmp下的文件或目录长时间没有更新或者改动的话,systemd-tmpfiles 会按配置定期清理,配置参考如下:

1
vi /usr/lib/tmpfiles.d/tmp.conf
1
2
3
4
5
6
7
8
9
# Clear tmp directories separately, to make them easier to override  
v /tmp 1777 root root 90d  
v /var/tmp 1777 root root 90d  

# Exclude namespace mountpoints created with PrivateTmp=yes  
x /tmp/systemd-private-%b-*  
X /tmp/systemd-private-%b-*/tmp  
x /var/tmp/systemd-private-%b-*  
X /var/tmp/systemd-private-%b-*/tmp

2、tcp连接数统计

1
2
3
4
5
6
7
netstat -ant|awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}'

TIME_WAIT 1
FIN_WAIT2 1
ESTABLISHED 34
LAST_ACK 1
LISTEN 23

注:netstat 属于已停止维护的 net-tools 套件,新发行版推荐用 ss 等价替代:ss -ant | awk 'NR>1 {++S[$1]} END {for(a in S) print (a,S[a])}'。

……

阅读全文

最近文章

分类

标签

其它