Redis 学习(四) - 其他配置及持久化


title: Redis学习(四)-其他配置及持久化
date: 2020-10-19
tags:

  • Redis
  • Redis学习(四)-其他配置及持久化
    categories:
  • Redis
  • Redis学习(四)-其他配置及持久化

一、Redis配置文件

修改dockers-compose.yml文件,以便后期修改Redis配置文件

version: '3.1'
services:
  redis:
    image: daocloud.io/library/redis:5.0.7
    restart: always
    container_name: redis
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 6379:6379
    volumes:
      - ./conf/redis.conf:/usr/local/redis/redis.conf
    command: ["redis-server","/usr/local/redis/redis.conf"]

二、Redis的AUTH(设置连接密码)

方式一:通过修改redis.conf的配置文件,实现密码校验

修改redis.conf文件:requirepass 密码

设置密码后连接redis

三种客户端的连接方式

  1. redis-cli:在输入正常命令之前,先输入 auth 密码即可。
  2. 图像化界面:修改面接信息,添加密码即可。
  3. jedis连接:
    • jedis.auth(password);
    • new JedisPool(password);

方式二:

在不修改redis.conf文件的前提下,在第一次连接Reids时,输入命令Config set requirepass 密码

三、Redis的事务

Redis事务特点:一次事务操作,该成功的成功,该失败的失败。

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

一个事务从开始到执行会经历以下三个阶段:

  1. 开始事务:mulit
  2. 命令入队
  3. 执行事务 | 取消事务:exec | discard

在开启事务之前,先通过 watch命令去监听一个或多个key,在开启事务之后,如果有其他客户端修改了我监
听的key,事务会自动取消

如果执行了事务,或者取消了事务, watch监听自动消除,一般不需要手动执行 unwatch。

四、Reids的持久化机制

4.1 RDB持久化方式

RDB时Rdis默认的持久化机制

  1. RDB持久话文件速度比较快,而且存储的是一个二进制的文件,传输起来很方便。

  2. RDB持久话的时机:

    save 多杀秒内 多少个key改变:save 900 1

  3. RDB无法保证数据的绝对安全

修改redis.conf配置文件
# RDB持久化机制的配置
# 900秒内,有一个key改变了,就执行RDB持久化存储
save 900 1
save 300 10
save 60 10000

# 开启RDB持久化的压缩
rdbcompression yes
# RDB持久化文件的名称
dbfilename redis.rdb
修改docker-compose.yml配置文件,添加文件映射
volumes:
  - ./data:/data

4.2 AOF持久化方式

AOF持久化机制默认是关闭的,Redi官方推荐同时开启RDB和AOF持久化,更安全,避免数据丢失

  • AOF持久化的速度,相对RDB较慢的,存储的是一个文本文件,到了后期文件会比较大,传输困难

  • AOF持久化时机

    appendfsync always:每执行一个写操作,立即持久化到AQF文件中,性能比较低
    appendfsync everysec:每秒执行一次持久化。(推荐)
    appendfsync no:会根据你的操作系统不同,环境的不同,在一定时间内执行一次持久化。

  • AOF相对RDB更安全,推荐同时开启AOF和RDB。

修改redis.conf 配置文件
#开启AOF持久化
appendonly yes
#AOF文件的名称
appendfilename "redis.aof"

#AOF文件持久话的时机
#appendfsync always
appendfsync everysec
#appendfsync no

如果同时开启了AOE和RDB持久化,那么在 Redis宕机重启之后,需要加载一个持久化文件,优先选择AOF文
如果先开启了RDB,再次开启AOF。

如果RDB执行了持久化,那么RD文件中的内容会被AOF覆盖掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值