- 博客(75)
- 资源 (2)
- 收藏
- 关注
原创 密码学的一些常识
使用公钥对签名做验证(文本->HASH =?解密签名后的HASH)1,对称密码、公钥密码、消息认证、数字签名的对比。使用私钥对文本HASH值做签名。不存在,但需要CA认证公钥。不存在,但需要CA认证公钥。√(仅限本次通信对象)
2023-07-30 19:11:06 335
原创 从单核CPU系统角度看并发问题
1,问题引入: 在单核cpu系统中;进程有个全局量 intg_i = 0,在进程中开10个线程,每个线程都不对 g_i 加锁的情况下做1亿次自增操作 (g_i++) ;主线程等待所有的线程结束后,再打印 g_i 的值能保证是 10 亿吗?2,问题初步思考: 先考虑在多核cpu系统中,无锁情况下,两个cpu可能同时读取 g_i 到各自cpu寄存器,同时在各自寄存器中自增,然后写相同的值到内存;显然这里的自增操作有两次,实际值只是自增了一次,因此不能保证最终的g_i值是...
2021-10-07 01:02:07 2961 1
原创 关联分析之fp-growth
本文介绍如何使用 Altair AI studio 软件做关联分析。1,准备数据集:下载,sales_data_sample.csv。2,准备 RapidMiner 软件。
2024-08-16 15:28:44 165
原创 Redis主从互备及切换
Redis Sentinel 集群依赖于所谓的“多数派”(quorum)来做出决策,特别是对故障转移操作。Quorum 是一个配置参数,代表执行故障转移前必须同意该操作的最小 Sentinel 数量。通常,这个值至少是 Sentinel 总数的一半加一,以确保决策的有效性和防止脑裂。
2024-08-07 14:53:25 857
原创 工作素养总结
4,持续关注行业动态以及HC,并为此做准备。3,业务熟练、知道实现的细节以及优缺点。5,懂得向上管理以及自我管理。2,关键操作要review。1,工作不带抵触情绪。
2023-09-02 10:22:43 140
原创 中间平台工具 - graylog
graylog是非常好用的数据处理平台,可以对数据进行:streams分类、pipeline、正则匹配、统计汇总、定制化配置Alerts 等处理。//通过 stream rules 字段匹配做关联,比如需要做falco stream,则可根据 program=Falco做分流。streams(从inputs里面,通过stream rules匹配某些字段条件,route to streams)如果配置了 pipeline,可以在 pipeline Edit connections 里面指定 stream。
2023-08-11 11:14:26 500
原创 标签和命名空间
1,k8s的命名空间ns仅仅是隔离操作范围,并不是linux的ns的进程树、网络、主机名等的隔离。1,标签是 key-value 形式,可以标记k8s的资源,其中就包括pod。2,为方便对大规模pod做分类管理及控制,标签选择器。3,为指定标签pod调度到指定标签的node节点。2,方便不同用户单独做操作而互不影响。
2023-04-04 14:00:39 146
原创 linux系统和k8s系统
先学会开车,然后再深究车盖下的引擎原理,以便车抛锚的时候能继续让车能跑起来!在分布式时代掌握 k8s 就像掌握 linux 操作系统一样重要。
2023-04-03 09:50:45 149
原创 vscode rust 环境搭建
至此,可以在window10的vscode上单步调试ubuntu16.04的rust代码了。@3,vscode安装rust-anaylzer插件(以便能查看rust函数定义详情)@1,vscode远程链接ubuntu16.04服务器,具体配置方式可百度。注意rustc添加环境变量,."$HOME/.cargo/env"运行环境,ubuntu16.04,rust代码存放、编译、运行位置。@2,ubuntu16.04安装rust编译器等环境。工作PC,window10,安装vscode。.........
2022-07-27 18:58:42 1977
原创 公钥和私钥
对称加密:只有一个秘钥,既可以用于加密又可以用于解密非对称加密:公钥加密后的密文,只能通过私钥解密。一、SSH简介SSH是SecureShell的缩写,也叫做安全外壳协议。SSH的主要目的是实现安全远程登录。二 、SSH工作原理SSH的安全性比较好,其对数据进行加密的方式主要有两种:对称加密(密钥加密)和非对称加密(公钥加密)。对称加密指加密解密使用的是同一套秘钥。Client端把密钥加密后发送给Server端,Server用同一套密钥解密。对称加密的加密强度比较高,很难破解。但是.
2022-05-06 20:31:41 537
原创 gdb 调试core文件
@1;gdb exe文件 core文件@2;bt 查看栈@3;f N 进入某个函数,其中N是整数,是 bt 命令展示的栈号@4;p x/[nfu] <addr> 展示某个内存地址的变量信息x/<n/f/u> <addr> n、f、u是可选的参数。 n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。 f 表示显示的格式,类似printf格式化的元字符。如果地址所指.
2022-04-18 17:24:15 2224
原创 IDE用鼠标点来点去看代码太累了
一,SourceInsight 免鼠标阅读编辑代码快捷键操作1,阅读操作高亮 : F8 ; 取消高亮 F8行首/尾 : Home/End块首/尾 : Ctrl + Shift + [/]文件首/尾 : Ctrl + End/Home后退/前进 : Ctrl + </>定义 : Ctrl + =调用 : Ctrl + Alt + C2,搜索与跳转操作光标所在字符全局搜 : Ctrl + /进入光标所在搜索结果 : Ctrl + L全局搜上一个/下一个 : Sh..
2021-12-31 15:42:18 210
原创 敬畏每一行代码
还是职业素养的问题。改动每一行代码,不要那么随意;有良好素养的程序员都会在改动代码前先分析关联代码,评估影响。在改动后,要做测试。 比如我最近犯的一个错误:开发完了一个功能后,来了一个屏蔽某个功能的需求,我就随手只屏蔽了 xxx_init(); 函数。就提交了代码,导致上线后程序奔溃.........
2021-12-04 20:02:20 272
原创 一些软件调试的总结
在《编程珠玑》第五章里面,有句话:“专业的调试人员永远不会忘记,无论系统的行为咋看起来有多么神秘莫测,其背后总有合乎逻辑的解释”。这里总结几点排查 技术问题 的思路1,问题是否必现? 如果是必现的,那么解决问题就成功了90%. 如果不是必现的,努力去尝试复现问题.2,定位问题的点,手段可以是2.1 分析出错日志(找到不懂的关键词要google); 2.2 gdb调试core文件;bt 看下栈打印以及core信号;...
2021-11-20 09:41:53 686
原创 大小堆 - topK 问题
大数topK问题;最大topK使用小堆,因为堆里面表示的是最大的一批数据,后续添加数据需要尝试替换堆里面的那个最小的数据;最小topK使用大堆,因为堆里面表示的是最小的一批数据,后续添加数据需要尝试替换堆里面的那个最大的数据。
2021-11-18 14:18:05 360
原创 一种调试Linux进程结构体变量的利器
就像动态库函数能被运行中的程序实时调用一样,可执行程序的全局符号函数也可以被用来单独执行。在底层的机器世界中,所谓的函数执行,只不过是将函数对应首条指令的内存地址加载到PC寄存器上执行而已。利用dlsym函数,可以获取 .dynsym section 全局符号对应的内存地址,然后就可以执行这个地址(函数). 在这个特性的基础上,可以开发很多上层调试类业务代码。比如查看进程的重要结构体内容,或者 执行一个程序中的添加链表节点的函数。...
2021-10-23 11:33:27 109
原创 linux 线程 pthread_t 和 线程 tid 的区别
Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),只是该进程与主进程(启动线程的进程)共享一些资源而已,比如代码段,数据段等。有时候我们可能需要知道线程的真实pid。比如进程P1要向另外一个进程P2中的某个线程发送信号时
2021-10-21 16:04:13 2059
原创 线程设置CPU亲和性demo
#define _GNU_SOURCE 1#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<pthread.h>#include<time.h>#include<sched.h>#include<string.h>void* testfunc(void* t) { int c = 0; c = sched_getcpu()..
2021-10-20 10:55:53 870
原创 linux内核一些关键术语的理解
1,指令,微操作,原子操作@1,单条指令,在单处理器结构中,可以认为是原子操作。因为 中断 只能发生在指令之间,而不能发生在执行一条指令的中途。@2,在SMP结构中,某些单条指令操作临界区是不安全的,以 X86 体系 BTS (测试并设置) 指令而言,假设 cup1 和 cpu2 同时 BTS 某个临界区。BTS 需要经过 读内存 -> 寄存器(设置) -> 写内存 三个微操作。因此 cpu1/2 可能同时读取到 0 值,都认为自己已经占有了资源。@3,单处理器的“互斥分辨率”可以.
2021-09-13 02:07:47 157
原创 vscode golang 远程调试
vscode 远程配置代码C:\Users\admin\.ssh\configHost 172.27.229.144 HostName 172.27.229.144 User root Port 4353全局设置:setting.json{"remote.SSH.defaultForwardedPorts":[],"remote.SSH.remotePlatform":{"172.27.229.144":"...
2021-08-11 21:38:00 827 1
转载 mysql数据库操作
一. 备份数据库(如: test):①可直接进入后台即可.(MySQL的默认目录:/var/lib/mysql )②输入命令:[root@obj mysql]# mysqldump -u root -p test>/home/bak/2015-09-10/test.sqlEnter password: 123456此时,已成功将数据库test备份到/home/bak/2015-9-10目录下的test.sql中.二. 还原数据库(如: test):1.第一种方法.[ro
2021-06-01 16:33:55 108
原创 怎么处理工作中的蛋疼的开发环境问题
新岗上任,一些开发环境问题,如果自己 1 个小时都解决不了,就不要再继续蒙头解决了,这种形势下问过来人是过快的解决问题的方式 !
2021-05-21 15:26:56 108
原创 约瑟夫环问题(严格数学推导)
约瑟夫环问题(严格数学推导)一,问题定义:0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-s
2021-04-05 23:59:16 184
pYUV播放器
2016-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人