LinuxDo 新帖推送
168 subscribers
246K photos
306K links
Download Telegram
标题: 分享下自己的服务器 setup 吧
作者: #Kinnikuman
板块: #开发调优
编号: 310148
帖子: https://linux.do/t/topic/310148
时间: 2024-12-24 10:37:19
摘要:
拿到一台新服务器,你们会有哪些 setups 呢?
分享下自己的一些基础工具,便于调试,以 Debian 为例。
修改 hostname
hostnamectl set-hostname 新的主机名

vi /etc/hosts, 将 127.0.1.1 旧主机名改为 127.0.1.1 新主机名。
添加 ssh public keys
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_server
# 或者在服务器上
echo "public key" >> ~/.ssh/authorized_keys

别忘记检查下 /etc/ssh/sshd_config 这一行 PubkeyAuthentication yes。
如果希望直接 root 登录,别忘记 PermitRootLogin prohibit-password 这一个。
最后重启 sshd systemctl restart sshd。
安装 zsh + oh-my-zsh
apt update
apt upgrade
apt install -y zsh
apt install -y curl
apt install -y git
apt install -y vim
apt install -y fzf
chsh -s $(which zsh)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

配置 .zshrc
export ZSH="$HOME/.oh-my-zsh"
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="dst"
plugins=(git z zsh-autosuggestions fzf)
source $ZSH/oh-my-zsh.sh
export LANG=en_US.UTF-8
export LANGUAGE="en_US"
export LC_ALL=en_US.UTF-8
export LS_OPTIONS='--color=auto'
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='nvim'
# fi
alias vi="vim"

别忘记 source ~/.zshrc。
配置 .vimrc
set encoding=utf-8
set fileencoding=utf-8
set termencoding=utf-8
set number
set cursorline
set autoindent
set smartindent
set tabstop=2
set shiftwidth=2
set expandtab
set ignorecase
set smartcase
set hlsearch
set incsearch
syntax on
set background=dark
colorscheme elflord
set timeoutlen=500
set updatetime=300

额外工具推荐

btop, 资源监控工具
vnstat, 网络流量监控
nezha,探针
duf, df 的替代
yazi, 终端文件管理器
tmux, 终端复用,替代 screen

配置 .tmux.conf
unbind C-b
set -g prefix C-a
bind C-a send-prefix

set-option -g status-bg colour9
set-option -g status-fg colour46

bind-key -n M-Up select-pane -U
bind-key -n M-Down select-pane -D
bind-key -n M-Left select-pane -L
bind-key -n M-Right select-pane -R

set -g status-left-length 30
set -g status-right-length 30

set -g pane-border-style fg=brightblack
set -g pane-active-border-style fg=brightgreen

bind -r < resize-pane -L 2
bind -r > resize-pane -R 2
bind -r + resize-pane -U 1
bind -r - resize-pane -D 1

bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

setw -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"

set -g history-limit 10000


仅仅是抛砖引玉,希望各位大佬分享下平时运维服务器有哪些好用工具。
标题: 求邀solidworks大佬进来指导,这个实体如何展开?
作者: #相遇不识君
板块: #开发调优
编号: 310153
帖子: https://linux.do/t/topic/310153
时间: 2024-12-24 10:38:28
摘要:
这是个墩柱,上面是一圈正方形,下面是一圈曲面。最近厂里来了个激光切割机,要展开下料 我也是刚入行不久,还是个新人,不知道怎么去实现呢
标题: <Redis 高手心法> 读书笔记 | P4-数据结构- Hash
作者: #DT_Stone
板块: #读书成诗
编号: 310155
帖子: https://linux.do/t/topic/310155
时间: 2024-12-24 10:39:49
摘要:
用户
订单信息
购物车等

散列表是一种 field-value pairs集合类型. 类似于 java 的 HashMap
redis 的散列表的底层数据结构通常是 dict ,由 数组和链表组成. 数组元素占用的槽位叫做 哈希桶
当散列表出现 hash 冲突时, 就在该槽位挂一个链表 .用拉链法 解决哈希冲突的问题
![[Hash 结构示意图.png]]
散列表的结构有两种

dict 数据结构
listPack (7.0 之前使用的是 zipList) 数据结构

通常情况下都是用 dict 存储数据, 每个 field-value pairs 构成一个 dictEntry 节点.只要同时满足以下两个条件才会使用 listPack 存储代替 dict. 按照 filed 在前,value 在后 紧密相连的方式存放到列表的表尾

每个 field-value pairs 中的 field 和 value 字符串字节数都小于 hash-max-listpack-value 配置的值(默认 64 )
field-value pairs 数量小于 hash-max-listpack-entries 配置的值(默认 512)

每次向散列表写数据时,都会调用 t_hash.c 的 hashTypeConvertListpack 判断是否需要转换底层数据结构
当插入和修改的数据不满足以上两个条件时, 散列表会使用 dict 来存储.
注意:
dict 无法退化成 listPack
虽然使用了 listPack 就无法实现 O(1) 操作数据. 但是能大大减少内存的使用,而且由于数据量较小,性能不会有大量差异
执行 HMSET user:99 username zhangsan gender man 写入两个 field-value pairs




use:99

toto-bytes
num-elements
username
zhangsan
gender
man
listpack-end-byte




对应结构部分

listPack header
listPack header
element
element
element
element
end



dict
![[dict 结构.png]]
typedef struct dict {
dictEntry ht_table\[2];
dictType *type;
unsigned long size;
unsigned long sizemask;
unsigned long used;
void *privdata;
} dict;





*type
存放函数的结构体,定义了一些函数指针,可以用配置自定义函数实现在 dict 的 key 和 value 中存放任何类型的数据




ht_table[2]
存放大小为 2 的散列表指针数据, 每个指针指向一个 dictEntry 类型的散列表


ht_used[2]
记录每个三里坝使用了多少槽位


rehashidx
标记是否正在执行 rehash 操作-1 没有进行 rehash正在进行 rehash 则该值为执行 rehash 操作的 ht_table[0] 散列表 dictEntry 的数组索引


pauserehash
状态> 0 - 暂停 rehash= 0 - 继续进行< 0 - 出错



dictEntry
typedef struct dictEntry {
void *key;
union {
void *val;
uint64_t u64;
int64_t s64;
double d;
} v;
struct dictEntry *next;
} dictEntry;





key
指针指向 field-value pairs 中的 field 实际上指向一个 SDS实例




v
联合体*val : value 是非数字类型时使用该指针存储u64: value 是无符号证书是使用该字段存储s64: value 是有符合整数 使用该字段存储d : value 是浮点数 使用该字段存储


next
指向下一个节点的指针, 当散列表数据增加时,可能出现不同的 field 得到的 hash 相同 ( hash 冲突) redis 使用拉链法即链表将数据串起来




为什么 ht_table[2] 存放了两个指向散列表的指针, 而不是一个?
A:
默认使用 ht_table[0]读/写数据 ,但当散列表的数据数据越来越多时, hash 冲突严重会导致 hash 桶的链表越来越长, 查询性能降低. 散列表保存的 field-value pairs 太多或太少时,需要通过 rehash 对散列表进行扩缩容

扩/缩容
步骤:


翻倍扩缩容:
为提高性能,减少哈希冲突, 会创建一个大小等于 ht_used[0] * 2 散列表 ht_table[1] 也就是每次扩容时,根据散列表 ht_table[0] 的大小 翻倍扩容. 相反缩容时,也是减半缩容


重新计算 field-value pairs 的哈希值.将所有元素分布到新的散列表上 ht_table[1]


所有 field-value pairs 迁移完成后, 修改指针, 释放空间
把 ht_table[0] 指针指向扩容后的散列表.回收原来的散列表的内存空间, ht_table[1] 指向 null, 为下次扩缩容准备.



何时触发扩缩容?

A:


当没有执行 bgSave 或者 BGREWRITEAOF 命令.同时 负载因子大于或等于 1
即: 当前没 RDB 子进程和 AOF 重写子进程在工作


正在执行 bgSave 或 BGREWRITEAOF 命令. 同时负载因子大于等于 5
这时 hash 冲突太严重,在不扩容会导致查询效率太低
负载因子 = 散列表存储的 dictEntry 节点数 / 哈希桶个数.


这个情况下每个 哈希桶都存储一个 dictEntry

需要迁移的数据量很大. rehash 操作是否会阻塞主线程很久?

A: 渐进式 rehash:
为了防止阻塞主线程造成性能问题,redis 并不是一次性把全部的 key 迁移,而是分多次将迁移操作分散到每次请求中,避免集中式 rehash 造成长时间阻塞
dict 会同时使用 ht_table\[0] 和 ht_table\[1] 两个散列的 rehash
1. 将 rehashidx 配置=0 表示rehash 开始
2. rehash 期间,服务端每次处理客户端对 dict 散列表执行添加,查找,删除或是更新操作.除了执行指定操作,还会检查当前 dict 是否处于 rehash 状态. 如果是, 就将散列表 ht_table\[0] 上索引位置为 rehashidx 的哈希桶的链表的所有 field-value pairs rehash 到 ht_table\[1] 上,该 hash桶的数据迁移完成.将 rehashidx 的值+1 表示下一次要迁移的 hash桶 所在的位置.
3. 所有的 field-value pairs 迁移完成后 将 rehashidx 配置的值: -1 . 表示 rehash 操作已完成


rehash 过程中, 字段的删除,查找,更新 和添加操作.要在两个 ht_table 上进行吗?


删除.修改和查找可能会同时在两个散列表中进行. 第一个散列表中没有找到就到第二个散列表中查找
新增操作只会在新的散列表进行


若请求较少, 岂不是要长时间使用两个散列表?

redis server 初始化时, 会注册一个时间事件.定时执行 serverCron 函数, 其中包含 rehash 操作的用于辅助迁移.来避免这个问题
标题: 北京联通宽带,问安装师傅要个公网ip,直接就给了
作者: #Eric
板块: #搞七捻三
编号: 310165
帖子: https://linux.do/t/topic/310165
时间: 2024-12-24 10:44:01
摘要:
打联通客服屁用没有,问宽带师傅,直接就给了
标题: Claude空余车位求
作者: #buwangchuxin
板块: #跳蚤市场
编号: 310166
帖子: https://linux.do/t/topic/310166
时间: 2024-12-24 10:44:10
摘要:
想问一下有没有谁有空余的Claude车位 有的话私信一下或者留言 谢谢啦
标题: 佬友们都是怎么开的microsoft365呀
作者: #NoHello
板块: #跳蚤市场
编号: 310175
帖子: https://linux.do/t/topic/310175
时间: 2024-12-24 10:49:34
摘要:
E5用了四年了担心出问题,想开个家庭车先转移点数据,官网看土耳其区3000多土耳其里拉,80多刀
标题: 「全球摇人」我也来摇一个技术大神之我想摇一个远程的「web3测试工程师」
作者: #Kami
板块: #非我莫属
编号: 310176
帖子: https://linux.do/t/topic/310176
时间: 2024-12-24 10:50:59
摘要:
做defi,solana链上测试;
岗位职责:
负责相关产品测试及质量保障;做defi,solana链上测试;
岗位要求:
1、本科以上学历,2年以上区块链测试工作经验(必要条件),玩过OKX、TP等钱包优先;
2、执行能力强,自学能力强,自驱力很强,以目标为导向。
3、熟悉solana 会编写脚本
工作时间:
9:00-18:30(午休1.5小时)、双休制、享受国家法定节日。
大神感兴趣可留言或者dm我
vx:KamiRimak
tg:@Kelvin_Ge
标题: 3级了,得做点贡献才是,PDF工具分享
作者: #风清扬
板块: #搞七捻三
编号: 310177
帖子: https://linux.do/t/topic/310177
时间: 2024-12-24 10:51:26
摘要:
今天升级3级了,得为L站做点贡献才是,今天就分享一个PDF工具软件,功能强大。
链接:https://pan.quark.cn/s/11cfa322e764
下载好了安装,安装步骤就是简单下一步。安装好的界面如下图

可以点选右上小地球,将其转换成中文界面

转换好后可以如下界面



接下来就选择自己想要的功能,运行起来吧,这里的多数功能都是很多工具收费的,而这里则是免费的!
标题: 蛇币与蛇钞,第二波预约消息有么?
作者: #MuYan
板块: #福利羊毛
编号: 310181
帖子: https://linux.do/t/topic/310181
时间: 2024-12-24 10:51:51
摘要:
蛇币与蛇钞,第二波预约消息有么? 是已经完全没有了么?
标题: 贴子一个月无人回复关闭后,是不是看不到了?
作者: #l516q
板块: #运营反馈
编号: 310186
帖子: https://linux.do/t/topic/310186
时间: 2024-12-24 10:54:30
摘要:
发现好多很长时间以前的帖子想找却找不到了,点赞回复里都找不到了,去哪了
好几个贴子都找不到了
标题: 给大🔥送个节点
作者: #l
板块: #福利羊毛
编号: 310187
帖子: https://linux.do/t/topic/310187
时间: 2024-12-24 10:54:41
摘要:
vless://3b60c977-0df4-45aa-94e3-0a53f48b03f5@jp.samaking.me:20888?type=tcp&security=reality&pbk=pRXjlGjzsatCFUkYcGZDE16LnFVKZ_8Y-jHqo7BS9C0&fp=chrome&sni=tesla.com&sid=07aaf6&spx=%2F#JP IIJ
标题: 「全球摇人」之刚刚有大佬想要看远程「ios开发工程师」
作者: #Kami
板块: #非我莫属
编号: 310189
帖子: https://linux.do/t/topic/310189
时间: 2024-12-24 10:55:26
摘要:
远程办公
必须要管理经验
五年以上区块链交易开发经验
ios开发工程师,28-45K/月(根据个人能力定薪):熟练掌握OC和Swift,熟悉Foundation、UIKit;
感兴趣的大神留言
标题: 如何实现Apple music登录国区号,iPhone App Store登录美区号?
作者: #章北海
板块: #开发调优
编号: 310191
帖子: https://linux.do/t/topic/310191
时间: 2024-12-24 10:56:00
摘要:
长期使用美区号。所有app都是美区下载。现在要使用国区Apple music如何实现?试了一下默认Apple music是跟手机App Store登录账号保持一致。
标题: 美团神券大额膨胀方法+2.9元可多次购买神券入口
作者: #mixie
板块: #福利羊毛
编号: 310192
帖子: https://linux.do/t/topic/310192
时间: 2024-12-24 10:56:58
摘要:
方法:定位在苏州-星悦里-搜索切果坊(马涧店)随便选30左右水果结账页面选择爆会员红包
还是要看运气,有人爆11元,有人爆6、7块的水果券,爆不到别骂我,我也是转来的。

2.9元每天五次购买神券的入口:
美团外卖券入口
扫码也可以
标题: 论坛好同志来了
作者: #tc
板块: #搞七捻三
编号: 310193
帖子: https://linux.do/t/topic/310193
时间: 2024-12-24 10:57:25
摘要: