redis-这一篇就够了

Redis配置文件:

基本配置说明
bind绑定的地址
port端口号
timeout客户端空闲N秒后关闭连接(0表示禁用)
databases16个数据库(默认)
pidfilepid文件地址(每个服务唯一)
replicaof主机的IP地址+端口号
requirepass设置密码
masterauth主机访问密码(如果主机有密码验证)

在 Redis 6.0 及以上版本中,引入了基于 ACL(Access Control List)的用户管理功能:

    user default on nopass ~* &* +@all 

  • user default:配置默认用户。
  • on:启用默认用户。off:关闭默认账户。
  • nopass:默认用户无需密码即可连接。
  • ~*:默认用户可以访问所有键。
  • &*:默认用户可以访问所有发布/订阅通道。
  • +@all:默认用户可以执行所有命令。

    假如你想限制默认用户只能进行读操作而不能写入操作,可以这样配置:

  • user default on nopass ~* &* +@read -@write

Redis持久化:

        线上环境一般是 RDB+AOF 同时开启

持久化方式RDBAOF
默认状态默认开启;把redis.conf中所有的save注释即可关闭

默认关闭;在redis.conf中设为 appendonly yes即可开启

同步机制满足条件触发同步,即可以指定某个时间内发生多少个命令时进行同步每秒同步或者每次发生命令后同步
存储内容存储的是Redis里具体的值存储的是执行更新操作的命令
存储文件的路径根据dir以及dbfilenname来指定路径和具体的文件名根据dir以及appendfilename来指定具体的路径和文件名
优点存储数据文件时会进行压缩,文件体积比aof小;在恢复的时候速度比aof快;非常适合备份用。

aof策略的备份机制是每秒或者每发生写操作的时候都会同步,因此即使服务器故障,最多只会丢失1秒的数据;aof存储的是redis命令,并且是直接追加到aof文件后面,因此每次备份的时候只要添加新的数据进去就可以了;如果aof文件比较大了,那么Redis会进行重写,只保留最小的命令集合。

缺点rdb在满足触发条件才会触发同步机制,rdb在同步的时候都重新保存整个Redis中的数据,在这种情况下,一旦服务器故障,会造成这段时间的数据丢失;在数据保存进rdb的时候,redis会fork出一个子进程用来同步,在数据量比较大的时候,可能非常耗时。aof文件因为没有压缩,因此比rdb体积大;aof是在每秒或者每次写操作都进行备份,因此如果并发量比较大,效率可能会有点慢;aof文件因为存储的是命令,因此在灾难恢复的时候Redis会重新运行aof中的命令,因此恢复速度比不上rdb。

RDB持久化参数说明
save 900 1900秒和至少1个键改变才会被保存
save 300 10300秒和至少10个键改变才会被保存
save 60 1000060秒和至少10000个键改变才会被保存
stop-writes-on-bgsave-error yes错误发生时停止写入
rdbcompression yes启用压缩
rdbchecksum yes检验
dbfilename dump.rdbrdb文件名
dir /var/lib/redisrdb文件保存路径
AOF持久化参数说明
appendonly no不启用aof持久化。若启动aof持久化,只需修改为appendonly yes即可
auto-aof-rewrite-percentage 100当aof文件的大小增加了指定比例的时候,执行一次重写操作
auto-aof-rewrite-min-size 64mb设定aof文件重写操作最小值
appendfilename “appendonly.aof”aof持久化信息保存在哪个文件中
appendfsync always一旦执行了操作,会立刻将操作的语句记录到aof文件中
appendfsync everysec每秒向aof文件进行一次写入操作(默认)
appendfsync no不主动向aof执行写入操作,由系统自行判断何时向磁盘执行写入操作

关于搭建redis集群:

命令说明
info replication查看当前服务详细信息
redis-server --daemonize yes后台启动
redis-server /path/to/your/redis.conf --daemonize yes指定配置文件启动

        1:(主从复制(replica))

                  介绍:主从复制,master以写为主,(默认)slave以读为主;当master数据变化的时候,自动将新的数据异步同步到slave数据库(根据offset)。

                      心跳:从节点会定时向主节点发送请求,主节点接收后会向从节点推送数据。

        2:(哨兵模式)

# sentinel的端口号,如果配置3个sentinel,只需要修改这个port即可,即:26380、26381、26382

port 26380

# 监视127.0.0.1:6380的主节点,且至少有2个Sentinel判断主节点失效,才可以自动故障迁移

sentinel monitor mymaster 127.0.0.1 6380 2

#指定了Sentinel认为服务器已经断线所需的毫秒数;如果服务器在给定的毫秒数之内,没有返回sentinel发送的PING命令的回复

#或者返回一个错误,那么Sentinel将这个服务器标记为主观下线(subjectively down,简称 SDOWN)

sentineldown-after-milliseconds mymaster 30000

# 故障迁移超时时间

sentinel failover-timeout mymaster 180000

#指定了在执行故障转移时,最多可以有多少个从服务器同时对新的主服务器进行同步,这个数字越小,完成故障转移所需的时间就越长。

sentinel parallel-syncs mymaster 1

        3:注意

  • 三台redis主机网络相互ping通且注意防火墙配置
  • 三大命令
    • 主从复制replicaof 主库IP 主库端口; 配从(库)不配主(库)
    • 改换门庭slaveof 新主库IP 新主库端口
    • 自立为王slaveof no noe 主库IP 主库端口
  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值