Redis.config 配置 深度剖析

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
日志服务 SLS,月写入数据量 50GB 1个月
简介: Redis.config 配置 深度剖析

redis 重要的配置

打开  redis目录中 redis.config配置

1. 单位

d5171f93e97e459bb5f691a95a72297d.png

配置文件对 大小写不敏感

2.包含

58de5714cf7a4324a8497d479b3e0b10.png

好比string improt标签把其他东西导到这里   ,通俗  就是把多个配置文件 配置过来


3.网络


 bind 127.0.0.1     # 本机地址 目前只能本机访问 。如果想远程 可以写一个 " * " 号通配  或指定ip


 protected-mode  yes   # 是否受保护的   一般都是开启的  保证安全性


 port  6379     #  端口号 修改端口可以在这改   比如集群肯定是需要修改的


4.通用


daemonize  yes   #已守护进程的方式运行, 默认是 no , 需要自己开启为 yes ,否则 一退出 进程就


结束了


# 日志
# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)    生产环境
# warning (only very important / critical messages are logged)
loglevel notice
logfile ""   #日志的文件位置名  默认为空不输出
databases 16   #  默认的数据库 数量   16个 
always - show - logo  yes   # 是否显示logo     就是我们启动redis 的logo  
—————


5.快照  配置rdb

持久化, 在规定时间内 , 执行多少次操作后, 则会持久化到文件 .rdb .aof

redis 是内存数据库 , 不持久化 数据就会丢 , 断电及失 !


save 900 1        #  如果900s内 , 如果 至少有1个key 进行了修改, 就进行持久化操作
save 300 10      #  如果300s内 , 如果 至少有10个key 进行了修改, 就进行持久化操作
save 60 10000  #  如果60s内 , 如果 至少有10000个key 进行了修改, 就进行持久化操作
# 以上是默认配置    我们可以根据自己需求 以及并发量 去设置 
# 如果想使用rde规则可以用#号注释  , rdb aof  都可以单独使用  也可以组合使用
stop-writes-on-bgsave-error yes  # 持久化如果出错 , 是否还需继续工作!
rdbcompression yes   #   是否压缩 rdb  文件, 需要消耗一些cpu 资源 !
rdbchecksum yes      # 保存 rdb 文件的时候 , 进行错误的检查校验!
dir ./   # rdb 文件保存的目录!

6. REPLICATION   主从复制  

7. SECURITY  安全  


057f6e185ee8448b9e5b5af96477007a.png

默认是没有密码!




这个时候我们 登录 就需要 密码了   。更多时候 我们是用命令去设置的!


rdeis 通过命令设置密码:  


1. 查看是否有密码 config get requirepass  


2. 设置密码 config set requirepass "需要设置的密码"  


3. 设置密码后我们直接ping 是ping 不通的 会报: (error)NOAUTH Authentication required. 需要输入密码认证


4. auth 123456   登录认证


018b9bfbe6f242b984006768f45315f8.png


8. LIMITS 限制  


maxclients 10000   #  设置能连接上redis最大客户端连接数 默认10000
maxmemory <bytes>  # 设置 redis 的最大内存  默认是字节 
maxmemory-policy noeviction  #内存到达上限之后的处理策略

1. volatile-lru : 只对设置了过期时间的key 进行LRU ( 默认值 )

2. allkeys-lru : 删除lru算法的key

3. volatile-random : 随机删除即将过期的 key

4. allkeys-random : 随机删除

5. volatile-ttl : 删除即将过期的

6. noeviction : 永久不过期, 返回错误


APPEND ONLY MODE   配置aof

appendonly no  # 默认是不开启的, 默认是使用 rdb方式持久化 , 大部分情况下rdb 完全够用!
appendfilename "appendonly.aof" # 持久化的文件名字
# appendfsync always    #  每次修改都会  sync 。 消耗性能
appendfsync everysec     #  每秒执行一次 sync 。可能会丢失这1s的数据!
# appendfsync no        #不执行 sync 。这个时候操作系统自己同步数据, 速度最快 !

解析 aof  


Redis默认情况是不开启AOF的。重启时再重新执行AOF文件中的命令来恢复数据。它主要解决数据持久化的实时性问题。


AOF是执行完命令后才记录日志的。为什么不先记录日志再执行命令呢?这是因为Redis在向AOF记录日志时,不会先对这些命令进行语法检查,如果先记录日志再执行命令,日志中可能记录了错误的命令,Redis使用日志回复数据时,可能会出错。


正是因为执行完命令后才记录日志,所以不会阻塞当前的写操作。但是会存在两个风险:


更执行完命令还没记录日志时,宕机了会导致数据丢失


AOF不会阻塞当前命令,但是可能会阻塞下一个操作。


这两个风险最好的解决方案是折中妙用AOF机制的三种写回策略 appendfsync:


always,同步写回,每个子命令执行完,都立即将日志写回磁盘。


everysec,每个命令执行完,只是先把日志写到AOF内存缓冲区,每隔一秒同步到磁盘。


no:只是先把日志写到AOF内存缓冲区,有操作系统去决定何时写入磁盘。


always同步写回,可以基本保证数据不丢失,no策略则性能高但是数据可能会丢失,一般可以考虑折中选择everysec。


RDB 和AOF 如何选择?


如果数据不能丢失,RDB和AOF混用


如果只作为缓存使用,可以承受几分钟的数据丢失的话,可以只使用RDB。


如果只使用AOF,优先使用everysec的写回策略。


RDB 的优劣势


优势:


 1.RDB是一个非常紧凑(compact)的文件,它保存了redis 在某个时间点上的数据集,这种文件非常适合用于进行备份和灾难恢复。


 2.生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作。


 3.RDB 在恢复大数据集时的速度比AOF的恢复速度要快。


劣势:


1、RDB方式数据没办法做到实时持久化/秒级持久化。因为bgsave每次运行都要执行fork操作创建子进程,频繁执行成本过高


2、在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照之后的所有修改(数据有丢失)。


AOF 的优劣势


优点:


1、AOF 持久化的方法提供了多种的同步频率,即使使用默认的同步频率每秒同步一次,Redis 最多也就丢失 1 秒的数据而已。


缺点:


1、对于具有相同数据的的Redis,AOF 文件通常会比 RDB 文件体积更大(RDB存的是数据快照)。


2、虽然 AOF 提供了多种同步的频率,默认情况下,每秒同步一次的频率也具有较高的性能。在高并发的情况下,RDB 比 AOF 具好更好的性能保证。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
15天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
27天前
|
存储 NoSQL Redis
Redis 配置
10月更文挑战第14天
23 1
|
1月前
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
56 1
|
28天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
129 0
|
2月前
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
77 0
Vue3基础(19)___vite.config.js中配置路径别名
|
1月前
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
51 0
|
3月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
1月前
|
消息中间件 NoSQL Kafka
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
126 0
|
1月前
|
NoSQL Ubuntu Linux
redis的基本安装配置启动使用
redis的基本安装配置启动使用
33 0