普通视图
卡巴斯基引发的网络异常
忘了从什么时候开始,win11的小组件有一直打不开,提示网络异常。当时一度以为各种代理工具修改了系统设置导致的,所以解决方法也简单粗暴,眼不见心不烦,直接关掉了任务链小组件。
然鹅,事情貌似没那么简单,最近系统更新,可能跟系统更新有关,也可能跟卡巴斯基的病毒库有关。昨天晚上想从wps的云文档找点东西,结果发现wps云文档也打不开了。
点击诊断修复提示ssl连接异常。一不做二不休,直接删除所有的代理工具,当然,也尝试了windows的各种网络修复命令。
# 重置网络协议与DNS缓存 netsh winsock reset ipconfig /release netsh int ip reset ipconfig /renew ipconfig /flushdns
重启之后依然是同样的问题,后来在想是不是杀软的问题。直接退出卡巴基斯,竟然能访问了。开启之后,逐步禁用相关的功能。发现出问题的时候并不是单独防火墙或者安全控制的问题。
单独禁用防火墙没有什么效果,禁用流量扫描也没效果。所以不知道是不是卡巴的兼容问题。
然而,比较坑爹的就是当时买的三年的授权许可,现在还剩300天,尝试去更新卡巴版本的时候,也没看到所谓的新版,而新版是完全不同的一个版本。
并且这个价格感觉比自己买的时候也贵了不少。继续溜达看了下国产的杀软,瑞星;
江民:
金山杀毒:
这么看来还是喜欢青春版,嘻嘻。看着就好看。
目前用的eset,也装了金山青春版,看看后面要不要购买授权许可吧。现在这些国产的杀软价格和国外的区别不大。不过换了之后,网络问题算是解决了。目前就先酱紫吧。
彻底解决WordPress站点健康问题
再次建站的时候,虽然没有重装系统,但是却把系统的php版本升级到了8.4。也放弃了之前编译的php7.4版本的结巴分词,而是直接启了个python的服务。
不过,有的东西确一直没解决,那就是从之前的7.4,到现在的8.4版本,站点健康在响应速度慢的时候就会显示:
页面缓存通过保存和提供静态页面使得用户访问时不需要每次都调用页面,进而改善了您站点的速度和性能。 页面缓存会通过查找已启用的页面缓存插件的同时向主页发起三次请求并查找一个或多个下列的 HTTP 客户端响应标头,来确定页面缓存的存在。 cache-control, expires, age, last-modified, etag, x-cache-enabled, x-cache-disabled, x-srcache-store-status, x-srcache-fetch-status. 服务器响应时间的中位数是 718 毫秒,其应当小于推荐的 600 毫秒临界值。 未检测到客户端缓存响应标头。 未检测到页面缓存插件。
虽然,已经开启了redis object cache,但是这个东西时常出现,看着总是不爽。于是下定决心要解决这个问题,其实主要就是nginx的配置问题。通过下面的方法配置就ok了。
1.在 nginx.conf 的 http {} 块中添加(仅需一次)
fastcgi_cache_path /var/cache/nginx/wordpress
levels=1:2
keys_zone=WORDPRESS:64m
max_size=256m
inactive=60m
use_temp_path=off;
如果目录不存在,先创建:/var/cache/nginx/wordpress
2.创建wordpress-php-with-cache.conf
# 1. 复制本文件为 wordpress-php-with-cache.conf(去掉 .example),并放到与 zhongxiaojie.conf 同一目录(如 vhost/)
# 2. 若 PHP 版本或路径不同,请修改 fastcgi_pass(见下方说明)
# 3. 在 zhongxiaojie.conf 的 443 server 块中,用 include wordpress-php-with-cache.conf 替换 include enable-php-pathinfo.conf 或 include enable-php.conf
# 4. 若 fastcgi.conf 找不到,请将 include 改为 Nginx 配置目录下的绝对路径,如 /etc/nginx/fastcgi.conf
# 5. 执行:mkdir -p /var/cache/nginx/wordpress && chown -R www:www /var/cache/nginx/wordpress
# 6. nginx -t && nginx -s reload
# fastcgi_pass 常见取值(按实际修改):
# PHP 8.4 FPM(常见):unix:/run/php/php8.4-fpm.sock
# PHP 8.2 FPM: unix:/run/php/php8.2-fpm.sock
# 宝塔: unix:/tmp/php-cgi-74.sock 等
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
# ------ 页面缓存:跳过后台、登录、订阅等 ------
set $skip_cache 0;
if ($request_uri ~* "/wp-admin/|/wp-login\.php|/xmlrpc\.php|wp-.*\.php|/feed/|sitemap(_index)?.xml|/cart/|/checkout/|/my-account/") {
set $skip_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in|woocommerce_") {
set $skip_cache 1;
}
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
# ------ FastCGI 缓存(依赖 nginx.conf 中 fastcgi_cache_path WORDPRESS)------
fastcgi_cache WORDPRESS;
fastcgi_cache_key $scheme$request_method$host$request_uri;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating http_500 http_503;
fastcgi_cache_lock on;
fastcgi_cache_lock_timeout 5s;
fastcgi_index index.php;
include fastcgi.conf;
# ------ 检测工具要求的客户端缓存响应头 ------
add_header X-Cache-Status $upstream_cache_status;
add_header X-Cache-Enabled "1";
add_header Cache-Control "public, max-age=3600";
}
3.在网站的配置文件中引入上面的配置信息vim /usr/local/nginx/conf/vhost/zhongxiaojie.com.conf
include wordpress-php-with-cache.conf;
重启nginx 就ok啦
无需修改源码 将WordPress搜索替换为Bing站内搜索
WP 访客信息插件 v16.06.99
### v16.06.99 - 版本号更新至 16.06.99 - 新增 **纯真QQWRY** IP 查询方式(qqwry_api:qqwry.dat / ipv6wry.db),无需 Composer - 新增 **显示协议类型** 选项:在国旗与国家文本后、IP 地址前显示 IPv4/IPv6 图标(img/ipv4.png、ipv6.png) - QQWRY(IPv4/IpLocation、IPv6/ipdbv6)与 ip2region(xdb)返回完整字段,支持国旗与完整归属地显示 - 图标样式统一:IP 版本图标与 IP 地址图标使用与浏览器/系统图标相同的 vertical-align 等样式
昨天发布了之后,hary反馈说,有更精准的纯真的数据库。
当然啦,除此之外,其他的宝子的反馈我也看了,包括对于归属地准确性讨论的。
有的宝子的评论还没来的及回复,后面会回复的哈。在忙着测试hary提供的版本,不过整体测试下来,这个版本的qqwry版本的数据v6归属地精度,的确提高了一大截。
在集成了qqwry版本的数据库之后,目前已经有四种归属地查询方法,大家可以选择自己喜欢的。
并且添加了是否显示协议版本图标的功能,可以显示访客的网络类型。
图标位于插件的img目录下,如果想使用其他图标,直接替换目录下对应的ipv4.png 和ipv6的png即可。
已经内置几组图标,如果要想只显示ipv6的图标,可以用一个空白图标来替换ipv4图标即可。
插件代码:
https://cnb.cool/oba.by/wp-useragent
最新版(插件包含多个ip数据库,尽量使用ftp或者scp上传,wp后台上传可能失败):
https://cnb.cool/oba.by/wp-useragent/-/releases/tag/16.06.99
从 DeepSeek 到 Claude Code:AI 发展这一年
WP 访客信息插件 v16.03.55
我把插件改了个名字,不再叫“WP-UserAgent”了,现在这个东西经过多次迭代,加了很多乱七八糟的东西,显示的重点也不再是评论的ua信息了。
前几天看到关于ip2region的介绍,于是又尝试集成了一次,集成之后发现效果也没有好更多,原来的v6归属地从青岛跑到北京了:
免费版的数据和商业版数据差距依然很大,其实包括纯真之类的也是一样套路,如果数据一样谁还会买商业版呢。尽管如此,我还是给加上了,同时更新了下纯真的数据库。
目前效果就是上面的样子,感兴趣的可以尝试下。
插件代码:
https://cnb.cool/oba.by/wp-useragent
最新版(插件包含多个ip数据库,尽量使用ftp或者scp上传,wp后台上传可能失败):
https://cnb.cool/oba.by/wp-useragent/-/releases/tag/16.03.55
Redis开篇
栏目持续更新中
一、Redis概述
Redis即Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写的,遵守BSD协议的高性能的Key-Value数据库。Redis提供了丰富的数据结构,例如String、Hash、List、Set、ZSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性,提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。
![]()
Redis的作者是意大利程序员Antirez,作者个人博客:https://antirez.com/latest/
Redis的官网是:https://redis.io,源码位于GitHub上:https://github.com/redis
二、Redis的主要用途
配合关系型数据库快速读取
主流应用基本都是80%的读取和20%写入,Redis拿来配合MyMQL等实现读写分离,MySQL数据存储在硬盘,关系型数据库需要执行复杂SQL,相比下Redis基于内存和按key读取明显效率更高,Redis在一些场景下的使用明显优于MySQL,例如计数器,排行榜,抢红包等。Redis通常用于一些特定场景,需要与MySQL一起配合使用,两者并不是相互替换和竞争关系,而是共用和配合使用
分布式锁
synchronized关键字和各种锁只能在一个JVM进程中有效,多服务器的集群环境下利用Redis的单线程特点,可以做分布式环境下的并发控制队列
Reids提供list和set操作,这使得Redis能作为一个很好的消息队列平台来使用。我们常通过Reids的队列功能做购买限制。比如到节假日或者推广期间,进行一些活动,对用户购买行为进行限制,限制今天只能购买几次商品或者一段时间内只能购买一次,也比较适合适用。
消息中间件
Reids具有发布订阅消息功能,因此可以作为一个简单的消息中间件来使用,例如修改了数据字典后通知应用程序执行刷新缓存的方法
分布式会话
将session或token对应的用户信息保存到Redis,实现集群环境下会话共享
三、Redis的优势
性能极高
Redis能读的速度是110000次/秒,写的速度是81000次/秒
数据类型丰富
不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
支持数据的持久化
可以将内存中的数据保持在磁盘中重启的时候可以再次加载进行使用Redis支持数据的备份,即master-slave模式的数据备份
四、Redis版本历史
- 2009,诞生
- 2010,1.0,Redis Data Types
- 2012,2.6,Lua,PubSub,Redis Sentinel V1
- 2013,2.8,Redis Sentinel V2,IPv6
- 2015,3.0,Redis Cluster,GEO
- 2016,4.0,RDB,AOF
- 2017,5.0,Stream
- 2020,6.0,ACLs,SSL,Threaded I/O
- 2022,7.0,ACLv2,Redis Functions,listpack代替ziplist,Multi-part AOF
五、Redis版本规则
Redis版本号第二位是奇数的为非稳定版本,例如2.7、2.9、3.1。第二位是偶数的为稳定版本,例如2.6、2.8、3.0。当前奇数版本就是下一个稳定版本的开发版本,例如3.0就是2.9的稳定版,2.9就是3.0的开发版。
根据官网安全漏洞提示,升级redis6一定要选择6.0.8以上版本,或者直接升级到7。
六、Redis7新特性
多AOF文件支持
7.0版本中一个比较大的变化就是aof文件由一个变成了多个,主要分为两种类型:基本文件(base files)、增量文件(incr files),请注意这些文件名称是复数形式说明每一类文件不仅仅只有一个。在此之外还引入了一个清单文件(manifest)用于跟踪文件以及文件的创建和应用顺序(恢复)
Config命令增强
对于Config Set和Get命令,支持在一次调用过程中传递多个配置参数。例如我们可以在执行一次Config Set命令中更改多个参数: config set maxmemory 10000001 maxmemory-clients 50% port 6399
限制客户端内存使用 Client-eviction
一旦Redis连接较多,再加上每个连接的内存占用都比较大的时候,Redis总连接内存占用可能会达到maxmemory的上限,可以增加允许限制所有客户端的总内存使用量配置项。
redis.config中可以用两种配置形式:指定内存大小 maxmemory-clients 1g、基于maxmemory的百分比 maxmemory-clients 10%listpack紧凑列表调整
listpack是用来替代ziplist的新数据结构,在7.0版本已经没有ziplist的配置了(6.0版本仅部分数据类型作为过渡阶段在使用),listpack已经替换了ziplist类似hash-max-ziplist-entries的配置
访问安全性增强ACLV2
在redis.conf配置文件中,protected-mode默认为yes,只有当你希望你的客户端在没有授权的情况下可以连接到Redis Server的时候可以将protected-mode设置为no
Redis Functions
Redis函数,一种新的通过服务端脚本扩展Redis的方式,函数与数据本身一起存储。
RDB保存时间调整
持久化文件RDB的保存规则发生了改变,尤其是时间记录频度变化
命令新增和变动
1.ZSet(有序集合)增加ZMPOP、BZMPOP、ZINTERCARD 等命令。
2.Set(集合)增加SINTERCARD命令。
3.LIST(列表)增加LMPOP、BLMPOP,从提供的键名列表中的第一个非空列表键中弹出一个或多个元素。性能资源利用率、安全性等改进
自身底层部分优化改动:Redis核心在许多方面进行了重构和改进:
1.主动碎片整理V2:增强版主动碎片整理,配合Jemalloc版本更新,更快更智能,延时更低。
2.HyperLogLog改进:在Redis5.0中,HyperLogLog算法得到改进,优化了计数统计时的内存使用效率,7.x更好的内存统计报告。
3.如果不为了API向后兼容,我们将不再使用slave(奴隶)一词(政治正确)
七、Redis基础篇
使用Redis前需要编译安装以及进行基本的配置,Redis的编译安装、运行,基本配置和客户端命令使用具体见:
7.1 数据结构
Redis的数据结构指的是Value的数据结构类型,Key都是字符串。Redis官网的介绍:https://redis.io/technology/data-structures/
截止到目前的7.x版本,Redis共有10大数据结构,常用的经典数据结构类型有String、List、Hash、Set、ZSet
| 序号 | 文章名 | 概述 |
|---|---|---|
| 1 | Redis数据结构之String | 字符串 |
| 2 | Redis数据结构之List | 列表 |
| 3 | Redis数据结构之Hash | 哈希表 |
| 4 | Redis数据结构之Set | 集合 |
| 5 | Redis数据结构之ZSet | (SortedSet) 有序集合 |
Redis进化过程中又陆陆续续推出了GEO、HyperLogLog、Bitmap、Bitfleid、Stream这几种更加高级的数据结构
| 序号 | 文章名 | 概述 |
|---|---|---|
| 1 | Redis数据结构之HyperLogLog | 用来做基数统计的算法 |
| 2 | Redis数据结构之GEO | 地理空间 |
| 3 | Redis数据结构之Bitmap | 位图,二进制位的bit数组 |
| 4 | Redis数据结构之Bitfleid | 位域 |
| 5 | Redis数据结构之Stream | 流,主要用于消息队列 |
参考
- 尚硅谷Redis零基础到进阶,作者:尚硅谷,哔哩哔哩,2023.02.21