五. Redis 配置内容(详细配置说明)

五. Redis 配置内容(详细配置说明)

文章目录

  • 五. Redis 配置内容(详细配置说明)
  • 1. Units 单位配置
  • 2. INCLUDES (包含)配置
  • 3. NETWORK (网络)配置
    • 3.1 bind(配置访问内容)
    • 3.2 protected-mode (保护模式)
    • 3.3 port(端口)配置
    • 3.4 timeout(客户端超时时间)配置
    • 3.5 tcp-keepalive()配置
  • 4. GENERAL 通用配置
    • 4.1 daemonize(后台启动)配置
    • 4.2 pidfile(pid 文件存在路径)配置
    • 4.3 loglevel(日志级别)配置
    • 4.4 logfile(日志文件)配置
    • 4.5 databases 16(仓库数量)配置
  • 5. SECURITY 安全配置
    • 5.1 在 redis.conf 配置文件当中设置密码(永久)
    • 5.3 在 命令行设置密码
  • 6. LIMITS 限制配置
    • 6.1 maxclients(客户端连接数)配置
    • 6.2 maxmemory(Redis 最大占用内存)配置
    • 6.3 maxmemory-policy(Redis内存不够的算法配置处理)配置
    • 6.4 maxmemory-samples(内存算法处理的比较样本) 配置
  • 7. 总结:
  • 8. 最后:


关于 Redis 配置文件的文档说明:https://www.cnblogs.com/nhdlb/p/14048083.html

在这里插入图片描述

Redis 的配置的内容,都是在 /etc/redis.conf 这个文件当中进行配置设置的。

在这里插入图片描述

在这里插入图片描述

redis.conf 配置内容有很多很多,这里我们讲解一些比较常用的一些配置信息。

1. Units 单位配置

在这里插入图片描述

:set number   # 在 vim 工具当中 ,表示显示行号
  1. 配置大小单位,开头定义了一些基本的度量单位,只支持 bytes(字节) ,不支持 bit(比特),这是默认的,大家可以更加需要自行修改。
  2. 默认是不区分大小写的,对于命令来说,这个也是大家可以自行修改配置的。

2. INCLUDES (包含)配置

在这里插入图片描述

该配置信息表示:多实例的情况可以把公用的配置文件提取出来,然后 include 导入

3. NETWORK (网络)配置

3.1 bind(配置访问内容)

在这里插入图片描述

 bind 127.0.0.1 -::1
  1. 默认情况 bind 127.0.0.1 表示只能接收本地(本机)的访问请求,其它的主机是无法访问的。
  2. 如果服务器是需要远程访问的,需要将其注释掉。
  3. 这里,我们可以启动 redis ,查看当前允许连接的情况。

在这里插入图片描述

注销 bind , 重新启动 redis, 再查看当前允许连接的情况。

在这里插入图片描述

注意: 需要将 Redis 服务器,关闭了,再重启后,配置才能生效。

[root@localhost ~]# redis-cli  -p 6379 shutdown

在这里插入图片描述

在这里插入图片描述

3.2 protected-mode (保护模式)

在这里插入图片描述

默认是保护模式,也就是 protected-mode no

如果服务器是需要远程访问的, 需要将 yes 设置为 no
在这里插入图片描述

3.3 port(端口)配置

在这里插入图片描述

Redis 服务默认端口 6379,可以自行修改,但是注意要在 655535 的范围。

3.4 timeout(客户端超时时间)配置

如图默认配置:

在这里插入图片描述

 timeout 0

一个空闲的客户端维持多少秒会关闭,0 表示关闭该功能, 即永不超时 。大家可以根据需要自行修改。

3.5 tcp-keepalive()配置

在这里插入图片描述

tcp-keepalive 300
  1. tcp-keepalive 是对访问客户端的一种心跳检测,每隔 n 秒检测一次,单位为秒。
  2. 如果设置为 0 ,则不会进行 keepalive 检测,建议设置成 60

为什么需要心跳检测机制:

  1. TCP 协议中有长连接短连接 之分。短连接 环境下,数据交互完毕后,主动释放连接。
  2. 长连接 的环境下,进行一次数据交互后,很长一段时间内无数据交互时,客户端可能意外断开,这些 TCP 连接并未来得及正常释放 ,那么,连接的另一方并不知道对端的情况。就会一直维护这个连接,长时间的积累会导致非常多的半打开连接,造成端系统资源的消耗和浪费,且有可能导致在一个无效的数据链路层面发送业务数据,结果就是发送失败。所以服务端要做到快速感知失败,减少无效链接操作,这就有了 TCPKeepalive(保活探测) 机制

在这里插入图片描述

tcp-keepalive 10

配置成功后,需要重启 Redis 服务才会生效。

[root@localhost etc]# redis-cli -p 6379 shutdown

4. GENERAL 通用配置

4.1 daemonize(后台启动)配置

在这里插入图片描述

daemonize yes
  1. 是否为后台进程,设置为 yes
  2. 设置为 yes 后, 表示守护进程, 后台启动

4.2 pidfile(pid 文件存在路径)配置

在这里插入图片描述

 pidfile /var/run/redis_6379.pid

存放 pid 文件的位置,每个实例会产生一个不同的 pid 文件, 记录 redis 的进程号

在这里插入图片描述

[root@localhost run]# ps -ef | grep redis
[root@localhost run]# cat redis_6379.pid 

在这里插入图片描述

[root@localhost run]# ps -aux | grep sshd

在这里插入图片描述

4.3 loglevel(日志级别)配置

在这里插入图片描述

loglevel notice

Redis 日志分为 4 个级别,默认的设置为 notice,开发测试阶段可以用 debug(日志内容较多,不建议生产环境使用),生产模式一般选用 notice

Redis 日志级别为如下 4 种

  1. debug :会打印很多信息,适用于开发和测试阶段。
  2. verbose(冗长的) :包含很多不太有用的信息,但比 debug 要清爽一些。
  3. notice :适用于生产模式。
  4. warning :警告信息。

在这里插入图片描述

127.0.0.1:6379> config get loglevel

4.4 logfile(日志文件)配置

在这里插入图片描述

logfile ""
  1. logfile “” 就是说,默认为控制台打印,并没有日志文件生成
  2. 可以为 redis.conf 的 logfile 指定配置项。如下:
 logfile "/var/log/redis/redis.log"

在这里插入图片描述

修改了配置文件,需要重启 redis 才会生成。
在这里插入图片描述

127.0.0.1:6379> config get logfile

4.5 databases 16(仓库数量)配置

在这里插入图片描述

databases 16
  1. 设定库的数量,默认是16个,默认数据库为 0 号,数据库索引是从 0 开始的
  2. 可以适用 select<dbid> 命令在连接上指定数据库 id

在这里插入图片描述

5. SECURITY 安全配置

SECURITY 安全配置,就是为 Redis 客户端登录的时候,设置密码。

在 Redis 当中,设置密码有两种方式:

5.1 在 redis.conf 配置文件当中设置密码(永久)

在这里插入图片描述

# requirepass foobared

这里我们测试,将注释去掉,适用这个 foobared 作为密码。

 requirepass foobared

在这里插入图片描述

修改了配置,需要重启 Redis 服务,才会生效。

在这里插入图片描述

在这里插入图片描述

127.0.0.1:6379> auth foobared 
127.0.0.1:6379> auth 密码   # 登录 redis 客户端,使用密码

在这里插入图片描述

在这里插入图片描述

127.0.0.1:6379> acl list
# 注意:需要进入到 Redis 客户端

在这里插入图片描述

127.0.0.1:6379> acl whoami 
# 注意:需要进入到 Redis 客户端

在这里插入图片描述

5.3 在 命令行设置密码

在这里插入图片描述

127.0.0.1:6379> config get requirepass

在这里插入图片描述

在这里插入图片描述

127.0.0.1:6379> config set requirepass rainbowsea

6. LIMITS 限制配置

6.1 maxclients(客户端连接数)配置

在这里插入图片描述

  1. 设置 Redis 同时可以与多少个客户端进行连接(包括远程连接)

  2. 默认情况下为 10000 个客户端。

  3. 如果达到了此限制,redis 会拒绝新的连接请求,并且向这些连接请求方发出 “max number of clients reached”

  4. 注意一点的是:当超过连接数目了,你可以进入到 Redis 客户端,但是的命令是不会被 Redis 执行的,并提示 “max number of clients reached”

6.2 maxmemory(Redis 最大占用内存)配置

在这里插入图片描述

# maxmemory <bytes>
  1. 在默认情况下, 对 32 位 实例会限制在 3 GB, 因为 32 位的机器最大只支持 4GB 的 内存,而系统本身就需要一定的内存资源来支持运行,所以 32 位机器限制最大 3 GB 的 可用内存是非常合理的,这样可以避免因为内存不足而导致 Redis 实例崩溃
  2. 在默认情况下, 对于 64 位实例是没有限制
  3. 当用户开启了 redis.conf 配置文件的 maxmemory 选项,那么 Redis 将限制选项的值 不能小于 1 MB

maxmemory 设置的建议:

  1. Redis 的 maxmemory 设置取决于使用情况, 有些网站只需要 32MB,有些可能需要 12GB
  2. maxmemory 只能根据具体的生产环境来调试,不要预设一个定值,从小到大测试, 基本标准是不干扰正常程序的运行。
  3. Redis 的最大使用内存跟搭配方式有关,如果只是用 Redis 做纯缓存, 64-128M 对一般小 型网站就足够了
  4. 如果使用 Redis 做数据库的话,设置到物理内存的 1/2 到 3/4 左右都可以
  5. 如果使用了快照功能的话,最好用到 50%以下,因为快照复制更新需要双倍内存空间, 如果没有使用快照而设置 redis 缓存数据库,可以用到内存的 80%左右,只要能保证 Java、 NGINX 等其它程序可以正常运行就行了

6.3 maxmemory-policy(Redis内存不够的算法配置处理)配置

在这里插入图片描述

 # maxmemory-policy noevictio

policy 可以配置如下选项:

  1. volatile-lru:使用 LRU 算法移除 key,只对设置了过期时间的键;(最近最少使用)
  2. allkeys-lru:在所有集合 key 中,使用 LRU 算法移除 key
  3. volatile-random:在过期集合中移除随机的 key,只对设置了过期时间的键
  4. allkeys-random:在所有集合 key 中,移除随机的 key
  5. volatile-ttl:移除那些 TTL 值最小的 key,即那些最近要过期的 key
  6. noeviction:不进行移除。针对写操作,只是返回错误信息

无论是选择那种配置,都会丢失数据,所以,尽量还是设置好合适的 Redis 内存,方式内存不够用

6.4 maxmemory-samples(内存算法处理的比较样本) 配置

在这里插入图片描述

# maxmemory-samples 5
  1. 设置样本数量,LRU 算法和最小 TTL 算法都并非是精确的算法,而是估算值,所以你可 以设置样本的大小,redis 默认会检查这么多个 key 并选择其中 LRU 的那个。
  2. 一般设置 3 到 7 的数字,数值越小样本越不准确,但性能消耗越小。

举例理解:

简单的比较就是:当你在 8W 个人当中,找到身高 180 的人,很费时间和精力。但是当让你从 10,100个人当中找 身高 180的人,那就更简单了。简单的理解就是一个参考的样本。参考的数量越多精确度越高,但是成本也就越高。参考的数量少的,精确的就越低,但是消耗的成本却更低。

7. 总结:

  1. 注意: 上述的所有配置都需要将 Redis 服务器,关闭了,再重启后,配置才能生效。
  2. 查看 redis.conf 配置文件的信息,可以进入到 Redis 客户端后,使用 config get 配置属性/信息 命令。注意: 需要先进入到 Redis 客户端才行。

在这里插入图片描述

127.0.0.1:6379> config get loglevel
1) "loglevel"
2) "notice"
127.0.0.1:6379> config get logfile
1) "logfile"
2) ""

  1. 在命令行当中设置 redis.conf 配置文件的信息,可以进入到 Redis 客户端后,使用 config set 配置属性/信息 命令。注意: 需要先进入到 Redis 客户端才行。同时因为是在 客户端命令设置的配置信息,那么退出了客户端,该命令行配置的信息就都失效了。

在这里插入图片描述

127.0.0.1:6379> config set requirepass rainbowsea

在这里插入图片描述

在这里插入图片描述

127.0.0.1:6379> auth rainbowsea

在这里插入图片描述

127.0.0.1:6379> config get requirepass

8. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/963223.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用 HTML、CSS 和 JavaScript 实现抽奖转盘效果

顺序抽奖 前言 这段代码实现了一个简单的抽奖转盘效果。页面上有一个九宫格布局的抽奖区域&#xff0c;周围八个格子分别放置了不同的奖品名称&#xff0c;中间是一个 “开始抽奖” 的按钮。点击按钮后&#xff0c;抽奖区域的格子会快速滚动&#xff0c;颜色不断变化&#xf…

【Linux系统】计算机世界的基石:冯诺依曼架构与操作系统设计

文章目录 一.冯诺依曼体系结构1.1 为什么体系结构中要存在内存&#xff1f;1.2 冯诺依曼瓶颈 二.操作系统2.1 设计目的2.2 系统调用与库函数 一.冯诺依曼体系结构 冯诺依曼体系结构&#xff08;Von Neumann Architecture&#xff09;是计算机的基本设计理念之一&#xff0c;由…

说说Redis的内存淘汰策略?

大家好&#xff0c;我是锋哥。今天分享关于【说说Redis的内存淘汰策略?】面试题。希望对大家有帮助&#xff1b; 说说Redis的内存淘汰策略? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 提供了多种内存淘汰策略&#xff0c;用于在内存达到限制时决定如何…

【python】python基于机器学习与数据分析的手机特性关联与分类预测(源码+数据集)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 python基于机器学习与数据分析的手机特性关联与分类…

Flutter_学习记录_Tab的简单Demo~真的很简单

1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件&#xff1a; TabBarTabBarViewTabController 这一块&#xff0c;我也不知道怎么整理了&#xff0c;直接提供代码吧&#xff1a; import package:flutter/material.dart;void main() {runApp(MyApp());…

JavaScript中的数组方法总结+详解

在JS中,数组方法是非常重要且常用的方法.在此整理总结一番. 1. javaScript常用数组方法 2.方法详解 1.push(); 功能: 在数组最后一位添加一个或多个元素,并返回新数组的长度,改变原数组.(添加多个元素用逗号隔开) var arr [1, 2, "c"];var rel arr.push(&q…

蓝桥杯之c++入门(二)【输入输出(上)】

目录 前言1&#xff0e;getchar和 putchar1.1 getchar()1.2 putchar() 2&#xff0e;scanf和 printf2.1 printf2.1.1基本用法2.1.2占位符2.1.3格式化输出2.1.3.1 限定宽度2.1.3.2 限定小数位数 2.2 scanf2.2.1基本用法2.2.2 占位符2.2.3 scanf的返回值 2.3练习练习1&#xff1a…

[EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型

Paper Card 论文标题&#xff1a;Diffusion-VLA: Scaling Robot Foundation Models via Unified Diffusion and Autoregression 论文作者&#xff1a;Junjie Wen, Minjie Zhu, Yichen Zhu, Zhibin Tang, Jinming Li, Zhongyi Zhou, Chengmeng Li, Xiaoyu Liu, Yaxin Peng, Chao…

3.5.5 基于横盘结构的分析体系——缠论(走势类型)

走势 缠论中走势的定义如下&#xff1a; 包含一个中枢的走势——盘整 包含两个或多个中枢的走势——趋势 方向 趋势&#xff08;两中枢或多中枢&#xff09; 盘整&#xff08;一中枢&#xff09; 上涨 下跌 表1-8 盘整和趋势类型的走势理论图。 趋势和中枢 …

使用PyQt5绘制带有刻度的温度计控件

前言&#xff1a;进入学习Python开发上位机界面的第二阶段&#xff0c;学习如何开发自定义控件&#xff0c;从常用的控件入手学习&#xff0c;本期主要学习如何使用PyQt5绘制带有刻度的温度计控件。 1. 先找到一篇参考文章 参考文章&#xff1a;Qt编写自定义控件5-柱状温度计…

DIFY源码解析

偶然发现Github上某位大佬开源的DIFY源码注释和解析&#xff0c;目前还处于陆续不断更新地更新过程中&#xff0c;为大佬的专业和开源贡献精神点赞。先收藏链接&#xff0c;后续慢慢学习。 相关链接如下&#xff1a; DIFY源码解析

赛博算卦之周易六十四卦JAVA实现:六幺算尽天下事,梅花化解天下苦。

佬们过年好呀~新年第一篇博客让我们来场赛博算命吧&#xff01; 更多文章&#xff1a;个人主页 系列文章&#xff1a;JAVA专栏 欢迎各位大佬来访哦~互三必回&#xff01;&#xff01;&#xff01; 文章目录 #一、文化背景概述1.文化起源2.起卦步骤 #二、卦象解读#三、just do i…

「AI学习笔记」深度学习的起源与发展:从神经网络到大数据(二)

深度学习&#xff08;DL&#xff09;是现代人工智能&#xff08;AI&#xff09;的核心之一&#xff0c;但它并不是一夜之间出现的技术。从最初的理论提出到如今的广泛应用&#xff0c;深度学习经历了几乎一个世纪的不断探索与发展。今天&#xff0c;我们一起回顾深度学习的历史…

AIGC技术中常提到的 “嵌入转换到同一个向量空间中”该如何理解

在AIGC&#xff08;人工智能生成内容&#xff09;技术中&#xff0c;“嵌入转换到同一个向量空间中”是一个核心概念&#xff0c;其主要目的是将不同类型的输入数据&#xff08;如文本、图像、音频等&#xff09;映射到一个统一的连续向量空间中&#xff0c;从而实现数据之间的…

单细胞分析基础-第一节 数据质控、降维聚类

scRNA_pipeline\1.Seurat 生物技能树 可进官网查询 添加链接描述 分析流程 准备:R包安装 options("repos"="https://mirrors.ustc.edu.cn/CRAN/") if(!require("BiocManager")) install.packages("BiocManager",update = F,ask =…

【13】WLC HA介绍和配置

1.概述 本文对AireOS WLC的HA进行介绍,和大多数网络架构设计一样,单台的WLC是无法保证设备的冗余性的,而且WLC也不是双引擎的设备,所以需要依靠High Available的技术来为WLC提供高可用性。 2.WLC HA类型 AireOS WLC的高可用性技术可以分为N+1的SSO的HA。不是所有的设备都…

Alibaba开发规范_编程规约之命名风格

文章目录 命名风格的基本原则1. 命名不能以下划线或美元符号开始或结束2. 严禁使用拼音与英文混合或直接使用中文3. 类名使用 UpperCamelCase 风格&#xff0c;但以下情形例外&#xff1a;DO / BO / DTO / VO / AO / PO / UID 等4. 方法名、参数名、成员变量、局部变量使用 low…

【Elasticsearch 基础入门】Centos7下Elasticsearch 7.x安装与配置(单机)

Elasticsearch系列文章目录 【Elasticsearch 基础入门】一文带你了解Elasticsearch&#xff01;&#xff01;&#xff01;【Elasticsearch 基础入门】Centos7下Elasticsearch 7.x安装与配置&#xff08;单机&#xff09; 目录 Elasticsearch系列文章目录前言单机模式1. 安装 J…

Gurobi基础语法之 addConstr, addConstrs, addQConstr, addMQConstr

在新版本的 Gurobi 中&#xff0c;向 addConstr 这个方法中传入一个 TempConstr 对象&#xff0c;在模型中就会根据这个对象生成一个约束。更重要的是&#xff1a;TempConstr 对象可以传给所有addConstr系列方法&#xff0c;所以下面先介绍 TempConstr 对象 TempConstr TempC…

深度学习可视化指标方法工具

1. TensorBoard 简介&#xff1a;由TensorFlow提供的可视化工具&#xff0c;现已支持多种深度学习框架。 功能&#xff1a; 图可视化&#xff1a;展示计算图结构&#xff0c;帮助理解模型架构。 标量仪表板&#xff1a;跟踪损失和准确率等指标的变化。 直方图仪表板&#xf…