自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BobChill的博客

快乐生活

  • 博客(96)
  • 收藏
  • 关注

原创 redis查询变慢的排查

如果在使用 Redis 时,发现访问延迟增大,该如何进行排查?首先,建议你去查看一下 Redis 的慢日志。Redis 提供了慢日志命令的统计功能,我们通过以下设置,就可以查看有哪些命令在执行时延迟比较大。首先设置 Redis 的慢日志阈值,只有超过阈值的命令才会被记录,这里的单位是微妙,例如设置慢日志的阈值为 5 毫秒,同时设置只保留最近 1000 条慢日志记录:# 命令执行超过5毫秒记录慢日志CONFIG SET slowlog-log-slower-than 5000# 只保留最近1

2022-01-24 21:30:55 1993

原创 golang 浮点数解析

1.浮点数陷阱:var f1 float64 = 0.3var f2 float64 = 0.6fmt.Println(f1 + f2) //0.8999999999999999结果不是我们想的0.9,这和浮点数在内存中的存储有关,计算机通过二进制的形式存储数据,大多数小数表示成二进制后是近似且无限的。2.浮点数在内存中的表示:最开头为符号位,1代表负数,0表示正数。以十进制数0.085为例,0.085 * 2 ** 4 = 1.36,故其可以写成1.36 * 2^-4,

2022-01-23 21:30:14 775

原创 高质量c/c++代码——不用非volatile变量引用volatile变量

被volatile修饰的变量,每次都去内存中取值,避免了编译器优化,不从寄存器中取。但是不能用一个非volatile的变量去引用volatile变量错误代码#include <stdio.h> void func(void) { static volatile int **ipp; static int *ip; static volatile int i = 0; printf("i = %d.\n", i); ipp = &ip; /* M

2021-11-30 16:29:12 2827

原创 高质量c/c++代码——不安全宏传参不能附带运算

错误例子:#define ABS(x) (((x) < 0) ? -(x) : (x)) void func(int n) { /* Validate that n is within the desired range */ int m = ABS(++n); /* ... */}这段代码的问题在于宏扩展后n会做两次运算:m = (((++n) < 0) ? -(++n) : (++n));正确例子:#define ABS(x) (((x) &l..

2021-11-28 16:31:00 3006

原创 mergesort与逆序对个数

mergesort代码如下:def merge_lists(left, right): res = [] lc = rc = 0 while lc < len(left) and rc < len(right): if left[lc] <= right[rc]: res.append(left[lc]) lc += 1 else: res.append(r

2020-11-23 21:21:25 334

原创 快速排序-python极简版

def qsort(seq): if seq == [] or seq is None: return else: pivot = seq[0] lesser = qsort([x for x in seq[1:] if x<pivot]) greater = qsort([x for x in seq[1:] if x>=pivot]) return lesser + [pivot] + grea.

2020-11-22 01:12:35 117

原创 HTML里的data-href,data-uri属性的用法

data-* 属性用于存储页面或应用程序的私有自定义数据。data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力。存储的(自定义)数据能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。data-* 属性包括两部分:属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符属性值可以是任意字符串简单来说就是存储一些简单信息,然后可以通过js拿到这些信息,像你说的data..

2020-11-22 00:36:46 5851

原创 SELinux: 如何让selinux对某些命令放行,自定义selinux规则。

1.setting selinux to permissive mode暂时关闭selinux,让操作进行下去,这个时候selinux还是会将记录log到audit.log里的setenforce 02.disabling selinux dontaudit这样可以让selinux没有遗漏的记录所有permission denied message,同样写入audit.logsemodule --disable_dontaudit --build检验dontaudit有没有被禁用

2020-10-06 21:52:24 1101

原创 如何查看rpm包的build时间

/bin/rpm -q --queryformat='%{BUILDTIME}' -p $rpmfile

2020-02-05 13:20:40 1322

原创 绝对装入,静态重定位,动态重定位

绝对装入:在编译时就知道程序将放入内存中的那个位置,编译程序将产生绝对地址的目标代码。装入程序按照装入模块中的地址,将程序和数据装入内存。绝对装入只适用于单道程序环境。静态重定向:装入模块中的地址还是逻辑地址,直到真正装入时将逻辑地址变换位物理地址,程序运行期间无法移动动态重定向:现代技术机基本都用这种技术。装入程序把装入模块装入内存后,并不会立即把逻辑地址转换为物理地址,而是把地址转换推...

2019-10-09 23:05:43 4975

原创 分布式系统的CAP

CAP定律(Consistency,Availability,Partition ),说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。一致性Consistency: Transactions也就是说支持事务, 可用性Availability:Up-time高可用,数据有分节点备份的,一个节点down了不影响系统。 分区容错性Partion...

2019-10-03 17:20:51 189

原创 tcpdump抓包解析

tcpdump 是一款强大的工具,支持多种选项和过滤规则,适用场景十分广泛。由于它是命令行工具,因此适用于在远程服务器或者没有图形界面的设备中收集数据包以便于事后分析。它可以在后台启动,也可以用 cron 等定时工具创建定时任务启用它。-D:查看网卡选项-i:选定网卡-w:写入文件-n: disable dns-s: package size...

2019-09-16 15:29:20 225

原创 mysql执行计划的索引分析

索引优化第一步是查看执行计划,可以用explain/desc命令来查看:执行计划的输出结果如图这里面要特别注意的是type和Extra这两列,如上图中type为ALL,意味着该select命令是对表进行了全部扫描,这样效率是比较低的,需要优化。type行可能的值有:null, index, eq-ref, ref, range, all 效率顺序依次。Extra行需要注意的是出...

2019-09-14 20:45:17 170

原创 structs的国际化实现

产品的新版本快发布了,最近的在修defects,遇到个I18N的问题,产品的GUI方面用的技术比较老,不管怎么样,做下记录1.setBundle标签<fmt:setBundle basename="com.product.website.actionsupport.common.Login"/><!-- bundle标签的basename指定了资源文件名message...

2019-09-03 22:04:28 259

原创 大日志文件按日期查找

sed -n '/Accessing Time:2013-07-05 23:30/,/Accessing Time:2013-07-05 23:59/'p 75.txt > 30.txt 这个命令可以从大文件中截取某个时间段的内容sed -n -e '4,10p' -e '10q' Hugefile > Smallfile这个命令表示截取第4行到第10行,并且到第1...

2019-08-28 16:21:09 812

原创 mysql中的information_schema

在INFORMATION_SCHEMA中存储着数据库的元数据。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,不是基本表,因此无法看到与之相关的任何文件。information_schema数据库表说明:SCHEMATA表:提供了当前mysql实例...

2019-08-28 14:04:18 337

原创 linux下大文件排序

#!/bin/bashlines=$(wc -l $1 | sed 's/ .*//g')lines_per_file=`expr $lines / 20`split -d -l $lines_per_file $1 __part_$1for file in __part_*do{ sort $file > sort_$file} &donewaitso...

2019-07-26 12:23:42 1462

转载 mysql中的null

mysql中null 和‘’的区别:MySQL中,null是未知的,且占用空间的。null使得索引、索引统计和值都更加复杂,并且影响优化器的判断。 空值('')是不占用空间的,注意空值的''之间是没有空格。 在进行count()统计某列的记录数的时候,如果采用的 NULL 值,会被系统自动忽略掉,但是空值是会进行统计到其中的。 判断null使用is null或者is not null,但...

2019-07-03 14:00:34 1132 1

原创 python -m 导入模块启动

两种方式启动:python xxx.py -----直接运行的方式启动(此时脚本__name__为"__main__") python -m xxx.py ------以模块的方式启动(此时脚本的__name__属性值依然不再是"__main__"而是"xxx")不同的加载py文件的方式,主要是影响——sys.path 这个属性。sys.path 就相当于liunx中的PATH...

2019-07-02 20:46:42 689

原创 openssl检测证书

# Check a Certificate Signing Request (CSR)openssl req -text -noout -verify -in CSR.csr# Check a private keyopenssl rsa -in privateKey.key -check# Check a certificateopenssl x509 -in certificate.crt...

2019-06-06 17:04:19 2038

原创 vim中用jk代替ESC

在.vimrc中加入:inoremap jk <ESC>

2019-05-24 15:53:50 2630

原创 linux网卡文件

在/etc/sysconfig/network-scripts/ifcfg-eth0(确认ONBOOT=yes),其中eth0是设备名; ONBOOT是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯。 DEVICE:网卡名称(一定是写eth0) ONBOOT=yes(相当于启动这个网卡的开关,你要用eth0这个一定要yes,表示开)...

2019-05-23 16:17:58 1536

转载 java的static关键字

好文

2019-05-17 19:17:43 129

原创 os.exec**与os.system的区别

对于os.exec**(path, args) 在执行它的时候,使用的是当前进程,也就是系统不会为括号中执行的程序重新分配进程, 不返回执行结果 对于os.system(cmd) 相当于在命令行直接输入该语句,会返回执行结果,但是系统会自动为它所执行的程序分配进程代码demoimport osfrom multiprocessing import Pr...

2019-05-08 22:09:19 1945

原创 echo -e对交互式脚步传入参数

ehco命令的-e选项:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:•\a 发出警告声;•\b 删除前一个字符;•\c 最后不加上换行符号;•\f 换行但光标仍旧停留在原来的位置;•\n 换行且光标移至行首;•\r 光标移至行首,但不换行;•\t 插入tab;•\v 与\f相同;•\\ 插入\字符;•\nnn 插入n...

2019-04-28 16:37:24 2372

原创 linux命令之md5sum

在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不一致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。事实证明wget的断点续传也不靠谱,即使显示100%也不一定保证与原文件一模一样。这时必须要检测下载的文件与原文件是否是一个文件。这时就要用到md5sum命令了。 md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验...

2019-04-18 16:54:55 1665

原创 Linux中的-devel包

devel 包主要是供开发用,至少包括以下2个东西:头文件 链接库有的还含有开发文档或演示代码。以 glib 和 glib-devel 为例:如果你安装基于 glib 开发的程序,只需要安装 glib 包就行了。但是如果你要编译使用了 glib 的源代码,则需要安装 glib-devel。...

2019-04-17 13:13:26 2328

原创 Linux中的pkill命令

pkill

2019-04-17 12:54:23 3746

原创 python如何表示无穷大的数

float also accepts the strings “nan” and “inf” with an optional prefix “+” or “-” for Not a Number (NaN) and positive or negative infinity.float("-inf") == -float("inf")result is True,负无穷的两种表达法...

2019-04-08 21:37:05 6788

原创 python 如何捕获异常详细信息

当我们需要对异常进行捕获来保证程序的健壮。但是debug的时候,我们可能需要异常的详细信息,这时可以使用sys.exc_info来处理:import tracebackimport systry: raise ValueError('this is a exp')except Exception as ex: ex_type, ex_val, ex_stack = ...

2019-04-05 16:24:41 4206

原创 对某一文件的动态追踪,检查某一文件何时被更改

无法确定程序是不是在某一时刻改了配置文件,想追踪下文件每个时刻文件的状态,土方法写个shellwhile True;do cat /some/file.config;sleep 2;date;echo "==========";done >>/tmp/log.txtctrl+c结束后查看/tmp/log.txt...

2019-03-21 21:12:38 706

原创 理解证书与签名

经典文章digital signature is for other people to tell that the information is sended by you and the information has never been changeddigital signature is created by using the information's message di...

2019-03-15 17:57:57 841

转载 Linux下如何改变分区大小

一、新建并挂载目录 /u01 和 /data1.创建目录挂节点/u01,/datamkdir -p /{u01,data}2.创建lv,名称是lv_u01,大小10g,从VolGroup中划分空间,这里的VolGroup是vg的名称。lvcreate -L 10g -n lv_u01 VolGroup3.格式化为ext4文件系统mkfs.ext4 /dev/mapper/VolGr...

2019-03-06 13:45:01 6440

原创 MBR与GRUB的区别与联系

MBR:1. Will be of 512 bytes2. Contains partition tables to mount partitions ( i.e., details related to Primary,Logical and Extended partitions )3. Holds Stage1 of GRUB (boot loader)GRUB(Grand Unifi...

2019-03-02 14:33:49 733

原创 如何用yum安装某一版本的软件,非最新版本

拿火狐浏览器为例yum search Firefox只显示最新版本yum --showduplicates list Firefox这个命令可以显示历史版本然后安装就好yum install firefox-45.3.0-1.el7_2

2019-03-01 15:43:24 3830

原创 getElementsByTagName和querySelectorAll的区别

两个都是javascript的原生方法。getElementsByTagName方法返回的是HTMLCollection对象。querySelectorAll方法返回的是NodeList对象。         NodeList与HTMLCollection的区别可以参考下面的文章         NodeList vs HTMLCollection两个方法的区别有getXX...

2019-02-25 11:05:31 348

原创 lsof命令用法

lsof command examples

2019-02-21 12:28:53 252

原创 地址0.0.0.0代表什么

0.0.0.0与127.0.0.1的区别:127.0.0.1 is normally the IP address assigned to the "loopback" or local-only interface. This is a "fake" network adapter that can only communicate within the same host. It's of...

2019-02-18 09:57:17 1926

原创 Linux下查出占用cpu与内存最高的进程

 占内存最多的K个进程ps -aux | sort -k4nr | head -Kps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)。ps -aux的输出格式如下:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMM...

2019-02-14 13:17:25 1204

原创 理解javascript异步编程

火狐浏览器的api文档有这样一句话:Because even though setTimeout was called with a delay of zero, it's placed on a queue and scheduled to run at the next opportunity, not immediately. Currently executing code must...

2019-02-05 00:02:24 197

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除