当前位置: 首页 > news >正文

Redis5优化-Redis

1、Redis关键参数

        a、客户端最大连接数

maxclients 60000
注意该参数受到操作系统最大文件句柄的限制(ulimit -n)

        b、响应

repl-ping-slave-period/repl-timeout
repl-timeout 60
1)、说明:slave 会每隔 repl-ping-slave-period(默认10秒)ping一次master,如果查过repl-timeout(默认60秒)都没有收到响应,就会认为Master挂掉。
2)、优化:如果 Master 明明没挂掉但被阻塞住了也会报这个错。可以适当调大 repl-timeout

        c、缓冲区

client-output-buffer-limit
client-output-buffer-limit slave 256mb 64mb 60
1)说明:客户端输出缓冲区大小。
2)、当使用主从复制时,性能压测下,数据量会急剧增长,导致从节点需要复制的数据很大,消耗时长增加。slave 没挂但被阻塞住了,比如正在 loading Master 发过来的 RDB,Master 的指令不能立刻发送给 slave,就会放在 output-buffer 中

        d、使用 lazy free 特性

lazyfree-lazy-eviction:表示当 Redis 运行内存超过 maxmeory 时,是否开启 lazy free 机制删除;
lazyfree-lazy-expire:表示设置了过期时间的键值,当过期之后是否开启 lazy free 机制删除;
lazyfree-lazy-server-del:有些指令在处理已存在的键时,会带有一个隐式的 del 键的操作,比如 rename 命令,当目标键已存在,Redis 会先删除目标键,如果这些目标键是一个 big key,就会造成阻塞删除的问题,此配置表示在这种场景中是否开启 lazy free 机制删除;
slave-lazy-flush:针对 slave(从节点) 进行全量数据同步,slave 在加载 master 的 RDB 文件前,会运行 flushall 来清理自己的数据,它表示此时是否开启 lazy free 机制删除。
建议开启其中的 lazyfree-lazy-eviction、lazyfree-lazy-expire、lazyfree-lazy-server-del 等配置,这样就可以有效的提高主线程的执行效率。

        e、内存大小及淘汰机制

maxmemory 1024*1024*1024*(物理内存*0.5)
maxmemory-policy allkeys-lru

        f、慢命令配置

slowlog-log-slower-than ,它决定要对执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录。默认10,000
slowlog-log-slower-than=0 #记录所有命令
slowlog-log-slower-than<0 #不记录任何命令
slowlog-max-len ,它决定 slow log 最多能保存多少条日志slowlog-log-slower-than 100
slowlog-max-len 500

2、内存碎片优化

        a、内存碎片如何判断

info memory
Redis 重要内存参数解读
used_memory:Redis 已使用的内存大小,单位 Byte
used_memory_human:Redis 已使用的内存大小,单位 Mb
used_memory_rss:操作系统实际分配给 Redis 的物理内存空间,单位 Byte
used_memory_rss_human:操作系统实际分配给 Redis 的物理内存空间,单位 Mb
mem_fragmentation_ratio:Redis 当前的碎片率(减去 1 表示内存碎片比例)
mem_fragmentation_bytes:Redis 当前的碎片大小,单位 Byte

b、内存碎片率的计算公式

内存碎片率 = 已分配的内存 / 实际使用的内存
mem_fragmentation_ratio = used_memory_rss / used_memory
1 < mem_fragmentation_ratio <= 1.5 经验值一般保持在 1~1.5 之间是最合理的
mem_fragmentation_ratio > 1.5 这表明内存碎片率已经超过了 50%

c、内存碎片解决方案--空间置换

activedefrag yes #开启Redis自动内存碎片整理机制
active-defrag-cycle-max 75 #设置内存碎片清理所占用CPU时间的比例不高于75%
active-defrag-cycle-min 25 #设置内存碎片清理所占用 CPU 时间的比例不低于25%
active-defrag-threshold-lower 5 #设置启动活动碎片整理的最小碎片百分比,内存碎片率大于0.05的时候开始清理
active-defrag-threshold-upper 100 #设置内存碎片超过100%,尽最大清理
active-defrag-ignore-bytes 256mb #设置内存碎片的字节数达到256M时开始清

d、内存碎片扩展技能

memory purge #手动清理内存碎片
memory malloc-stats #内存分配情况内部统计报表

3、性能测试

a、25000个并发连接,500000个请求,检测host为127.0.0.1 端口为 6379 的 redis 服务器性能

-h 指定要进行测试的 Redis 服务器所在的主机 IP (默认 127.0.0.1)
-p 指定 Redis server 运行的端口 (默认 6379)
-a 指定与 Redis server 连接进行操作的密码 Auth
-c 指定本次测试每个指令的并行连接 Redis server 的客户端数量 (default 50)
-n 指定本次测试每个指令的请求总数 (default 100000)
-d 本次测试 set/get 数据大小,单位字节 (default 3)
./redis-benchmark -h 192.168.0.191 -p 6379 -c 10000 -n 5000000 -d 100 -a 123456

b、测试指定操作命令的性能

./redis-benchmark -t set,lpush -n 500000 -q

c、慢日志查询

slowlog get [n]:获取慢查询队列
slowlog len:可以查看当前日志的数量
slowlog reset:清空日志

注意:一定要先设置好Linux的文件句柄限制数

相关文章:

Redis5优化-Redis

1、Redis关键参数 a、客户端最大连接数 maxclients 60000 注意该参数受到操作系统最大文件句柄的限制(ulimit -n) b、响应 repl-ping-slave-period/repl-timeout repl-timeout 60 1&#xff09;、说明&#xff1a;slave 会每隔 repl-ping-slave-period(默认10秒)ping一次mast…...

Element UI【详解】el-scrollbar 滚动条组件

el-scrollbar 滚动条组件用于优化页内滚动条的UI效果&#xff0c;使用时必须指定高度&#xff01; /*el-scrollbar 必须指定高度*/ .scrollMenuBox {height: 200px;width: 100px;border: 1px solid red; } 控制el-scrollbar内滚动条的方法与控制页面的滚动条的方法基本一样&a…...

【精选】基于Python大型购物商城系统(京东购物商城,淘宝购物商城,拼多多购物商城爬虫系统)

目录&#xff1a; 目录&#xff1a; 系统介绍&#xff1a; 系统开发技术 Python语言 Django框架简介 MySQL数据库技术 B/S架构 系统设计 系统总体设计 系统详细界面实现&#xff1a; 系统测试 测试目的 测试用例 本章小结 参考代码&#xff1a; 为什么选择我&…...

QT翻金币小游戏(含音频图片文件资源)

目录 QT翻金币小游戏 音频图片资源文件获取 效果展示 图片 视频 实现代码 main.cpp mymainwindow.h mymainwindow.cpp startscene.h startscene.cpp selectscene.cpp playscene.h playscene.cpp mypushbutton.h mypushbutton.cpp dataconfig.h dataconfig.cpp QT…...

Linux配置JDK8环境变量

目录 一、yum安装1.1 OpenJDK安装1.2 测试是否能够使用1.3 如何卸载JDK 二、手动安装2.1 下载2.2 上传到linux服务器路径2.3 解压2.4 配置环境变量2.5 测试是否能够使用 一、yum安装 1.1 OpenJDK安装 sudo yum install -y java-1.8.0-openjdk-devel1.2 测试是否能够使用 jav…...

Fiddle抓手机app的包

前言 本次文章讲述的是&#xff0c;fiddle获取手机代理&#xff0c;从而获取手机app的http、https请求&#xff01; 一.下载安装汉化Fiddle 1.点击Fiddler官网下载链接&#xff1a;Download Fiddler Web Debugging Tool for Free by Telerik 2.直接运行&#xff0c;选择自己需…...

Oracle+ASM+High冗余详解及空间计算

Oracle ASM&#xff08;Automatic Storage Management&#xff09;的High冗余模式是一种提供高度数据保护的策略&#xff0c;它通过创建多个数据副本来确保数据的可用性和安全性。 以下是关于Oracle ASM High冗余的详细解释&#xff1a; 一、High冗余的特点 1.数据冗余度 在Hi…...

如何为 Nextcloud 配置自动数据库备份 - 应用程序

自动数据库备份模块简化了生成数据库计划备份的过程。这些备份可以存储在各种位置&#xff0c;包括本地驱动器、FTP 服务器、SFTP 服务器、Dropbox、Google Drive、OneDrive、NextCloud 和 Amazon S3 云存储。用户还可以选择启用自动删除过期备份的功能。此外&#xff0c;用户可…...

child_process.spawn简介

child_process.spawn 是 Node.js 中 child_process 模块的一个重要方法&#xff0c;它用于异步地创建子进程来执行指定的命令。下面是对 child_process.spawn 的深入解析&#xff1a; 一、基本用法 spawn 方法的基本语法如下&#xff1a; const { spawn } require(child_pr…...

整理给测试人看的千页面试题

人往高处走水往低处流&#xff0c;九月已来&#xff0c;“金九银十”招聘季还会远吗&#xff1f; 转眼2024年招聘季就要来了&#xff0c;没点真本事真技术&#xff0c;没点面试经验&#xff0c;不了解点职场套路&#xff0c;如何过五关斩六将&#xff1f;如何打败面试官&#…...

Linux 内核中的并发与竞争

1. 引入并发与竞争的概念 在现代计算环境中&#xff0c;多个任务和线程通常会同时执行&#xff0c;因此理解并发和竞争的特性与挑战至关重要。以下是对这两个概念的详细介绍。 1. 并发&#xff08;Concurrency&#xff09; 定义&#xff1a; 并发是指多个任务在同一时间段内…...

Ubuntu修改命令提示符格式PS1

命令提示符组成 通过Xshell进入Ubuntu的默认提示符是这样的 rootDESKTOP:~# root: 当前登录用户DESKTOP&#xff1a;主机名~: 当前目录名&#xff08;即用户主目录&#xff09;#&#xff1a;超级用户权限(root用户显示)$: 普通用户权限(非root用户显示) 修改命令提示符 step1…...

指针详解(五)

目录 1. 回调函数 2. qsort使用举例 1&#xff09;排序整型数据 2&#xff09;排序结构数据 3. qsort函数的模拟实现&#xff08;冒泡&#xff09; 1. 回调函数 回调函数就是一个通过函数指针调用的函数 函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数…...

智慧安防/一网统管/视频监控EasyCVR视频汇聚平台的视频轻量化特点及应用

在数字化时代&#xff0c;视频监控已成为保障公共安全、提升管理效率的重要手段。随着技术的不断进步&#xff0c;EasyCVR视频汇聚平台应运而生&#xff0c;平台以其独特的视频轻量化特点在安防监控领域展现出强大的应用潜力。本文将详细探讨EasyCVR视频汇聚平台的视频轻量化特…...

nginx代理转发如何配置

Nginx配置代理转发是一个常见的需求&#xff0c;用于将客户端的请求转发到后端服务器。以下是Nginx代理转发的配置步骤&#xff0c;包括详细的操作步骤和注意事项&#xff1a; 1. 确定Nginx安装和配置文件位置 首先&#xff0c;确保Nginx已经正确安装在服务器上。Nginx的主配…...

JavaScript学习笔记(十三):网络请求JS AJAX

1、AJAX - XMLHttpRequest 对象 1.1 XMLHttpRequest 对象是 AJAX 的基石。 创建 XMLHttpRequest 对象定义回调函数打开 XMLHttpRequest 对象向服务器发送请求 1.2 XMLHttpRequest 对象 所有现代浏览器都支持 XMLHttpRequest 对象。 XMLHttpRequest 对象可用于在后台与 Web…...

go for 循环变量的使用及易错点

1&#xff0c;for 循环变量&#xff0c;整个for循环中变量i始终使用一个变量&#xff0c;i地址不变&#xff0c;存放的内容在变 func main() {for i : 0; i < 10; i {fmt.Printf("值:%v 地址&#xff1a;%v \n", i, &i)} } 打印&#xff1a; 值:0 地址&am…...

2024嵌入式面试:OPPO嵌入式面试题及参考答案

目录 TCP 与 UDP 的区别是什么? 请简述 TCP 的三次握手过程。 HTTP 协议的工作原理是什么? C++11 引入了哪些新特性? 什么是智能指针?如何解决其内存泄漏问题? 进程间有哪些通信方式? CPU 的调度策略有哪些? 如何保证线程安全?多线程编程需要注意哪些问题? S…...

Cesium模型制作,解决Cesium加载glb/GLTF显示太黑不在中心等问题

Cesium模型制作&#xff0c;解决Cesium加载glb/GLTF显示太黑不在中心等问题 QQ可以联系这里&#xff0c;谢谢...

Java 操作 Redis和redis持久化

一、Jedis 我们要使用 Java 来操作 Redis&#xff0c;Jedis 是 Redis 官方推荐的 java连接开发工具&#xff01; 使用Java 操作 Redis 中间件&#xff01; 1.导入对应的依赖 https://mvnrepository.com/artifact/redis.clients/jedis <dependency><groupId>redi…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...