Redis 基础之Redis 配置

Redis 配置

  • Redis CONFIG GET 命令语法格式
  • 编辑配置
  • Redis 配置参数说明

Redis 提供了很多配置选项来优化 Redis 服务

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf

可以通过 Redis CONFIG 命令查看或设置配置项
Redis CONFIG GET 命令语法格式

Redis CONFIG GET 命令语法格式

Redis CONFIG GET 命令语法格式如下

CONFIG GET CONFIG_SETTING_NAME

范例

1270.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"

可以使用 * 号获取所有的 Redis 配置

1270.0.1:6379> CONFIG GET *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
 11) "pidfile"
 12) "/usr/local/var/run/redis.pid"
 13) "maxmemory"
 14) "0"
 15) "maxmemory-samples"
 16) "5"
 17) "timeout"
 18) "0"
 19) "tcp-keepalive"
 20) "0"
 21) "auto-aof-rewrite-percentage"
 22) "100"
 23) "auto-aof-rewrite-min-size"
 24) "67108864"
 25) "hash-max-ziplist-entries"
 26) "512"
 27) "hash-max-ziplist-value"
 28) "64"
 29) "list-max-ziplist-entries"
 30) "512"
 31) "list-max-ziplist-value"
 32) "64"
 33) "set-max-intset-entries"
 34) "512"
 35) "zset-max-ziplist-entries"
 36) "128"
 37) "zset-max-ziplist-value"
 38) "64"
 39) "hll-sparse-max-bytes"
 40) "3000"
 41) "lua-time-limit"
 42) "5000"
 43) "slowlog-log-slower-than"
 44) "10000"
 45) "latency-monitor-threshold"
 46) "0"
 47) "slowlog-max-len"
 48) "128"
 49) "port"
 50) "6379"
 51) "tcp-backlog"
 52) "511"
 53) "databases"
 54) "16"
 55) "repl-ping-slave-period"
 56) "10"
 57) "repl-timeout"
 58) "60"
 59) "repl-backlog-size"
 60) "1048576"
 61) "repl-backlog-ttl"
 62) "3600"
 63) "maxclients"
 64) "10000"
 65) "watchdog-period"
 66) "0"
 67) "slave-priority"
 68) "100"
 69) "min-slaves-to-write"
 70) "0"
 71) "min-slaves-max-lag"
 72) "10"
 73) "hz"
 74) "10"
 75) "cluster-node-timeout"
 76) "15000"
 77) "cluster-migration-barrier"
 78) "1"
 79) "cluster-slave-validity-factor"
 80) "10"
 81) "repl-diskless-sync-delay"
 82) "5"
 83) "cluster-require-full-coverage"
 84) "yes"
 85) "no-appendfsync-on-rewrite"
 86) "no"
 87) "slave-serve-stale-data"
 88) "yes"
 89) "slave-read-only"
 90) "yes"
 91) "stop-writes-on-bgsave-error"
 92) "yes"
 93) "daemonize"
 94) "no"
 95) "rdbcompression"
 96) "yes"
 97) "rdbchecksum"
 98) "yes"
 99) "activerehashing"
100) "yes"
101) "repl-disable-tcp-nodelay"
102) "no"
103) "repl-diskless-sync"
104) "no"
105) "aof-rewrite-incremental-fsync"
106) "yes"
107) "aof-load-truncated"
108) "yes"
109) "appendonly"
110) "no"
111) "dir"
112) "/usr/local/var/db/redis"
113) "maxmemory-policy"
114) "noeviction"
115) "appendfsync"
116) "everysec"
117) "save"
118) "900 1 300 10 60 10000"
119) "loglevel"
120) "notice"
121) "client-output-buffer-limit"
122) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
123) "unixsocketperm"
124) "0"
125) "slaveof"
126) ""
127) "notify-keyspace-events"
128) ""
129) "bind"
130) "127.0.0.1"

编辑配置

可以通过修改 redis.conf 文件或使用 CONFIG set 命令来修改配置

Redis CONFIG SET 命令
Redis CONFIG SET 命令用来设置配置选项

Redis CONFIG SET 语法
Redis CONFIG SET 命令语法格式如下

CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

范例

1270.0.1:6379> CONFIG SET loglevel "notice"
OK
1270.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"

Redis 配置参数说明

Redis 提供了很多配置选项来优化 Redis 服务

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf,配置项说明如下
1、 daemonize;
Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程

# daemonize yes|no
daemonize yes

2、 pidfile;
Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件 可以通过 pidfile 项指定

pidfile /var/run/redis.pid

3、 port;
指定Redis 监听端口,默认端口为 6379

6379 的典故:

Redis 作者曾经解释了为什么选用 6379 作为默认端口

因为 6379 在手机按键上 MERZ 对应的号码,而 MERZ 取自意大利歌女 Alessia Merz 的名字
port 6379

4、 bind;
绑定的主机地址

bind 127.0.0.1

5、 timeout;
设置客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能

timeout 300

6、 loglevel;
指定日志记录级别
Redis 支持四个级别:debug、verbose、notice、warning,默认为 verbose

loglevel verbose

7、 logfile;
日志记录方式,默认为标准输出
如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null

logfile stdout

8、 databases;
设置数据库的数量,默认数据库为 0
可以使用 SELECT 命令在连接上指定数据库 id

databases 16

9、 save;
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

save <seconds> <changes>

Redis 默认配置文件中提供了三个条件:

save 900 1      # 表示 900( 15分钟 ) 内有 1 个更改
save 300 10     # 表示 300( 5分钟 ) 内有 10 个更改
save 60 10000   # 表示 60  秒内有 10000 个更改

10、 rdbcompression;

指定存储至本地数据库时是否压缩数据,默认为 yes
Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大

rdbcompression yes

11、 dbfilename;
指定本地数据库文件名,默认值为 dump.rdb

dbfilename dump.rdb

12、 dir;
指定本地数据库存放目录

dir ./

13、 slaveof;
当本机为 slave 服务时,设置 master 服务的 IP 地址及端口
在Redis 启动时,它会自动从 master 进行数据同步

slaveof <masterip> <masterport>

14、 masterauth;
当master 服务设置了密码保护时,slave 服务连接 master 的密码

masterauth <master-password>

15、 requirepass;
设置Redis 连接密码,默认关闭
如果配置了密码,客户端在连接 Redis 时需要通过 AUTH 提供密码

requirepass <require-password>

16、 maxclients;
设置同一时间最大客户端连接数,默认无限制

Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数
如果设置 maxclients 0,表示不作限制
当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息

maxclients 128

17、 maxmemory;
指定Redis 最大内存限制

Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key

当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。

Redis 新的 vm 机制,会把 key 存放内存,value 会存放在 swap 区

maxmemory <bytes>

18、 appendonly;
指定是否在每次更新操作后进行日志记录,默认为 no

Redis 在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失

因为Redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中

appendonly no|yes

19、 appendfilename;
指定更新日志文件名,默认为 appendonly.aof

appendfilename appendonly.aof

20、 appendfsync;
指定更新日志条件,默认为 everysec

appendfsync everysec

日志条件共有3个可选值:

no :表示等操作系统进行数据缓存同步到磁盘 ()
always :每次更新操作后手动调用 fsync()将数据写到磁盘 (慢,安全)
everysec :每秒同步一次 ( 折衷,默认值 )

21、 vm-enabled;
指定是否启用虚拟内存机制,默认值为 no

vm-enabled no

VM机制将数据分页存放,由 Redis 将访问量较少的页即冷数据 swap 到磁盘上,访问多的页面由磁盘自动换出到内存中
22、 vm-swap-file;
虚拟内存文件路径,默认值为 /tmp/redis.swap 不可多个 Redis 实例共享

vm-swap-file /tmp/redis.swap

23、 vm-max-memory;
将所有大于 vm-max-memory 的数据存入虚拟内存

vm-max-memory 0

无论vm-max-memory 设置多小,所有索引数据都是内存存储的 当 vm-max-memory 设置为 0 的时候,其实是所有 value 都存在于磁盘。默认值为 0

Redis的索引数据 就是keys
24、 vm-page-size
vm-page-size 是要根据存储的数据大小来设定的
vm-page-size 32

Redis swap 文件分成了很多的 page,一个对象可以保存在多个 page 上面,但一个 page 上不能被多个对象共享,

Redis 建议如果存储很多小对象,page 大小最好设置为 32 或者 64 bytes;如果存储很大大对象,则可以使用更大的 page,如果不确定,就使用默认值
25、 vm-pages;
设置swap 文件中的 page 数量

vm-pages 134217728

页表(一种表示页面空闲或使用的 bitmap )是在放在内存中的,在磁盘上每 8 个 pages 将消耗 1byte 的内存
26、 vm-max-threads;
设置访问 swap 文件的线程数,默认值为 4

vm-max-threads 4

最好不要超过机器的核数
如果设置为 0,所有对 swap 文件的操作都是串行的,可能会造成长时间的延迟
27、 glueoutputbuf;
设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启 (yes)

glueoutputbuf yes

28、 hash-max-zipmap-entries 和 hash-max-zipmap-value;
指定在超过一定的数量或者最大的元素超过某一临界值时,采用特殊的哈希算法

hash-max-zipmap-entries 64
hash-max-zipmap-value 512

29、 activerehashing;
指定是否激活重置哈希,默认为开启 (yes)

activerehashing yes*

30、 include;
指定包含其它的配置文件

include /path/to/local.conf

可以在同一主机上多个 Redis 实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件

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

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

相关文章

Java 区块链应用 | 割韭菜之假如K线涨跌可随意变动修改的实现

大家好&#xff0c;我是程序员大猩猩。 我一直在想&#xff0c;币圈这个行情时涨时跌&#xff0c;不断的割韭菜&#xff0c;不是由市场决定的&#xff01;而是由交易所直接输入一个数值后点击确定按钮而变化的&#xff0c;那么是不是很恐怖的行为。 为了验证这么一个想法&…

快速掌握子网划分(简单易懂)

什么是子网划分&#xff1f; 子网划分 是指将一个大的IP网络划分为更小、更易于管理的子网络&#xff0c;由大化小&#xff0c;是子网划分的核心理念。 子网划分的基本概念 IP地址&#xff1a;一个32位的数值&#xff0c;表示为四个十进制数&#xff08;每个数在0-255之间&a…

20240509给飞凌的RK3588开发板在linux系统下挂载TF卡

20240509给飞凌的RK3588开发板在linux系统下挂载TF卡 2024/5/9 9:56 飞凌的开发板。linux/Buildroot 上电之前 TF卡插槽装入了32GB的TF卡。FAT32格式。 fdisk可以看到 TF卡。但是mount的时候 busy。请问是啥问题&#xff1f; 为了在核心板 播放MP4视频。 现在要将视频 弄到 核…

懒洋洋作业讲解

懒洋洋作业讲解 环境配置 1.软件下载&#xff1a;DCloud - HBuilder、HBuilderX、uni-app、uniapp、5、5plus、mui、wap2app、流应用、HTML5、小程序开发、跨平台App、多端框架 2.软件介绍 HBuilder是由DCloud&#xff08;数字天堂&#xff09;推出的一款面向HTML5的Web开发…

从零开始写 Docker(十三)---实现 mydocker rm 删除容器

本文为从零开始写 Docker 系列第十三篇&#xff0c;实现类似 docker rm 的功能&#xff0c;使得我们能够删除容器。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&#xff1a; 核心原理&#xff1a;深…

【Linux系统编程】第十五弹---调试器gdb使用

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、背景 2、安装gdb 3、gdb的使用 总结 1、背景 前面我们学习了文件编辑器&#xff0c;项目自动化构建工具&#xff0c;以及g…

一年期SSL证书选择指南

在当今这个数字化时代&#xff0c;网络安全已成为每个人和企业都必须关注的重要议题。SSL证书作为保障网络安全的重要工具&#xff0c;对于保护用户隐私、提高网站信任度以及促进在线交易安全具有重要意义。本文将为您详细解析如何选择一年期的SSL证书&#xff0c;以确保您的网…

Linux系统入侵排查(一)

前言 为什么要做系统入侵排查 入侵排查思路 1.检查账号安全 基本使用&#xff1a; cat和more指令说明 1、查看用户信息文件 2、影子文件 3.查看当前登录用户 2.账号安全入侵排查方法总结 1、查询特权用户特权用户(uid 为0) 2、查询可以远程登录的帐号信息 3、除roo…

第二证券|摘星脱帽行情火爆 超40只ST股候场

5月8日&#xff0c;ST中嘉、*ST明诚强势涨停&#xff0c;2家公司年内均请求吊销危险警示。其间ST中嘉自4月29日以来&#xff0c;已接连录得5个涨停板&#xff1b;*ST明诚自4月23日以来9个交易日录得8个涨停板。 年报季向来是几家欢喜几家愁的时间&#xff0c;有公司披星戴帽&a…

Konga域名配置多个路由

云原生API网关-Kong部署与konga基本使用 Nginx server{listen 443 ssl;location / {proxy_pass http://127.0.0.1:8100;}location /openApi {proxy_pass http://172.31.233.35:7100/openApi;} } Kong {"id": "f880b21c-f7e0-43d7-a2a9-221fe86d9231&q…

【 npm详解:从入门到精通】

文章目录 npm详解&#xff1a;从入门到精通1. [npm](https://www.npmjs.com/)的安装2. npm的基础用法2.1 初始化项目2.2 安装依赖2.3 卸载依赖2.4 更新依赖 3. npm的高级用法3.1 运行脚本3.2 使用npm scope3.3 使用npm link 4. npm资源5. 使用npm进行依赖树分析和可视化6. npm进…

c语言常用操作符(2)

1.移位操作符 移位操作符分为<<左移操作符和右移操作符>> 注&#xff1a;移位操作符的操作数只能是整数&#xff0c;同时移位操作符移动的是存储在内存中的二进制位&#xff08;也就是补码&#xff09; 同时移位操作符不要移动负数位&#xff0c;这个是标准未定义…

Android 查看CUP占用率

查看每个进程CUP占用率的几种方式,由于自己充电界面老是导致整机温度过高&#xff0c;后面发现自己的线程一直在跑&#xff0c;相当于死循环&#xff0c;后面加上sleep才得以改善&#xff1b;先看看几种查询方式吧。 1、adb shell top 2、adb shell busybox top 3、adb shell …

SAM轻量化应用Auto-SAM、Group-Mix SAM、RAP-SAM、STLM

1. Auto SAM&#xff08;Auto-Prompting SAM for Mobile Friendly 3D Medical Image Segmentation&#xff09; 1.1 面临问题 医学背景&#xff1a; &#xff08;1&#xff09;与自然图像相比&#xff0c;医学图像的尺寸更小&#xff0c;形状不规则&#xff0c;对比度更低。&…

【Java】从0实现一个基于SpringBoot的个人博客系统

从0实现一个基于SpringBoot的个人博客系统 项目介绍准备工作数据准备创建项目准备前端页面编写配置文件 项目公共模块实体类公共层业务代码持久层实现博客列表实现博客列表约定前后端交互接口 实现博客详情约定前后端交互接口实现服务器代码 实现登录JWT令牌JWT令牌生成和校验实…

vCenter 7.3证书过期无法登录处理方法

登录报错&#xff1a;如下图 Exception in invking authentication handler [SSL: CERTIFICATE_VERIFY_FAILED] certificate vertify failed: certificate has expired(_ssl.c:1076) 处理方法1&#xff1a;推荐&#xff0c;可行 登录vCenter控制台&#xff0c;AltF3切换至命令…

【GaussTech速递】数据库技术解读之细粒度资源管控

背景 对数据库集群内资源管控与资源隔离一直是企业客户长久以来的诉求。华为云GaussDB作为一款企业级分布式数据库&#xff0c;一直致力于满足企业对大型数据库集群的管理需要。 数据库可以管理的资源有计算资源与存储资源&#xff0c;计算资源包括CPU、内存、IO与网络&#…

容器化Jenkins远程发布java应用(方式一:pipline+ssh)

1.创建pipline工程 2.准备工程Jenkinsfile文件&#xff08;java目录&#xff09; 1.文件脚本内容 env.fileName "planetflix-app.jar" env.configName "planetflix_prod" env.remoteDirectory "/data/project/java" env.sourceFile "/…

基于TL431的线性可调恒压恒流电源的Multisim电路仿真设计

1、线性电源的工作原理 在我们日常应用里&#xff0c;直流电是从市电或电网中的交流电获取的。例如15V直流电压源、24V直流电压源等等。交流电变为直流电的过程大概分为一下几步&#xff1a; 首先&#xff0c;交流电通过变压器降低其电压幅值。接着&#xff0c;经过整流电路进…

57.基于SpringBoot + Vue实现的前后端分离-在线教育系统(项目 + 论文PPT)

项目介绍 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了在线教育系统的开发全过程。通过分析在线教育系统管理的不足&#xff0c;创建了一个计算机管理在线教育系统的方案。文章介绍了在线教育系统的系统分析部分&…
最新文章