侧边栏壁纸
博主头像
彼豆博主等级

行动起来,活在当下

  • 累计撰写 14 篇文章
  • 累计创建 17 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

redis配置文件

彼豆
2019-12-15 / 0 评论 / 0 点赞 / 8 阅读 / 4394 字

redis 存储单位

# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes

1  配置大小单位,只支持bytes,不支持bit并且对大小写不敏感。

INCLUDES 包含

该配置下可以配置包含一个或多个配置文件,例如:

include /path/to/local.conf
include /path/to/other.conf

NETWORK

tcp-backlog

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

bind

绑定端口或这ip,后可跟一个或多个IP地址

bind 192.168.1.100 10.0.0.1
bind 127.0.0.1 ::1

在默认情况下,强制Redis只监听IPv4环回接口地址(即本机),这意味着Redis将能够只接受运行在同一台计算机上的客户端的连接,如果要解除该限制,只需要将bind修改或注释即可。

protected-mode

保护模式模式,避免外部直接访问redis实例,当启用该模式时,如果出现以下两种情况

  1. 未启用bind命令
  2. 未配置密码
    则只能通过IPv4环回接口地址访问redis服务。

port

配置redis服务端口

timeout

在客户端空闲N秒后关闭连接(0表示没有限制)

tcp-keepalive

检测tcp的存活状态的周期,单位为秒,如果设置为0,则不会进行Keepalive检测。主要有两个作用

  1. 检测同伴的死亡。
  2. 从网络的角度看存活的连接。
    从Redis 3.2.1开始,默认设置为300秒

GENERAL 常用

daemonize

配置redis是否以守护进程的方式运行,配置yesno,如果是守护进程的方式运行,Redis将在/var/run/Redis.pid中写入一个pid文件

loglevel

日志的级别,主要有以下几个级别

级别描述
debug产生大量的日志信息,对开发/测试有用
verbose许多信息很少有用,但不像调试级别那样混乱
notice信息量适中,可能是生产中需要的
warning仅记录非常重要/关键的消息

logfile

指定日志文件名。也可以使用空字符串强制Redis以登录标准输出。请注意,如果使用标准日志记录输出,守护进程下,日志将发送到/dev/null

syslog-enabled

是否把日志输出到syslog中

syslog-ident

指定syslog里的日志标识

syslog-facility

指定syslog设备,值可以是USER或LOCAL0-LOCAL7

databases

指定数据库的数量,默认是16

SECURITY 安全

在访问任何命令之前需要输入密码AUTH PASSWORD ,可以使用config get requirepass命令查看密码,使用config set requirepass password设置密码

LIMITS 限制

maxclients

设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端。当你无法设置进程文件句柄限制时,redis会设置为当前的文件句柄限制值减去32,因为redis会为自身内部处理逻辑留一些句柄出来。如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached”以作回应。

maxmemory

设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。如果redis无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”,
那么redis则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等。
但是对于无内存申请的指令,仍然会正常响应,比如GET等。如果你的redis是主redis(说明你的redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因素。

maxmemory-policy

内存到达上限,数据移除策略。主要有以下几个策略

策略描述
volatile-lru使用LRU算法移除key,只对设置了过期时间的键
allkeys-lru使用LRU算法移除key
volatile-lfu使用LRU算法移除key,只对设置了过期时间的键
allkeys-lfu使用LRU算法移除key
volatile-random在过期集合中移除随机的key,只对设置了过期时间的键
allkeys-random移除随机的key
volatile-ttl移除那些TTL值最小的key,即那些最近要过期的key
noeviction不进行移除。针对写操作,只是返回错误信息

相关算法说明:
lru:(Least Recently Used)如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最久没有访问的数据最先被置换(淘汰)。
fifo:如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小。空间满的时候,最先进入的数据会被最早置换(淘汰)掉。
lfu: (Least Frequently Used) 如果一个数据在最近一段时间很少被访问到,那么可以认为在将来它被访问的可能性也很小。因此,当空间满时,最小频率访问的数据最先被淘汰。
参考:https://www.cnblogs.com/hongdada/p/10406902.html

maxmemory-samples

过期策略算法的样本数量。LRU和最小的TTL算法不是精确的算法,而是近似算法(为了节省内存),所以你可以调整它的速度或精度。默认情况下,Redis将检查5个键并选择最近使用较少的键。默认值5产生足够好的结果。10非常接近,但是比较消耗cpu。3更快,但不太准确

0

评论区