3.Redis性能优化和客户端访问.md

redis的告警优化

启动的告警,我用的rocky-linux,现在就一个告警了

image-20241230110527581

一些指标无需关心,在新版的linux下,但是还是了解下

image-20241230134541251

正儿八经的半开连接和全连接看这个

https://www.xiaolincoding.com/network/3_tcp/tcp_queue.html#%E4%BB%80%E4%B9%88%E6%98%AF-tcp-%E5%8D%8A%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97%E5%92%8C%E5%85%A8%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97

半连接队列与全连接队列

TCP连接的时候:

1、全连接队列:3次握手成功后的连接信息队列,用来对接上传APP的accept函数的。

2、半连接队列:半开连接,收到SYN后的存储队列用来等待后续2次握手的。

然后rocky9.2还是有一个告警的

image-20241230135001721

image-20241230135054278

透明大页THP的优化也不需要

image-20241230140827377

image-20241230140917573

这个老版本的linux需要改,而且还没有办法通过sysctl.conf里去修改,只能修改内存文件,/sys/kernel/mm/也是内存文件,重启也就没了。所以需要rc.local里写好echo 修改的命令保证开机启动👇

image-20241230141230204

image-20241230141425106

redis是多线程

image-20241230142755647

有个l就代表多线程,上一节里有说过redis单线程只是响应用户请求的工作是单线程。

image-20241230142920206

pstree里花括号就是线程了👆

客户端工具redis-cli

编译安装后就在安装的路径里

image-20241230143159121

如果是别的机器要使用redis客户端连过来,就不会再去编译安装整个redis(server和cli)了,而是单单安装redis-cli了。

然后通过ldd 可以判断出整个redis-cli不是一个简单复制过去就能用的bin文件,都是共享库--动态编译的,c语言。

image-20241230143408863

用telnet连接redis,充当redis-cli

先修改监听地址

image-20241230144123464

此时用另一台机器telnet看看

image-20241230144707529

要加密码,否则连不了,用redis-cli一样存在这个情况

image-20241230144920403

先用本地的telnet看看常规操作

info 看所有的

image-20241230145602739

info server只看server的信息

image-20241230145615744

看key

image-20241230145844012

现在是空的👆

telnet的参数没有redis-cli丰富

image-20241230150047983

redis不会太大内存的底层逻辑

image-20241230150358341

假设redis用512G内存,那么持久化,I/O就会非常耗时;同样主从复制也会耗时太久,所以redis一般顶多32G/16G了不起了。

如果机器标配内存就是512G,此时就可以配置redis多实例来充分利用起来。但是多实例也有问题--就是宿主物理机挂了,全部实例redis都挂了。所以一般就是64G/128G内存 跑2-4个redis实例就可以了。

redis-cli

image-20241230150831021

image-20241230151212271

开发语言如何连接redis-server

还可以用开发语言来连,就会涉及redis的api开发接口,就要调用连接redis的库,这些库还不是唯一的,开源的。

https://redis.io/docs/latest/develop/clients/redis-py/

image-20241230151528407

python如何对接redis

image-20241230161646029

yum install python3-pip -y

pip install redis

image-20241230161934060

当前没密码,删了密码

image-20241230162122695

image-20241230162135669

...

...

image-20241230162108597

上图RDB是达到一定数据量就开始做持久化的报错,先不管。

然后用redis-cli登入进去看看key-value

image-20241230162308712

image-20241230162400691

工作案例

抖音开发者工具的内网白名单放行

image-20250109101802270

通过glasswire抓包开发者工具访问的域名

image-20250109101929708

通过长截图(使用有技巧,就是框选范围要大很多的)

再上面的长截图的基础上进一步截图,获取文字 和 单独复制显示不全的域名,得到以下清单


ma3-normal-f.zijieapi.com.queniuyk.com
cdn.npmmirror.com.w.cdngslb.com
mssdk.bytedance.com.queniukw.com
mcs.snssdk.com.queniurc.com
mon.zijieapi.com.queniusz.com
mcs.snssdk.com.queniurc.com
hcdnd100.ipv6.c.cdnhwc1.com
I7-online-self-max.s.dsa.cdnbuild.net
i.snssdk.com.queniuyk.com
hcdndyn.zjv6.c.cdnhwc2.com
ma.zijieapi.com.queniuiq.com
17-online-self-max.s.dsa.cdnbuild.net
mssdk.bytedance.com.queniukw.com
If3-short.ibytedapm.com.w.cdngslb.com
hcdndyn.zjv6.c.cdnhwc2.com
If3-short.ibytedapm.com.w.cdngslb.com
www.doubao.com.queniurc.com
ma3-normal-lf.zijieapi.com.queniuyk.com
If3-short.ibytedapm.com.w.cdngslb.com
tron.jiyunhudong.com.queniukw.com
direct.toutiao-websocket-all-v3.lf.bytelb.net
hcdndyn.zjv6.c.cdnhwc2.com
www.doubao.com.queniurc.com
17-online-self-max.s.dsa.cdnbuild.net
cdn.npmmirror.com.w.cdngslb.com
mcs.doubao.com.230b2a2545cfa773.w.cdngslb.com
iv20vsgucpmm0lfjf5ne9rh0l8oip1pkuj3m0f0pi3fms2bn4hsfusjm.tt.x.bsgslb.cn
01t9rh0cf43mjsdiprk0bbe5qnvmq9tf9pjcqntml570vfhfhrevukhl.smogfly.club
lf-developer-cdn.open-douyin.com.230b2a2545cfa773.queniubg.com

imapi2.snssdk.com.queniurc.com
ma3-normal-lf.zijieapi.com.queniuyk.com
dns.iwgame.com
I7-online-self-max.s.dsa.cdnbuild.net
abtestvm.bytedance.com.queniurc.com
unpkg.byted-static.com.queniusy.com
hcdndyn.zjv6.c.cdnhwc2.com
ma.zijieapi.com.queniuiq.com
direct.toutiao-websocket-all-v3.lf.bytelb.net
minigame.zijieapi.com.queniurc.com
ma.zijieapi.com.queniuiq.com
If3-short.ibytedapm.com.w.cdngslb.com
host.docker.internal

将以上清单 复制到 linux里处理

image-20250109102709827

001 002 003是开发人员单独提的其他域名,单独处理一下,思路一样的👇

 vim 01

 cat 01
 cat 01 |xargs -i dig {} +short
 cat 01 |xargs -i dig {} +short >> 02  # 多来几遍 >=3吧
 cat 01 |xargs -i dig {} +short @223.5.5.5 >> 02  # 换个dns也多来几遍

 cat 02
 cat 02 |sort |uniq
 cat 02 |sort |uniq >> 03


 cat 03
 cat 03 |awk -F '.' '{print $1,$2,$3}'
 cat 03 |awk -F '.' '{print $1,$2,$3}' |sort |uniq
 cat 03 |awk -F '.' '{print $1,$2,$3}' |sort |uniq |tr -s ' ' '.'
 cat 03 |awk -F '.' '{print $1,$2,$3}' |sort |uniq |tr -s ' ' '.' > 04


 cat 04
 cat 04 |xargs -i echo {}
 cat 04 |xargs -i echo "{}.0"
 cat 04 |xargs -i echo "{}.0" > 05


 cat 05
 cat 05 |xargs -i echo "set address untrust {}/24 {}/24"
 # 将上面的cli屏幕输出结果复制到ssg里

 cat 05 |xargs -i echo "set group address "Untrust" "douYinApi" add {}/24"
 # 将上面的cli输出结果复制到ssg里

然后ssg里这样做,在douYinAPi下面垫一条deny Any,当然你的知道当前开发人员的内网机器的IP

image-20250109102449785

然后让开发人员测试

如果OK,就OKK

如果部OK,就观察deny Any的那个日志,查漏补缺。

Copyright 🌹 © oneyearice@126.com 2022 all right reserved,powered by Gitbook文档更新时间: 2025-01-09 12:28:52

results matching ""

    No results matching ""