3.Redis性能优化和客户端访问.md
redis的告警优化
启动的告警,我用的rocky-linux,现在就一个告警了
一些指标无需关心,在新版的linux下,但是还是了解下
正儿八经的半开连接和全连接看这个
TCP连接的时候:
1、全连接队列:3次握手成功后的连接信息队列,用来对接上传APP的accept函数的。
2、半连接队列:半开连接,收到SYN后的存储队列用来等待后续2次握手的。
然后rocky9.2还是有一个告警的
透明大页THP的优化也不需要
这个老版本的linux需要改,而且还没有办法通过sysctl.conf里去修改,只能修改内存文件,/sys/kernel/mm/也是内存文件,重启也就没了。所以需要rc.local里写好echo 修改的命令保证开机启动👇
redis是多线程
有个l就代表多线程,上一节里有说过redis单线程只是响应用户请求的工作是单线程。
pstree里花括号就是线程了👆
客户端工具redis-cli
编译安装后就在安装的路径里
如果是别的机器要使用redis客户端连过来,就不会再去编译安装整个redis(server和cli)了,而是单单安装redis-cli了。
然后通过ldd 可以判断出整个redis-cli不是一个简单复制过去就能用的bin文件,都是共享库--动态编译的,c语言。
用telnet连接redis,充当redis-cli
先修改监听地址
此时用另一台机器telnet看看
要加密码,否则连不了,用redis-cli一样存在这个情况
先用本地的telnet看看常规操作
info 看所有的
info server只看server的信息
看key
现在是空的👆
telnet的参数没有redis-cli丰富
redis不会太大内存的底层逻辑
假设redis用512G内存,那么持久化,I/O就会非常耗时;同样主从复制也会耗时太久,所以redis一般顶多32G/16G了不起了。
如果机器标配内存就是512G,此时就可以配置redis多实例来充分利用起来。但是多实例也有问题--就是宿主物理机挂了,全部实例redis都挂了。所以一般就是64G/128G内存 跑2-4个redis实例就可以了。
redis-cli
开发语言如何连接redis-server
还可以用开发语言来连,就会涉及redis的api开发接口,就要调用连接redis的库,这些库还不是唯一的,开源的。
https://redis.io/docs/latest/develop/clients/redis-py/
python如何对接redis
yum install python3-pip -y
pip install redis
当前没密码,删了密码
...
...
上图RDB是达到一定数据量就开始做持久化的报错,先不管。
然后用redis-cli登入进去看看key-value
工作案例
抖音开发者工具的内网白名单放行
通过glasswire抓包开发者工具访问的域名
通过长截图(使用有技巧,就是框选范围要大很多的)
再上面的长截图的基础上进一步截图,获取文字 和 单独复制显示不全的域名,得到以下清单
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里处理
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
然后让开发人员测试
如果OK,就OKK
如果部OK,就观察deny Any的那个日志,查漏补缺。