2024-07-16
linux相关
00

背景:想要后台运行程序,并且不会因为终端的关闭而影响

linux
nohup ./demo > /dev/null 2>&1 &
2024-06-21
golang
00

golang上下文context的使用

作用

通过使用Context,可以做到统一的、全链路的流程控制和数据传递。

常用的方法

golang
ctx=context.WithValue(ctx,"my_key","my_value") // 设置一个值 ctx,cancel:=context.WithCancel(context.Background()) //设置一个取消信号 ctx,cancel:=context.WithTimeout(context.Background(),1*time.Second) // 设置一个超时取消信号 cancel()
2024-06-18
linux相关
00

日常中可能存在文件中包含空行的问题,针对该类问题,可以通过grep或者sed等命令进行整理

  • 通过grep进行处理
grep -v '^$' 原始文件 > 结果文件
2024-06-17
其他
00

redis:什么是主从复制

主从复制,是将数据库分为主从节点,主节点源源不断的将数据复制给从节点,保证主从节点中存有相同的数据

同步方式

  • 全量同步

    • 新从节点加入或主节点重启时
    • 主节点生成 RDB 快照 → 发送给从节点 → 从节点加载
    • 同时生成 复制缓冲区(Replication backlog) 保存写命令
  • 增量同步(Partial Sync)

    • 使用 复制偏移量(offset)
    • 从节点只接收主节点缓冲区内的增量写命令
    • 避免每次都全量同步

有了主从复制,数据就可以有多份副本,这带来了以下几个好处:

  1. 提升了数据库的请求处理能力,一个节点支持的读流量有限,部署多个节点,主从节点可以共同提供服务
  2. 提升整个系统的高可用性,因为从节点有主节点数据的副本,当主节点宕机后,可以立刻提升其中一个从节点为主节点,继续提供服务

哨兵

  • 哨兵是一个额外的哨兵进程,负责监督主节点的健康状态,一般一个哨兵系统需要最起码三个哨兵节点
  • 特点
    • 部署相对简单、对现有单机redis实例做主从复制,兼容性好
    • 不支持数据分片、手动扩容麻烦

redis 集群

  • 概念:redis 集群不同于redis哨兵的高可用方案,他是多个redis节点组成,每个节点负责数据的一部分
  • 特点
    • 节点之间互相通信,自动完成数据分布和故障转移
    • 跨槽操作有限制(多键事务(hash tag解决))
2024-06-14
pyhton
00
import os import pandas as pd files = os.listdir( '文件目录路径') # 使用glob匹配所有csv文件 csv_files = [f for f in files if f.endswith('.csv')] for file in csv_files: tmp = "文件目录路径" + file df = pd.read_csv(tmp, sep='\t')