avatar
文章
124
标签
132
分类
17
首页
归档
标签
分类
友链
咕咕
搜索
首页
归档
标签
分类
友链

咕咕

TCL语言入门
发表于2019-01-13|Redis•TCL
一、简述Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,一条TCL的命令串包含若干条命令,命令使用换行符或分号来隔开;而每一条命令包含若干个域(field),域使用空白(空格或TAB)来隔开——第一个域是命令的名字,其它的域是该命令的参数。 二、基本语法2.1、注释注释在调试的过程中轻常碰到。TCL语言的注释符号是 # ,加在每一行的最前面。 2.2、脚本、命令、单词一个TCL 脚本 可以包含一个或多个 命令 。 命令 之间必须用换行符或分号隔开,推荐使用换行符分开。下面就是一个合法的TCL 脚本 ,它由两个赋值 命令 组成; set a 1set b 2 TCL的每一个 命令 包含一个或几个 单词,第一个单词代表命令名,另外的单词则是这个命令的参数,单词之间必须用 空格 或 TAB键 隔开。上面代码中的 set , a , 1 分别是三个单词。 TCL解释器对一个 命令 的求值过程分为两部分:分析和执行; 在分析阶段,TCL 解释器运用规则把 命令 分成一个个独立的单词,同时进行必要的 置换(substitution) ; 在执行阶段,TCL...
localtime函数死锁分析
发表于2019-01-12|Redis•锁
一、简介前段时间,线上的redis实例出现了一些异常的情况,具体变现就是bgsave子进程hang住了,从而引发了后续的很多问题,通过排查最终发现是localtime相关函数引起的,这里做一下总结记录。 C 库函数 *struct tm *localtime(const time_t timer) 作用是根据本地时区信息将 time 函数获取的 UTC 时间调整为为本地时间,并将具体的时间信息填充到tm结构体之中; 二、详细介绍由于localtime函数的具体底层实现的缘由,在某些场景下会触发localtime函数导致的死锁问题,这里详细的分析原因以及后续的处理方案; 2.1 底层实现分析localtime函数底层的调用栈信息为: localtime() => __tz_convert() localtime 函数的底层代码实现(代码位于./time/localtime.c): /* Return the `struct tm' representation of *T in local time. */struct tm *localtime...
Clang-Format格式化工具
发表于2019-01-08|C/C++•编程语言•工具
Clang-Format 是基于 clang 的一个命令行工具,这个工具能够自动化格式 C/C++/Obj-C 代码,支持多种代码风格(Google, Chromium, LLVM, Mozilla, WebKit),同时也支持自定义风格(通过编写.clang-format文件),这里记录了常用的配置 Clang-Format 常用的配置项及其含义。 一、安装方式# macbrew install clang-format 二、参数解析官方文档的参数解析为:http://clang.llvm.org/docs/ClangFormatStyleOptions.html 2.1 参数解析BasedOnStyle样式信息: LLVM:一种遵循LLVM coding standards的样式; Google:一种遵循Google’s C++ style guide的样式; Chromium:一种遵循Chromium’s style guide的样式; Mozilla:一种遵循Mozilla’s style...
hashlimit-Iptables笔记
发表于2019-01-04|hashlimit•iptables•网络
一、简介hashlimit是iptables的一个匹配模块,用它结合iptables的其它命令可以实现限速的功能。注意:单独hashlimit模块是无法进行限速的; 二、原理介绍实际上,使用 hashlimit 进行限速主要包括两个步骤: 对符合 hashlimit 匹配规则包放行 丢弃/拒绝未放行的包 2.1 令牌桶模型hashlimit 的匹配方式是基于令牌桶(Token bucket)的模型,令牌桶是一种网络通讯中常见的缓冲区工作原理,它有两个重要的参数,令牌桶容量n和令牌产生速率s; 令牌桶容量n:可以把令牌当成是门票,而令牌桶则是负责制作和发放门票的管理员,它手里最多有n张令牌。初始时,管理员开始手里有n张令牌,每当一个数据包到达后,管理员就看看手里是否还有可用的令牌。如果有,就把令牌发给这个数据包,hashlimit 就告诉iptables,这个数据包被匹配了,而当管理员把手上所有的令牌都发完了,再来的数据包就拿不到令牌了;这时,hashlimit 模块就告诉 iptables...
Linux内核软件框架-Netfilter概述
发表于2019-01-03|Netfilter•Linux
一、简述Netfilter是Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。利用运作于用户空间的应用软件,如iptables等,来控制Netfilter,系统管理者可以管理通过Linux操作系统的各种网络数据包。1990年代,Netfilter在Linux 2.3.15版时进入Linux内核,正式应用于Linux 2.4版。 现今许多市面上许多的IP分享器或无线网络路由器(Wireless...
PrettyTable-Python使用笔记
发表于2019-01-02|PrettyTable•Python
一、简述PrettyTable是一个简单的Python库,旨在快速,轻松地在视觉上吸引人的ASCII表中表示表格数据。 它的灵感来自PostgreSQL shell psql中使用的ASCII表。 PrettyTable允许选择要打印的列,列的独立对齐(左对齐或右对齐或居中)以及通过指定行范围打印“子表”。GitHub 二、安装与使用# 安装:使用pip可以方便的安装PrettyTablepip install PrettyTable# 使用:python代码中引入该库import prettytable as pt 三、相关API介绍3.1、创建表3.1.1、普通创建表:import prettytable as pttb = pt.PrettyTable() 3.1.2、从已有的文件中创建# 【利用CSV文件创建】# + 变量pt将是一个完全填充的PrettyTable对象;# + CSV文件的第一行将被解释为字段名称并用于表头;# + 可以通过传递“field_names”关键字参数来指定自己的字段名称;from prettytable import...
Linux下的Cache/Buffer
发表于2019-01-01|内存
经常在使用 Linux 的时候会发现有一些内存经常被 Cache 和 Buffer 占用,而关于这两者之间的关系与区别却不了解,这篇文章主要就是介绍一下两者的区别与相关的运维手段。 一、含义 Cache(缓存):指 CPU 和内存之间高速缓存,为了调高CPU和内存之间数据交换而设计,用来给文件做缓存(相关的是PageCache),主要是针对读操作设计的; Buffer(缓冲):指在写入磁盘前的存储在内存中的内容,为了提高内存和硬盘(或其他I/O设备的数据交换而设计),主要是针对写操作设计的; 下面为Linux下free指令显示的信息,以下简单描述一下各选项的含义: [root@* ~]# free -g total used free shared buff/cache availableMem: 125 2 109 1 13 120Swap: 7 ...
Netfilter的数据包过滤器iptables
发表于2019-01-01|iptables•Netfilter
...
共享库LD_PRELOAD环境变量分析
发表于2019-01-01|C/C++
一、简介LD_PRELOAD是Linux/Unix系统的一个环境变量,它影响程序的运行时的链接(Runtime linker),它允许在程序运行前定义优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的。 动态库的搜索路径搜索的先后顺序是: 编译目标代码时指定的动态库搜索路径(可指定多个搜索路径,按照先后顺序依次搜索); 环境变量LD_LIBRARY_PATH指定的动态库搜索路径(可指定多个搜索路径,按照先后顺序依次搜索); 配置文件/etc/ld.so.conf中指定的动态库搜索路径(可指定多个搜索路径,按照先后顺序依次搜索); 默认的动态库搜索路径/lib; 默认的动态库搜索路径/usr/lib; 二、模拟实现这里并不是直接替换系统中的函数调用,而是采用添加hook的方式进行; main.c #include...
RPM打包记录
发表于2019-01-01|RPM
一、简介RPM(Redhat Package Manager)是一个开放的软件包管理系统,用于Redhat、CentOS、Fedora等Linux 分发版的常见的软件包管理器。因为它允许分发已编译的软件,所以用户只用一个命令就可以安装软件。 RPM拥有功能强大的查询选项。我们可以搜索数据库来查询软件包或文件。RPM软件包中的文件是以压缩格式存放的,拥有一个定制的二进制头文件,其中包含有关包和内容的信息,可以让我们对单个软件包的查询简便又快速。 RPM另一个强大的功能是进行软件包的验证。如果我们担心误删了某个软件包中的某个文件,我们就可以对它进行验证。任何非正常现象将会被通知。如果需要的话还可以重新安装该软件包。在重新安装过程中,所有被修改过的配置文件将被保留。 RPM设计目标之一就是要保持软件包的原始特征, 就象该软件的原始发布者发布软件时那样。通过使用RPM我们可以拥有最初的软件和最新的补丁程序,还有详细的软件构建信息。 概括的说:RPM有五种基本的操作功能(不包括创建软件包):安装、卸载、升级、查询、和验证。 二、打包基础2.1...
1…789…13
avatar
bugwz
持续学习,持续进步
文章
124
标签
132
分类
17
最新文章
Ceph Crimson 集群搭建指南
Ceph Crimson 集群搭建指南2025-01-12
Ceph QoS 机制深入分析
Ceph QoS 机制深入分析2024-10-25
Ceph CRUSH 实现细节分析
Ceph CRUSH 实现细节分析2023-06-30
译 - CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data
译 - CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data2023-06-20
译 - Replication Under Scalable Hashing: A Family of Algorithms for Scalable Decentralized Data Distribution
译 - Replication Under Scalable Hashing: A Family of Algorithms for Scalable Decentralized Data Distribution2023-06-10
分类
  • Redis17
    • RedisCluster1
    • RedisModule10
    • 异地多活1
    • 演进史3
    • 特性1
    • 相关库1
  • 论文10
标签
C/C++ Ceph Shadowsocks 内存分配器 FTP PrettyTable 布隆过滤器 Go Netfilter Makefile Docker 负载均衡 Linux iTerm2 MacOS GitHub Pages Memcached C# RedisIntervalSet 树 Iptables Ubuntu SS-Panel Tools Redhat RedisProtobuf sar TCL 常用命令 vsftpd SSD nf_conntrack 性能分析 数据库 Hexo Redis 博客 NoSQL 内存 Raid
归档
  • 一月 2025 1
  • 十月 2024 1
  • 六月 2023 4
  • 四月 2023 1
  • 一月 2023 1
  • 十二月 2022 3
  • 十一月 2022 1
  • 十月 2022 5
网站信息
文章数目 :
124
本站总字数 :
439.5k
本站访客数 :
本站总浏览量 :
©2019 - 2025 By bugwz
框架 Hexo 6.3.0|主题 Butterfly 5.3.5