摘要: 本文更新于2022-12-19,使用FreeSWITCH 1.10.7。 官方帮助文档:https://freeswitch.org/confluence/ 说明:下文中,部分大写为自定义变量,根据实际情况填写。使用[]引起表示内容可选,|表示使用左侧或右侧内容,...表示重复之前内容。 目录结构 阅读全文
posted @ 2022-12-09 00:24 garvenc 阅读(3820) 评论(0) 推荐(1)
摘要: 本文更新于2022-11-08。 版本 FreeSWITCH版本号由3部分构成,以点隔开。第1部分为主版本号,第2部分为次版本号(偶数为稳定版,奇数为开发版),第3部分为补丁及更新的标志。 源代码 在Debian 10下按照官方文档安装的源代码目录为/usr/src/freeswitch。 clie 阅读全文
posted @ 2022-11-08 23:29 garvenc 阅读(5079) 评论(0) 推荐(0)
摘要: 本文更新于2022-12-09。 电话交换技术 VoIP(Voice Over IP)即承载于IP网上的语音电话。 PSTN(Public Switched Telephone Network)即公共交换电话网。 交换机(Switch或Exchange)位于电话网的中心,用于连接每个用户。 交换机间 阅读全文
posted @ 2022-10-09 12:07 garvenc 阅读(5598) 评论(0) 推荐(0)
摘要: 本文更新于2022-05-03。 基本概念 SIP(Session Initiation Protocol),即会话初始协议,是一个控制发起、修改和终结交互式多媒体会话的信令协议。 SIP是一个基于文本的协议,是一个对等的协议。 用户代理(User Agent,UA)是在SIP网络中发起或响应SIP 阅读全文
posted @ 2022-08-25 17:41 garvenc 阅读(900) 评论(0) 推荐(0)
摘要: 本文更新于2022-05-02。 SDP(Session Description Protocol),即会话描述协议。 文档见RFC 4566:https://datatracker.ietf.org/doc/rfc4566。 a(Attributes):属性。用于描述上一个非a字段。 a=inac 阅读全文
posted @ 2022-08-20 16:12 garvenc 阅读(1015) 评论(0) 推荐(0)
摘要: 本文更新于2022-02-27。 RTP RTP(Real-time Transport Protocol),即实时传输协议。 文档见RFC 3550:https://datatracker.ietf.org/doc/rfc3550。 RTP包的头部格式如下: 0 1 2 3 0 1 2 3 4 5 阅读全文
posted @ 2022-08-06 15:09 garvenc 阅读(409) 评论(0) 推荐(0)
摘要: 本文更新于2021-12-11,使用MongoDB 4.4.5。 范式化与反范式化 范式化(normalization)将数据分散到多个集合,不同集合之间相互引用数据。反范式化(denormalization)将每个文档所需数据都嵌入文档内部。 一个集合中包含的对其他集合的引用数量叫基数(cardi 阅读全文
posted @ 2022-02-23 22:41 garvenc 阅读(202) 评论(0) 推荐(0)
摘要: 本文更新于2026-05-08,使用MongoDB 4.4.5。 目录adminsystem.usersconfigchangelogchunkscollectionsdatabaseslockssettingsshardstagslocalmeoplog.rsslavesstartup_logsy 阅读全文
posted @ 2022-02-17 21:03 garvenc 阅读(976) 评论(0) 推荐(0)
摘要: 本文更新于2026-04-14,使用MongoDB 4.4.5。 目录bsondumpmongomongodmongodumpmongoexportmongofilesmongoimportmongorestoremongosmongoshmongostatmongotop bsondump BSO 阅读全文
posted @ 2022-02-14 19:43 garvenc 阅读(2208) 评论(0) 推荐(0)
摘要: 本文更新于2022-01-08,使用MongoDB 4.4.5。 单台服务器下创建分片 确保/data/db目录存在且当前系统用户有读写权限。例如(需根据实际情况设置权限): su root mkdir -p /data/db chmod 0777 /data /data/db 启动shell但不连 阅读全文
posted @ 2022-02-01 23:35 garvenc 阅读(327) 评论(0) 推荐(0)
摘要: 本文更新于2022-01-08,使用MongoDB 4.4.5。 目录单台服务器下创建副本集多台服务器下创建副本集重新启动并连接到副本集维护副本集节点 单台服务器下创建副本集 确保/data/db目录存在且当前系统用户有读写权限。例如(需根据实际情况设置权限): su root mkdir -p / 阅读全文
posted @ 2022-01-30 12:51 garvenc 阅读(404) 评论(0) 推荐(0)
摘要: 本文更新于2026-03-17,使用MongoDB 6.0.4。 目录辅助扩展edithelpitexitshow collectionsshow databasesshow dbsshow tablesshow usersuseBulkWriteResultdbDBDATABASE.COLLECT 阅读全文
posted @ 2022-01-29 11:16 garvenc 阅读(442) 评论(0) 推荐(0)
摘要: 本文更新于2025-09-20。 目录在Debian下安装安装社区版服务器(MongoDB Community Server)server安装社区版服务器(MongoDB Community Server)mongos安装Shell(MongoDB Shell)安装数据库工具(MongoDB Dat 阅读全文
posted @ 2022-01-27 20:35 garvenc 阅读(473) 评论(0) 推荐(0)
摘要: 本文更新于2023-08-27,使用MongoDB 4.4.5。 目录与关系数据库比较组成数据库集合文档数据类型填充因子写入安全自然排序固定集合循环游标索引典型场景GridFS聚合MapReduce副本集同步心跳驱动程序分片连接身份验证系统分析器诊断日志日记系统BSON线路协议数据文件内存映射存储引 阅读全文
posted @ 2022-01-23 15:16 garvenc 阅读(528) 评论(0) 推荐(0)
摘要: 本文更新于2021-11-03,使用Redis 4.0.8,操作系统为CentOS 7.5。 CentOS 7下直接运行redis-trib.rb可能出现如下提示,原因是没有安装Ruby: /usr/bin/env: ruby: No such file or directory 安装Ruby。 y 阅读全文
posted @ 2021-11-03 10:55 garvenc 阅读(191) 评论(0) 推荐(0)
摘要: 本文更新于2024-08-14,使用Docker 27.1.2,操作系统为Debian 12.6 (bookworm)。 目录dockerd服务目录和文件系统服务配置文件配置文件 说明:下文中,大写为自定义变量,根据实际情况填写。使用[]引起表示内容可选,|表示使用左侧或右侧内容,...表示重复之前 阅读全文
posted @ 2021-08-04 21:09 garvenc 阅读(381) 评论(0) 推荐(0)
摘要: 本文更新于2021-07-05,操作系统为Debian 8.9。 致谢:https://hostloc.com/thread-484625-1-1.html 安装ipset。 sudo apt-get install ipset 将以下脚本保存至文件allcn.sh。 mmode=$1 #下面语句可 阅读全文
posted @ 2021-07-05 18:04 garvenc 阅读(2375) 评论(0) 推荐(0)
摘要: 本文更新于2024-08-14。 目录安装在Debian安装使用脚本安装用户组 安装 官方安装文档:https://docs.docker.com/engine/install/ 可从https://download.docker.com/选择相应版本的安装包,或使用阿里云镜像站https://mi 阅读全文
posted @ 2021-06-07 08:50 garvenc 阅读(310) 评论(0) 推荐(1)
摘要: 本文更新于2026-04-12,使用nginx 1.16。 目录模块语法注释变量PCRE运算符配置项error_logeventsevents.worker_connectionshttphttp.access_loghttp.client_max_body_sizehttp.default_typ 阅读全文
posted @ 2021-04-30 14:00 garvenc 阅读(666) 评论(0) 推荐(0)
摘要: 本文更新于2021-02-06,使用Redis 6.0.8,操作系统为Deepin 15.11。 复制步骤: 主服务器 从服务器 (等待命令进入) 连接(或者重连接)主服务器,发送SYNC命令 开始执行BGSAVE,并使用缓冲区记录BGSAVE之后执行的所有写命令 根据配置选项来决定是继续使用现有的 阅读全文
posted @ 2021-02-06 17:02 garvenc 阅读(84) 评论(0) 推荐(0)
摘要: 本文更新于2021-02-02,使用Redis 6.0.8,操作系统为Deepin 15.11。 Redis的持久化有两种方式: 快照(snapshotting):将某一时刻的所有数据都写入磁盘中。 只追加文件(append-only file/AOF):将被执行的写命令追加到磁盘中。 当持久化需要 阅读全文
posted @ 2021-02-02 20:49 garvenc 阅读(151) 评论(0) 推荐(0)
摘要: 本文更新于2026-01-22,使用Redis 6.0.8,操作系统为Deepin 15.11。 目录字符串(STRING)APPENDBITCOUNTBITOPDECRDECRBYGETGETBITGETRANGEINCRINCRBYINCRBYFLOATSETSETBITSETNXSETRANG 阅读全文
posted @ 2021-01-31 11:21 garvenc 阅读(961) 评论(0) 推荐(0)
摘要: 本文更新于2026-02-09,使用Redis 8.3.240,操作系统为Deepin 15.11。 目录Linux下安装编译创建Systemd服务Docker下运行端口配置命令行工具redis-benchmarkredis-check-aofredis-check-rdbredis-cliredi 阅读全文
posted @ 2021-01-30 23:03 garvenc 阅读(732) 评论(0) 推荐(0)
摘要: 本文更新于2026-03-15,使用Docker Compose 1.27.4,操作系统为Debian 10。 目录安装docker-compose命令docker-compose builddocker-compose downdocker-compose helpdocker-compose k 阅读全文
posted @ 2020-11-29 22:02 garvenc 阅读(762) 评论(0) 推荐(0)
摘要: 本文更新于2023-02-28,使用Docker 23.0.1。 官方文档参阅:https://docs.docker.com/engine/reference/builder/ Dockerfile所在的目录为构建上下文,Docker会在构建镜像时将构建上下文和该上下文中的文件和目录上传到Dock 阅读全文
posted @ 2020-11-26 19:52 garvenc 阅读(148) 评论(0) 推荐(0)
摘要: 本文更新于2026-03-23,使用Docker 23.0.1,操作系统为Debian 11。 目录基本概念docker命令docker attachdocker builddocker commitdocker containerdocker container attachdocker cont 阅读全文
posted @ 2020-11-25 22:35 garvenc 阅读(839) 评论(0) 推荐(0)
摘要: 本文更新于2026-02-08。 说明:下文中,大写为自定义变量(个别大写的类型除外),根据实际情况填写。使用<>引起表示内容可选,|表示使用左侧或右侧内容,...表示重复之前内容。 本文只说明简要的使用,更详细的使用可参阅MDN文档:https://developer.mozilla.org/en 阅读全文
posted @ 2020-09-01 20:22 garvenc 阅读(447) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。 常见的监控系统有: Cacti:使用SNMP采集数据,RRDtool绘图。 Nagios:通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和4个可选的组件(NRPE、NSCA、N 阅读全文
posted @ 2020-08-06 18:53 garvenc 阅读(166) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-04,使用MySQL 5.7,操作系统为Deepin 15.4。 高可用有两个主流架构:MMM和MHA。 阅读全文
posted @ 2020-08-05 19:11 garvenc 阅读(131) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-04,使用MySQL 5.7,操作系统为Deepin 15.4。 Cluster是一组节点的组合,按照节点类型可分为3部分: 管理节点:只能有一个,使用config.ini配置文件进行维护。 SQL节点:存放表结构,应用只能先访问SQL节点,然后SQL节点再访问数据节点返回 阅读全文
posted @ 2020-08-04 18:34 garvenc 阅读(261) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-04,使用MySQL 5.7,操作系统为Deepin 15.4。 复制是指将主库的DDL和DML操作通过二进制日志传到从库上,然后从库对这些日志重做,从而使得主库和从库的数据保持同步。 复制的优点有: 如果主库出现问题,可以快速切换到从库提供服务。 可以在从库上执行查询操作 阅读全文
posted @ 2020-08-03 18:38 garvenc 阅读(295) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。 MySQL的备份分为逻辑备份和物理备份,物理备份分为冷备份和热备份。恢复分为完全恢复和不完全恢复,不完全恢复又分为基于时间点的恢复和基于位置的恢复。 逻辑备份和恢复 使用mysqldump进行逻辑备份,如my 阅读全文
posted @ 2020-07-29 19:20 garvenc 阅读(310) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。 MySQL有4种日志:错误日志、二进制日志(BINLOG)、查询日志、慢查询日志。 错误日志 错误日志记录了mysqld的启动和停止,以及运行过程中发生的严重错误,其格式为纯文本,默认开启。 SHOW VAR 阅读全文
posted @ 2020-07-28 19:51 garvenc 阅读(395) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-04,使用MySQL 5.7,操作系统为Deepin 15.4。 忘记roo密码 使用mysqld_safe --skip-grant-tables跳过权限系统启动服务。 不使用账号密码,直接使用mysql登录。 使用UPDATE mysql.user SET authen 阅读全文
posted @ 2020-07-27 18:35 garvenc 阅读(349) 评论(0) 推荐(0)
摘要: 本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。 权限 权限存取需要用到mysql库中user、db、host、tables_priv、columns_prvi这几个权限表。列分为4个部分:用户列、权限列、安全列、资源控制列。权限列又分为普通权限和管理权限。 阅读全文
posted @ 2020-07-23 18:54 garvenc 阅读(473) 评论(0) 推荐(0)
摘要: 本文更新于2019-06-29,使用MySQL 5.7,操作系统为Deepin 15.4。 应用可使用PrepareStatement + Bind-Variable来防止SQL注入。 已知的非法符号有: ( ) < > [ ] /* */ -- # ; = ' + 空格 % 阅读全文
posted @ 2020-07-22 18:33 garvenc 阅读(240) 评论(0) 推荐(0)
摘要: 本文更新于2020-04-05,使用MySQL 5.7,操作系统为Deepin 15.4。 使用连接池 对于访问数据库来说,建立连接的代价比较昂贵。 减少对MySQL的访问 应用应避免对同一数据做重复检索,减少对数据库无谓的重复访问。 在应用端增加CACHE层可减轻数据库的负担。 负载均衡 负载均衡 阅读全文
posted @ 2020-07-21 19:37 garvenc 阅读(254) 评论(0) 推荐(0)
摘要: 本文更新于2020-04-05,使用MySQL 5.7,操作系统为Deepin 15.4。 使用符号连接分布IO 利用操作系统的符号连接,将不同的数据库、表、索引指向不同的物理磁盘,从而达到分布磁盘IO的目的。 禁止操作系统更新文件的atime属性 对于读写频繁的数据库文件来说,记录文件的访问时间一 阅读全文
posted @ 2020-07-20 19:28 garvenc 阅读(935) 评论(0) 推荐(0)
摘要: 本文更新于2020-04-05,使用MySQL 5.7,操作系统为Deepin 15.4。 MySQL体系结构 MySQL实例由一组后台线程、一些内存块和若干服务线程组成。 后台线程包括: 主线程:主要负责将脏缓存页刷新到数据文件,执行purge操作,触发检查点,合并插入缓冲区等。 IO线程: in 阅读全文
posted @ 2020-07-18 15:43 garvenc 阅读(572) 评论(0) 推荐(0)
摘要: 本文更新于2019-08-18,使用MySQL 5.7,操作系统为Deepin 15.4。 一旦数据库对象设计完毕并投入使用,再进行修改就比较麻烦。 优化表的数据类型 select_statement PROCEDURE ANALYSE([max_elements[, max_memory]]) 对 阅读全文
posted @ 2020-07-16 19:26 garvenc 阅读(332) 评论(0) 推荐(0)