文章目录
四、 redis.conf 简单解读
1. 在哪
安装的时候肯定看到了,在文件夹里
2. 字节
1. 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
2. 对大小写不敏感
3. 分割
- 可以像 spring的配置文件一样,可以include 包含
4. 通用
-
daemonize no 在守护进程下运行,要改成yes
-
pidfile : 进程号文件
-
port : 端口
-
tcp-backlog : tcp
设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。 在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值
-
timeout :
-
bind
-
tcp-keepalive
-
loglevel : 日志水平,为四个种类
-
logfile : 日志文件
-
syslog-enabled
- 是否把日志输出到syslog中
-
syslog-ident
- 指定syslog里的日志标志
-
syslog-facility
- 指定syslog设备,值可以是USER或LOCAL0-LOCAL7
-
databases : 数据库数量 16 个
5. 快照 Snapshotting
- save 秒钟 写操作次数
- RDB 是整个内存的快照
- 条件
- 是1分钟内改了1万次,
- 或5分钟内改了10次,
- 或15分钟内改了1次。
- 禁用
- 如果想禁用RDB持久化的策略,只要不设置任何save指令,或者给save传入一个空字符串参数也可以
- stop-writes-on-bgsave-error
- 如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制
- rdbcompression
- rdbcompression:对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采,LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能
- rdbchecksum
- rdbchecksum:在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
- dbfilename
- dir
6. REPLICATION复制
7.SECURITY安全
- 设置密码
- config set requirepas “123456”
- 登录
- auth 123456
8.LIMITS限制
- maxclients :设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端
- maxmemory :设置redis可以使用的内存量
- 一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定
- maxmemory-policy
- volatile-lru:使用LRU算法移除key,只对设置了过期时间的键
- allkeys-lru:使用LRU算法移除key
- volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
- allkeys-random:移除随机的key
- volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
- noeviction:不进行移除。针对写操作,只是返回错误信息
- maxmemory-samples
- 设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个
9.APPEND ONLY MODE追加
-
appendonly
-
appendfilename
-
appendfsync
- always : 同步持久化
- everysec : 异步操作
- no
-
no-appendfsync-on-rewrite:重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性。
-
auto-aof-rewrite-min-size:设置重写的基准值
-
auto-aof-rewrite-percentage:设置重写的基准值
五、 redis 的复制
1. 是什么
行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,
自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主
- 读写分离
- 容灾恢复
2. 配置
-
配从(库)不配主(库)
-
从库配置:slaveof 主库IP 主库端口
- 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
- info replication : 查看配置信息
-
修改配置文件细节操作
- 拷贝多个redis.conf文件
- 开启daemonize yes
- pid文件名字
- 指定端口
- log文件名字
- dump.rdb名字
-
常用3 招
- 一主二仆
- 问题
- 从机 第一次 全写,,以后 随写
- 从机只负责 读,,不能写
- 主机shutdown,,从机待命
- 主机回来,从机连接
- 从机 重启,必须重新配置绑定
- 问题
- 薪火相传
- 像是接力赛 一样
- 中途变更向,会清楚之前的数据,重新考呗最新的
- 反客为主
- 当主机 宕机 后,在从机上手动选择 一个, 执行 slaveof no one 变成主机
- 当主机重启,属于另外一个系列,
- 一主二仆
-
复制原理
由于是内存,可以参考 计算机组成原理的讲解
- 先 第一次连接 全量复制,,,然后增量复制
3. 哨兵模式
-
反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
-
自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错
-
内容
- sentinel monitor 被监控数据库名字(自己起名字) 127.0.0.1 6379 1
- 上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机
-
启动哨兵
- redis-sentinel /myredis/sentinel.conf
- 上述目录依照各自的实际情况配置,可能目录不同
-
问题
- 如果 主机 宕机 后, 重启,直接变成 从机
-
一组sentinel能同时监控多个Master