- redis.config详解
1.单位不敏感
2.在框框里面是注释,是指配置项,可以包括多个配置文件
3.network(重要)
bind 127.0.0.1
4.端口号
protected-mode: yes //安全模式,需要账号密码登录
6.端口设置(搭建集群)
port 6379
7. general 通用设置
daemonize yes //是否开启守护进程,可以后台运行
8.开启后台运行了,就要设置一个pid进程文件
pidfile /var/run/redis_6379.pid
9.日志级别
loglevel notice //生产环境使用notice
10.日志的文件位置
logfile "" //空默认为直接输出
11.默认的数据库数量,默认16个
databases 16
12.是否显示logo
always-show-log yes
13.快照
持久化,执行多少次操作,则会持久化成文件
.rdb .aof
14.持久化(redis是内存数据库,断电即失)
save 900 1 //如果900s内有一个key操作,即保存
save 300 10
save 60 10000 //高并发
15.持久化出错,是否进行工作
stop-writes-on-bgsave-error yes
16.是否压缩rdb压缩文件(需要消耗cpu资源)
rdbcompression
17.保存rdb文件时,是否进行错误校验
rdbchecksum yes
18. rdb保存的目录
dir ./
19.replacation 主从复制
20.security安全(重要)设置密码
//用命令来设置
config set requirepass "xxxx"
//通过密码来登录
auth xxxx
//得到密码
config get requirements
21.客户端的数量
maxclients 10000
22.最大内存容量
maxmemory <bytes>
23. 内存满了的策略,移除过期的key,报错(全部不过期)...,随机删除过期的
maxmemory-police noeviction
24. append only模式 aof模式,rdb完全够用,默认不打开
appendonly on
25.持久化文件的名字
appendfilename "appendonly,aof"
26. 每一秒同步数据持久化,消耗性能,可能丢失这一秒的数据
appendfsync everysec
2.redis持久化(主进程不进行持久化,确保高性能,先生成一个临时的rdb
后生成一个正式的rdb文件fork)
//关redis
shutdown
//查看redis状态
ps -ef | grep redis
//get命令后数据还在,ls在bin有dump.rdb文件
触发保存的条件
1.save命令
2.flushdb
3.退出redis
3.如何恢复文件呢,他会自动扫描 恢复
//查看存在的位置 dump.rdb
save //可以执行命令手动保存
config get dir
4.优缺点
优点: 1.适合大规模的数据恢复
2.对数据的完整性要求不高
缺点: 1.需要一定时间间隔进程操作,如果意外宕机,最后一次修改数据就没有了
2.fork进程,会占用一定的内存空间
5.在生产环境,我们会对rdb进行保存起来, (使用默认配置就足够了)
6.aof(append only file)
把我们的语句全部记录下来,然后恢复
//默认不开启,修改配置文件
appdendonly yes
appendfsync everysec #会丢失最后一秒,always不会但是性能会差一些
//重启失效,ls文件名变化
redis-cli -p 6379
//必须要使用客户端执行语句,不然不开始不断保存
CONFIG SET appendonly yes
//使用redis,修复文件 redis-check-aof ,使用语句不小心删除的也可以恢复!!!
redis-check-aof --fix appendonly.aof
7.aof的优点和缺点
1.每一次修改都同步,文件更完整
2. 每秒同步一次,可能丢失1秒的数据
3.从不同步,效率最高
缺点
1.aof文件大,修复速度比rdb慢
2.运行效率比rdb慢
8.aof配置(是文件的无限追加)
auto-aof-rewrite-percentage 100
//大于64mb则fork另外一个进程
auto-aof-rewrite-min-size 64mb
9.redis发布订阅(消息通信模式)(信息队列…)
1.发送者(发送消息)和订阅者(接收消息)
2.语句
//订阅
subscribe jams
//开另外一个窗口,<频道,消息>
publish jams myMessage
//取关
// unsubscribe jams
//实时消息系统,实时聊天
10.主从复制
1.是什么? 是指一台主机复制数据到从机中
主机主要写,从机主要读
2.主要作用 1.数据备份
2.故障恢复
3.负载均衡
4.高可用 单台redis最大内存只有20g
3.配置(只配置从库不配置主库,默认有)
//查看当前库的信息
info replication
//打开4台(窗口)
cd /usr/local/bin
//复制配置文件
cp redis.config redis79.conf
cp redis.config redis80.conf
cp redis.config redis81.conf
//改79配置文件配置
vim redis79.conf
//改日志地址
logfile "6379.log"
dbfilename dump6379.rdb
//第二个
vim redis80.conf
//改端口
port 6380
//后台文件
pidfile /var/run/redis_6380.pid
// ....以上面一样 ps redis
//启动服务
redis-server redis80.conf
//默认都是主机
//配从机,认老大,info replication
slaveof 127.0.0.1 6379
11.主机断开连接,回来可以从机可以得到主机写的信息
1.如果从机断开会自动变成主机
2.复制原理
全量复制: slave接收到数据库文件master数据后,全部复制到内存中
增量复制: master在之前的数据的基础上,依次传给slave,完成同步
只要重新复制master就会执行一次全量复制
12.层层链路(毛毛虫一样的另外一种的模型) 主–>从(主)–>从
(上面两种工作都没有用)
13.从机当老大的命令(手动狗头)(谋朝篡位)
slaveof no one