-
背景
一些业务背景下,业务要求单号需要有区分不同的前缀,那么在分布式的架构下如何自定义单号而且还能保证唯一呢?
注:分布式ID也可以此方式
Redis实现方式
Redis的所有命令操作都是单
-
一、下载
官网:Redis 我们下载 Stable 稳定版
# cd /mydata
# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
二、安装redis6.2.6
1、安装到/usr/local/redis6.2.6/目录下
# cd /mydata/
# tar -z
-
Redis Lua 脚本在单线程执行模型下可能让后续请求排队。本文从接口延迟突然升高的现象出发,用 SLOWLOG、LATENCY 和脚本耗时证据定位阻塞来源,说明超时边界、停止动作与恢复后的反向验证。
-
ZREVRANGEBYSCORE不适用于超时任务检测,因其按score降序返回,而超时检测需升序查找score≤当前时间戳的任务;正确做法是用ZRANGEBYSCOREtasks-inf[current_timestamp]配合Lua原子执行扫描与删除,并确保score为高精度到期时间戳以避免排序混乱和堆积性能问题。
-
Redis不内置BloomFilter,需借助Redisson等第三方实现;EXISTS和空值缓存无法有效防穿透,因前者不拦截非法ID、后者易致缓存污染;布隆过滤器以极小空间开销提供高效存在性否定判断。
-
--cluster-replicas必须加且数值需准确,它表示每个主节点配几个从节点;若节点总数不能被(replicas+1)整除,则报错ERRInvalidclusterconfiguration。
-
要处理Redis慢查询日志,首先配置Redis服务器记录慢查询,然后分析日志并优化查询。1.设置slowlog-log-slower-than和slowlog-max-len参数。2.使用SLOWLOGGET命令查看慢查询记录。3.优化查询命令,如用SCAN替代KEYS。4.重新设计数据结构,如用有序集合替代普通集合。5.使用Pipeline批量执行命令。持续监控和分析慢查询日志以优化Redis性能。
-
配置RedisSentinel高可用集群需要以下步骤:1.配置Sentinel节点,使用sentinelmonitor指令监控主节点;2.设置主从节点,确保从节点能自动接管;3.确保网络稳定性,避免误判;4.至少配置三个Sentinel节点保证高可用性;5.谨慎配置故障转移策略,设置超时时间;6.确保数据一致性,通过配置min-slaves-to-write和min-slaves-max-lag减少数据丢失风险;7.调整sentineldown-after-milliseconds参数减少不必要的故障转移
-
写在前面
在上一篇文章中,我们已经做到了已经创建好6个redis副本了。
具体的详情,可以查看这里:k8s部署redis集群(一)
那么接下来,我们就继续实现redis集群的搭建过程。
一、redis集群搭建
1
-
查看Redis内存使用
info 命令用于监控Redis运行情况,其中 info memory 可以查看Redis内存使用统计信息:
redis-cli info memory
命令输出结果如下图:
前几个字段信息最为重要,其含义分别为:
-
Redis 出现偶发慢响应时,LATENCY DOCTOR 能把采样到的延迟事件整理成可读报告。本文从阈值设置、事件记录、报告解读和复核动作入手,区分服务端阻塞、慢命令与网络往返。
-
redis-cli--clusterinfo仅提供槽位、键数和从节点数的粗粒度分布,无法反映真实CPU/内存负载;需结合INFOmemory、SLOWLOG和INFOstats交叉验证,因slot均匀不等于负载均匀。
-
开启和查看Redis的安全审计日志需要编辑redis.conf文件,将appendonly设置为yes,并定义日志文件名。查看日志可通过读取AOF文件。1.编辑redis.conf,设置appendonlyyes和appendfilename。2.使用catappendonly.aof查看日志。定期管理AOF文件并确保其安全性是必要的。
-
要处理Redis慢查询日志,首先配置Redis服务器记录慢查询,然后分析日志并优化查询。1.设置slowlog-log-slower-than和slowlog-max-len参数。2.使用SLOWLOGGET命令查看慢查询记录。3.优化查询命令,如用SCAN替代KEYS。4.重新设计数据结构,如用有序集合替代普通集合。5.使用Pipeline批量执行命令。持续监控和分析慢查询日志以优化Redis性能。
-
在用户签到系统中使用Redis位图是一个好主意,因为它提供了高效的内存使用和快速的统计查询功能。具体来说,Redis位图通过位(bit)表示用户的签到状态,支持快速统计连续签到天数和月度签到情况,同时需要注意数据持久化和性能优化。