Redis入门实战(四)Redis 配置文件redis.conf详解

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
日志服务 SLS,月写入数据量 50GB 1个月
简介: 前面我们介绍了Redis的安装和Redis的几个数据结构。但是,还是有些朋友会问我Redis的配置文件内容项,参数都有哪些?配置个主从、持久化等是怎么配置的?

前面我们介绍了Redis的安装和Redis的几个数据结构。但是,还是有些朋友会问我Redis的配置文件内容项,参数都有哪些?配置个主从、持久化等是怎么配置的?

其实,这些都可以在Redis提供的配置文件:redis.conf中配置。那么接下来我们就来捋一捋Redis的配置文件(redis.conf :版本号-redis-3.0)。


首先,Redis的配置文件redis.conf 在我们编译完 redis后,将在源码目录下 redis.conf ,将其拷贝到工作目录下使用即可。

如果未找到对应的redis.conf 文件,可以全局搜索配置文件 redis.conf 所在目录,和Redis相关的参数配置都在此目录下设置。

# find / -name redis.conf


一、基本配置

port 6379  # 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。

daemonize no #是否以后台进程启动

databases 16 #创建database的数量(默认选中的是database 0)


save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。

save 300 10 #必须是300秒之后至少10个关键字发生变化。

save 60 10000 #必须是60秒之后至少10000个关键字发生变化。

stop-writes-on-bgsave-error yes #后台存储错误停止写。

rdbcompression yes #使用LZF压缩rdb文件。

rdbchecksum yes #存储和加载rdb文件时校验。

dbfilename dump.rdb #设置rdb文件名。

dir ./ #设置工作目录,rdb文件会写入该目录。


二、主从配置

slaveof   设为某台机器的从服务器

masterauth  连接主服务器的密码

slave-serve-stale-data yes # 当主从断开或正在复制中,从服务器是否应答

slave-read-only yes #从服务器只读

repl-ping-slave-period 10 #从ping主的时间间隔,秒为单位

repl-timeout 60 #主从超时时间(超时认为断线了),要比period大

slave-priority 100 #如果master不能再正常工作,那么会在多个slave中,选择优先值最小的一个slave提升为master,优先值为0表示不能提升为master。

repl-disable-tcp-nodelay no #主端是否合并数据,大块发送给slave

slave-priority 100 从服务器的优先级,当主服挂了,会自动挑slave priority最小的为主服


三、安全

requirepass foobared # 需要密码

rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 #如果公共环境,可以重命名部分敏感命令 如config

 

四、限制

maxclients 10000 #最大连接数

maxmemory  #最大使用内存

maxmemory-policy volatile-lru #内存到极限后的处理

volatile-lru -> LRU算法删除过期key

allkeys-lru -> LRU算法删除key(不区分过不过期)

volatile-random -> 随机删除过期key

allkeys-random -> 随机删除key(不区分过不过期)

volatile-ttl -> 删除快过期的key

noeviction -> 不删除,返回错误信息

#解释 LRU ttl都是近似算法,可以选N个,再比较最适宜T踢出的数据

maxmemory-samples 3


五、日志模式

appendonly no #是否仅要日志

appendfsync no # 系统缓冲,统一写,速度快

appendfsync always # 系统不缓冲,直接写,慢,丢失数据少

appendfsync everysec #折衷,每秒写1次

no-appendfsync-on-rewrite no #为yes,则其他线程的数据放内存里,合并写入(速度快,容易丢失的多)

auto-AOF-rewrite-percentage 100 当前aof文件是上次重写是大N%时重写

auto-AOF-rewrite-min-size 64mb aof重写至少要达到的大小


六、慢查询

slowlog-log-slower-than 10000 #记录响应时间大于10000微秒的慢查询

slowlog-max-len 128 # 最多记录128条


七、集群配置

cluster-enabled yes #允许集群模式,只有以集群模式启动的Redis实例才能作为集群的节点。

cluster-node-timeout 15000 #节点超时时间,集群模式下,master节点之间会互相发送PING心跳来检测集群master节点的存活状态,超过配置的时间没有得到响应,则认为该master节点主观宕机。

cluster-migration-barrier 1 #设置master故障转移时保留的最少副本数,群集某个master的slave可以迁移到孤立的master,即没有工作slave的master。这提高了集群抵御故障的能力,因为如果孤立master没有工作slave,则在发生故障时无法对其进行故障转移。只有在slave的旧master的其他工作slave的数量至少为给定数量时,slave才会迁移到孤立的master。这个数字就是cluster-migration-barrier。值为1意味着slave只有在其master至少有一个其他工作的slave时才会迁移,以此类推。它通常反映集群中每个主机所需的副本数量。默认值为1(仅当副本的主副本至少保留一个副本时,副本才会迁移)。要禁用迁移,只需将其设置为非常大的值。可以设置值0,但仅对调试有用,并且在生产中很危险。

cluster-require-full-coverage yes #哈希槽全覆盖检查,默认情况下,如果Redis群集节点检测到至少有一个未覆盖的哈希槽(没有可用的节点为其提供服务),它们将停止接受查询。这样,如果集群部分关闭(例如,一系列哈希槽不再被覆盖),那么所有集群最终都将不可用。一旦所有插槽再次被覆盖,它就会自动返回可用状态。然而,有时您希望正在工作的集群的子集继续接受对仍然覆盖的密钥空间部分的查询。为此,只需将cluster-require-full-coverage选项设置为no。

cluster-replica-no-failover no 是否自动故障转移,当设置为“yes”时,此选项可防止副本在主机故障期间尝试故障切换master。但是,如果被迫这样做,主机仍然可以执行手动故障切换。


八、常用运维命令

1.服务器端命令

time 返回时间戳+微秒

dbsize 返回key的数量

bgrewriteaof 重写aof

bgsave 后台开启子进程dump数据

save 阻塞进程dump数据

lastsave

slaveof host port 做host port的从服务器(数据清空,复制新主内容)

slaveof no one 变成主服务器(原数据不丢失,一般用于主服失败后)

flushdb 清空当前数据库的所有数据

flushall 清空所有数据库的所有数据(误用了怎么办?)

shutdown [save/nosave] 关闭服务器,保存数据,修改AOF(如果设置)

slowlog get 获取慢查询日志

slowlog len 获取慢查询日志条数

slowlog reset 清空慢查询

2.设置

config get 选项(支持*通配)

config set 选项 值

config rewrite 把值写到配置文件

config restart 更新info命令的信息

debug object key #调试选项,看一个key的情况

debug segfault #模拟段错误,让服务器崩溃

object key (refcount|encoding|idletime)

monitor #打开控制台,观察命令(调试用)

client list #列出所有连接

client kill #杀死某个连接 CLIENT KILL 127.0.0.1:43501

client getname #获取连接的名称 默认nil

client setname "名称" #设置连接名称,便于调试

 

2.连接命令

auth 密码 #密码登陆(如果有密码)

ping #测试服务器是否可用

echo "some content" #测试服务器是否正常交互

select 0/1/2... #选择数据库

quit #退出连接

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
13天前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
35 5
|
1月前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
85 1
springboot的缓存和redis缓存,入门级别教程
|
19天前
|
缓存 NoSQL Java
Spring Boot与Redis:整合与实战
【10月更文挑战第15天】本文介绍了如何在Spring Boot项目中整合Redis,通过一个电商商品推荐系统的案例,详细展示了从添加依赖、配置连接信息到创建配置类的具体步骤。实战部分演示了如何利用Redis缓存提高系统响应速度,减少数据库访问压力,从而提升用户体验。
51 2
|
30天前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
52 8
|
30天前
|
设计模式 NoSQL 网络协议
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
35 2
|
2月前
|
缓存 NoSQL 应用服务中间件
Redis实战篇
Redis实战篇
|
3月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
123 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
3月前
|
运维 监控 NoSQL
【Redis】哨兵(Sentinel)原理与实战全解~炒鸡简单啊
Redis 的哨兵模式(Sentinel)是一种用于实现高可用性的机制。它通过监控主节点和从节点,并在主节点故障时自动进行切换,确保集群持续提供服务。哨兵模式包括主节点、从节点和哨兵实例,具备监控、通知、自动故障转移等功能,能显著提高系统的稳定性和可靠性。本文详细介绍了哨兵模式的组成、功能、工作机制以及其优势和局限性,并提供了单实例的安装和配置步骤,包括系统优化、安装、配置、启停管理和性能监控等。此外,还介绍了如何配置主从复制和哨兵,确保在故障时能够自动切换并恢复服务。
|
3月前
|
存储 缓存 NoSQL
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
|
3月前
|
存储 NoSQL Redis
Redis 文件总大小问题之计算待加载AOF文件总大小如何解决
Redis 文件总大小问题之计算待加载AOF文件总大小如何解决