Conda 常用命令详解
Conda 是一个开源的软件包管理系统和环境管理系统,适用于 Windows、macOS 和 Linux。它可以快速安装、运行和更新软件包及其依赖项,同时还可以创建、保存、加载和切换不同的软件环境。以下是一些常用的 Conda 命令及其详细解释。
安装和更新 Conda安装 MinicondaMiniconda 是 Conda 的一个轻量级版本,包含了 Conda 包管理器和 Python 的基本运行环境。
# 下载 Miniconda 安装脚本并运行wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh
更新 Conda# 更新 conda 自身到最新版本conda update conda
管理环境创建新环境创建一个新环境并指定 Python 版本。
# 创建名为 myenv 的新环境,并指定 Python 版本为 3.8conda create --name myenv python=3.8
激活环境激活一 ...
k8s NFS 搭建
NFS服务搭建创建 RBAC 资源文件 nfs-rbac.yamlapiVersion: v1kind: ServiceAccountmetadata: name: nfs-client-provisioner namespace: kube-system---kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: nfs-client-provisioner-runnerrules: - apiGroups: [""] resources: ["persistentvolumes"] verbs: ["get", "list", "watch", "create", "delete"] - apiGroups: [""] resources: ["persistentvolumeclaims" ...
k8s mysql 搭建
mysql服务mysql-config.yamlapiVersion: v1kind: ConfigMapmetadata: name: mysql-config labels: app: mysqldata: my.cnf: |- [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] max_connections = 2000 secure_file_priv=/var/lib/mysql sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION #在secure那行
mysql-pvc.yamlapiVersion: v1kind: PersistentVolumeClaimmetadata: name: mysql-pvcspec ...
k8s pg 搭建
Postgre.yamlapiVersion: v1kind: Namespacemetadata: name: postgres---apiVersion: v1kind: ConfigMapmetadata: name: postgres-config namespace: postgres labels: app: postgresdata: POSTGRES_DB: postgresdb POSTGRES_USER: admin POSTGRES_PASSWORD: g4wjer4cRHTDSAVrHx4o/kJeaqMkKNY4c70kuJ3Dfj0=---apiVersion: v1kind: PersistentVolumeClaimmetadata: name: postgre-pvc namespace: postgresspec: storageClassName: nfs-storage accessModes: - ReadWriteOnce resources: requests: storage: 5 ...
Optimizing Storage Layout for InnoDB Tables(优化InnoDB表)
Optimize 优化当数据达到稳定大小,表增加了数百兆,或当无法更好的优化索引或优化应用代码的时候,可以考虑使用 optimize table tablename 来优化,重组只需要用较少的磁盘I/O来执行全表扫描,optimize命令作用。
当你对InnoDB表运行OPTIMIZE TABLE命令时,MySQL实际上会执行以下操作:
创建一个新的空表。
将旧表的数据复制到新表中。
删除旧表。
将新表重命名为旧表的名称。
然后,MySQL会运行ANALYZE TABLE命令来更新表的统计信息,以帮助优化查询性能。
好处是改进了索引中数据的打包,并减少了表空间内和磁盘上的碎片 。因表结构与数据不通,所以每个表重组后的收益也不同,收益会随着时间的推移而减少,直到下次优化表。如果表很大,或者要重新生成的索引不适合缓冲池,则此操作可能会很慢。将大量数据添加到表后,第一次运行通常很慢。
长Primary Key
使用长PRIMARY KEY 会浪费大量磁盘空间,表的所有二级索引都会记录 Primary Key的值,空间会随着二级索引的增加而成倍增加。
使用Varchar数据 ...
k8s redis 搭建
namespace.yamlapiVersion: v1kind: Namespacemetadata: name: redis labels: app.kubernetes.io/name: redis app.kubernetes.io/instance: redis
config.yamlkind: ConfigMapapiVersion: v1metadata: name: redis-config namespace: redis labels: app: redisdata: redis.conf: |- dir /data port 6379 bind 0.0.0.0 appendonly yes protected-mode no requirepass pf6O9iC7fN7GaeCKutY4ZBHRXqJNY7ixUtx1tHs8Dfc= pidfile /data/redis-6379.pid
Pvc.yamlapiVersion: v1kind: PersistentVolumeCl ...
字典
Redis中的字典由dict.h/dict结构表示typedef struct dict { // 类型特定函数 dictType *type; // 私有数据 void *privdata; // 哈希表 dictht ht[2]; // rehash索引 //当rehash不在进行时,值为-1 in trehashidx; /* rehashing not in progress if rehashidx == -1 */} dict;
dictType 和 privdata
type属性和privdata属性是针对不同类型的键值对,为创建多态字典而设置的:
type属性是一个指向dictType结构的指针,每个dictType结构保存了一簇用于操作特定类型键值对的函数,Redis会为用途不同的字典设置不同的类型特定函数。
而privdata属性则保存了需要传给那些类型特定函数的可选参数
Dictht:
ht属性是一个包含两个项的数组,数组中的每个项都是一个dictht哈希表, ...
字符串SDS
redis字符串由类似HashMap, K V组成,其中所说的SDS就是hashmap中的V,结构体如下:struct sdshdr { // 记录buf数组中已使用字节的数量 // 等于SDS所保存字符串的长度 int len; // 记录buf数组中未使用字节的数量 int free; // 字节数组,用于保存字符串 char buf[];};
free属性的值为0,表示这个SDS没有分配任何未使用空间。
len属性的值为5,表示这个SDS保存了一个五字节长的字符串。
buf属性是一个char类型的数组,数组的前五个字节分别保存了’R’、’e’、’d’、’i’、’s’五个字符,而最后一个字节则保存了空字符’\0’。
SDS实现了空间预分配和惰性空间释放两种优化策略
空间预分配
如果对SDS进行修改之后,SDS的长度(也即是len属性的值)将小于1MB,那么程序分配和len属性同样大小的未使用空间,这时SDS len属性的值将和free属性的值相同。举个例子,如果进行修改之后,SDS的len将变成13字节,那 ...