Redis学习(2)

解析配置文件(redis.conf)

  • 它在哪在这里插入图片描述

  • Units单位
    在这里插入图片描述
    – 1.配置大小单位,开头定义了一些基本的度量单位,只支持bytes,比支持bit
    – 对大小写不敏感

  • INCLUDES包含
    在这里插入图片描述
    – 和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他

  • CENERAL通用配置
    在这里插入图片描述
    #是否在后台执行,yes:后台运行;no:不是后台运行(老版本默认)
    daemonize yes

在这里插入图片描述
#redis监听的端口号。
port 6379


在这里插入图片描述
#redis的进程文件
pidfile /var/run/redis.pid

在这里插入图片描述
tcp-backlog
#设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已完成三次握手队列
#在高并发环境下你需要一个高backlog值来避免慢客户端连接问题,注意Liunx内核会将这个值减小到/proc/sys/net/core/somaxconn的值,所以需要确认增大somaxconn和tcp_max_syn_backlog两个值来达到想要的效果

在这里插入图片描述
#指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求
bind 127.0.0.1

在这里插入图片描述
#此参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能小于0

在这里插入图片描述
#tcp keepalive参数。如果设置不为0,就使用配置tcp的SO_KEEPALIVE值,使用keepalive有两个好处:检测挂掉的对端。降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。在Linux内核中,设置了keepalive,redis会定时给对端发送ack。检测到对端关闭需要两倍的设置值。


在这里插入图片描述
#指定了服务端日志的级别。级别包括:debug(很多信息,方便开发、测试),verbose(许多有用的信息,但是没有debug级别信息多),notice(适当的日志级别,适合生产环境),warn(只有非常重要的信息)

在这里插入图片描述
#指定了记录日志的文件。空字符串的话,日志会打印到标准输出设备。后台运行的redis标准输出是/dev/null。

在这里插入图片描述
是否打开记录syslog功能(系统日志,默认关)

在这里插入图片描述#syslog的标识符,如果你开了系统日志,就以redis开头(前缀)

在这里插入图片描述
#数据库的数量,默认使用的数据库是DB 0。可以通过”SELECT “命令选择一个db
databases 16

  • SNAPSHOTTINNG快照
    #快照配置
    在这里插入图片描述
    #注释掉“save”这一行配置项就可以让保存数据库功能失效
    #设置sedis进行数据库镜像的频率。
    #900秒(15分钟)内至少1个key值改变(则进行数据库保存–持久化)
    #300秒(5分钟)内至少10个key值改变(则进行数据库保存–持久化)
    #60秒(1分钟)内至少10000个key值改变(则进行数据库保存–持久化)
    save 900 1
    save 300 10
    save 60 10000
    注:如果不想使用自动持久化,则可以使用save命令马上持久化
    在这里插入图片描述
    #当RDB持久化出现错误后,是否依然进行继续进行工作,yes:不能进行工作,no:可以继续进行工作,可以通过info中的rdb_last_bgsave_status了解RDB持久化是否有错误
    stop-writes-on-bgsave-error yes
    在这里插入图片描述
    #使用压缩rdb文件,rdb文件压缩使用LZF压缩算法,yes:压缩,但是需要一些cpu的消耗。no:不压缩,需要更多的磁盘空间
    rdbcompression yes
    在这里插入图片描述
    #是否校验rdb文件。从rdb格式的第五个版本开始,在rdb文件的末尾会带上CRC64的校验和。这跟有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗,所以如果你追求高性能,可以关闭该配置。
    rdbchecksum yes
    在这里插入图片描述
    #rdb文件的名称
    dbfilename dump.rdb

#数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录
dir /var/lib/redis

  • REPLICATION复制

  • SECURITY安全
    在这里插入图片描述

  • LIMITS限制
    在这里插入图片描述
    #设置能连上redis的最大客户端连接数量。默认是10000个客户端连接。由于redis不区分连接是客户端连接还是内部打开文件或者和slave连接等,所以maxclients最小建议设置到32。如果超过了maxclients,redis会给新的连接发送’max number of clients reached’,并关闭连接。
    #maxclients 10000
    在这里插入图片描述
    #redis配置的最大内存容量。当内存满了,需要配合maxmemory-policy策略进行处理。注意slave的输出缓冲区是不计算在maxmemory内的。所以为了防止主机内存使用完,建议设置的maxmemory需要更小一些。
    #maxmemory
    在这里插入图片描述
    #内存容量超过maxmemory后的处理策略(缓存过期处理策略)。
    #volatile-lru:利用LRU算法移除设置过过期时间的key。
    #volatile-random:随机移除设置过过期时间的key。
    #volatile-ttl:移除即将过期的key,根据最近过期时间来删除(辅以TTL)
    #allkeys-lru:利用LRU算法移除任何key。
    #allkeys-random:随机移除任何key。
    #noeviction:不移除任何key,只是返回一个写错误。
    #上面的这些驱逐策略,如果redis没有合适的key驱逐,对于写命令,还是会返回错误。redis将不再接收写请求,只接收get请求。写命令包括:set setnx setex append incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby getset mset msetnx exec sort。
    #maxmemory-policy noeviction
    在这里插入图片描述
    #lru检测的样本数。使用lru或者ttl淘汰算法,从需要淘汰的列表中随机选择sample个key,选出闲置时间最长的key移除。
    #maxmemory-samples 5

  • APPEND ONLY MODE追加

  • 常见配置redis.conf介绍

Redis_持久化

  • RDB(Redis DataBase)
    –RDB是什么?
    在指定的时间间隔内将内存中的数据集快照写入磁盘,
    也就是行话的Snapshot快照,他恢复时是将快照文件直接读到内存里。
    Redis会单独创建(fork)一个子进程进行持久化,会先将数据写到一个临时文件中,
    待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。
    整个过程中,主进程是不进行任何IO操作的,这就确保了极高 的性能。
    如果需要进行大规模数据恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式
    要比AOF方式更加高效,RDB的缺点是最后一次持久化后数据可能会丢失。

– Fork
Fork的作用是复制一个与当前进程一样的进程,新进程的所有数据(变量,环境变量
,程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程

– Rdb保存的是dump.rdb文件

– 如何触发RDB快照
1.配置文件中默认的快照配置
2.命令save或者是bgsave
a.save:save时只管保存,其他不管,全部阻塞
b.bgsave:Redis会在后台异步进行快照操作,
快照同时还可以响应客户端请求,可以通过lastsave
命令获取最后一次成功执行快照的时间
3.执行flushall命令,也会产生dump.rdb文件,但里面是空的,无意义

– 如何恢复
将备份文件(dump.rdb)移动到redis安装目录并启动服务即可
CONFIG GET dir获取目录

– 优势
适合大规模的数据恢复
对数据完整性和一致性要求不高

–缺点
在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所以修改
Fork的时候,内存中的数据配克隆了一份,大致2倍的膨胀性需要考虑

–如何停止
动态停止所有RDB保存规则的方法:redis-cli config set save " "

–总结
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值