Redis 数据可持久化
前置:Redis 不完全食用指北https://yuwei.cc/posts/redis.html
RDBRDB(Redis DataBase)是 Redis 中默认的持久化机制,将内存中的数据以快照的方式异步保存到磁盘指定目录的.rdb文件中,可以通过配置文件中save参数来定义快照的周期
流程save指令执行完成前不执行其他操作,仅用于迁移、维护等数据备份,生产环境谨慎使用
bgsave指令执行时,Redis 会调用 glibc 的函数 fork 出一个子进程,先将数据写到磁盘上的一个临时 .rdb 文件中,写入完成后再将原来的 .rdb 文件替换掉而 COW 机制(copy-on-write)就是保证上述步骤的前提:当主进程执行读操作的时候是访问共享内存的,而主进程执行写操作的时候,则会拷贝一份数据,执行写操作;以此减少分配和复制时带来的瞬时延迟以及不必要的资源分配
优点
只有一个文件 dump.rdb ,按时间点保存数据集,便于备份和恢复
持久化时主进程可以继续处理其他命令,不进行任何 I/O 操作,保证 Redis 的高性能
RDB 是一个紧凑压缩的二进制文件,重载效率比 A ...
Redis 性能优化
前置:Redis 不完全食用指北https://yuwei.cc/posts/redis.html
延迟基线测量1redis-cli ---intrinsic-latency 100 -h `host` -p `port`
参数 100 是测试将执行的秒数,时间越长越能发现延迟峰值,通常 100 秒足以发现延迟问题(服务端运行避免网络环境的影响)
慢指令监控1操作复杂度为 O(N) 即为慢指令
使用 Redis 慢日志功能查出慢命令
latency-monitor(延迟监控)工具慢日志功能Redis 中的 slowlog 命令用来快速定位那些超出指定执行时间的慢命令,默认 10ms1234#配置慢日志的时间,以微秒为单位;即超过 6 ms 写入慢指令日志redis-cli CONFIG SET slowlog-log-slower-than 6000#获取最近2个慢查询命令SLOWLOG get 2
延迟监控工具Redis 在 2.8.13 版本引入了 Latency Monitoring 功能,用于以秒为粒度监控各种事件的发生频率123456789101112#设置延迟阈值,单位 ...
Redis 不完全食用指北
基本信息Redis (Remote Dictionary Server)是一个开源(BSD 许可)的、基于内存的、多数据结构、键值对型的数据存储系统,常被用作数据库、缓存和消息中间件;它可以使用客户端分片来扩展写性能,内置了:复制 (replication)、LUA 脚本(Lua scripting)、LRU 驱动事件(LRU eviction)、事务(transactions)和不同级别的磁盘持久化(persistence), 并通过 Redis 哨兵(Sentinel)和自动分区(Cluster)实现高可用(high availability)集群方案。
服务特性
完全基于内存操作,性能极高,读写速度快
支持多种数据类型 - string、Hash、list、set、sorted set
支持多种数据淘汰策略
volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰volatile-ttl :从已设置过期时间的数据集中挑选将要过期的数据淘汰volatile-random:从已设置过期时间的数据集中任意选择数据淘汰allkeys-lru:从所有数据集中挑选最 ...
Photogallery X3
安装最新版是 3.30.1,官网下载链接安装环境:PHP 5.3 或更高,需要PHP扩展 GD 和 Mcrypt安装过程接不多说了,参考官方详细文档需要注意的的伪静态设置是,如果原来配置文档有涉及 js,css 的设置建议先删除。(宝塔需要删除原来配置文档里面 location ~js jpg 部分)
Nginx 伪静态1234567891011121314location / { if (!-e $request_filename){ # Rewrite any calls to html|json|xml|atom|rss if a folder matching * exists rewrite (.+)\.(html|json|xml|atom|rss)$ $1/ last; # Rewrite any calls to /render to the X3 image resizer rewrite ^/render/. /app/parsers/slir/ last; # Rewrite routes ...
MySQL 函数
文本LENGTH()/LEN():返回字符串长度LOWER():将字符串转换为小写LEFT():返回左的边字符串RIGHT():返回右边的字符串LTRIM():去掉字符串左边的空格RTRIM():去掉字符串右边的空格
数值ABS():绝对值EXP():指数值COS():余弦SIN():正弦TAN():正切PI():圆周率SQRT():平方根():
日期NOW():当前时间YEAR():年MONETH():月MONTHNAME():月份的单词DAYOFMONTH():日TIMESTAMPDIFF():时间差DATE_SUB()
位运算很多时候利用位运算的特性可以存储更多的数据,节省磁盘空间;而 MySQL 提供了一系列函数方便我们做进制转换。
函数
说明
BIN(num)
返回十进制 num 的二进制表示
OCT(num)
返回十进制 num 的八进制表示
HEX(num)
返回十进制 num 的十六进制表示
CONV(num,X,Y)
返回 X 进制 num 的 Y 进制表示,X 和 Y 的范围是 2-36
BIT_COUNT(num)
返回十进制 nu ...
Bash 字体样式
样式使用字背景颜色和文字颜色之间是英文的””文字颜色后面有个 m字符串前后可以没有空格,如果有的话,输出也是同样有空格显示方式可以叠加,用“;”隔开1234567\033[X;Y;Zm字符\033[0m#X:显示方式#Y:字体颜色#Z:背景颜色#\033[0m:恢复终端默认颜色#如:闪烁+下划线+白底色+黑字为echo -e "\033[4;5;47;30m闪烁+下划线+白底色+黑字\033[0m"
样式语法显示方式123451:高亮显示(粗体)4:下划线5:闪烁7:反白显示8:隐藏
字体颜色1234567830:黑色31:红色32:绿色33:黄色34:蓝色35:紫色36:深绿37:白色
背景颜色1234567840:黑色41:深红42:绿色43:黄色44:蓝色45:紫色46:深绿47:白色
样式实例123456789101112131415161718192021#!/bin/bash#显示方式for i in {1..8}; do for j in {31..37}; do echo -e " ...
思科路由器配置
常用设置特权模式初始设置123456Router>en //进入Router#conf t //进入配置模式Router(config)#enable password cisco //开启特权密码保护Router(config)#enable secret cisco //开启特权秘钥保护Router(config)#line console 0 //进入控制线路配置模式Router(config-line)#login //开启登录密码保护Router(config-line)#password cisco //设置 console 密码
修改名称12Router(config)#hostname xxx //修改路由器名称这里改为 xxxRouter(config)#do wr //保存配置
设置密码12345VTY 密码Router(config)#line vty 0 4Router(config-line)#password ciscoRouter(config-line)#exec-timeout 10Router(config-line)#login ...
Bash 入门
基本语法脚本开头指定解析器1#!/bin/bash
脚本注释Bash 只支持单行注释,使用 # 开头的都被当作注释语句12#整行注释echo hello world #行尾注释
数据类型Bash 中基本数据类型只有字符串12345#都是字符串echo abcecho 123#将变量声明为整数declare
字符串联Bash 中字符串的串联操作不需要任何操作符,直接将两段数据连接在一起。12echo 123 456echo 'abc'"def"
环境变量系统变量12345${HOME}${PWD}${SHELL}${USER}set #显示所有变量
特殊变量12345${n} #n 为数字,0 为命令本身,从 1 开始依次往下${#} #输入参数的个数${*} #所有参数,看成一个整体${@} #所有参数,区分对待${?} #返回最后一次命令执行状态,0 成功,非 0 失 ...