1

Redis--配置文件详解

 2 years ago
source link: http://blog.linrty.com/2021/07/20/Redis--%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Units单位

配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感

image-20210720091516485

INCLUDES包含

image-20210720152923710

网络相关配置

默认情况bind=127.0.0.1只能接受本机的访问请求

不写的情况下,无限制接受任何ip地址的访问

生产环境肯定要写你应用服务器的地址;服务器时需要远程访问的,所以需要将其注释掉

如果开启了protected-mode,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的响应

需要注释掉这一行,这一行表示只能本地访问

image-20210720141825842

protected-mode

需要修改这个保护模式,当为yes时,只能被本地访问,需要将它改为no

image-20210720141902626

端口号,默认6379

image-20210720153709105

tcp-backlog

设置tcp的backing,backlog其实时一个连接队列,backlog队列总和=未完成三次握手队列+已完成三次握手队列

在高并发环境下你需要一个高backlog值来避免漫客户端连接问题。

注意:Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值(128),所以需要确认增大/proc/sys/net/core/somaxconn和/proc/sys/net/ipv4/tcp_max_syn_backlog(128)两个值来达到想要的效果

image-20210720154244402

GENERAL通用

daemonize

是否为后台进程,设置为yes

守护进程,后台启动

image-20210720154607185

pidfile

存放pid文件的位置,每个实例会产生一个不同的pid文件

image-20210720154659262

loglevel

日志级别,默认时notice

image-20210720154734722

logfile

日志文件输出路径,默认为空

image-20210720154820861

databases 16

设定库的数量,默认16,默认数据库为0,可以使用select 命令在连接上指定数据库id

image-20210720154951549

SECURITY 安全

image-20210720155308047

访问密码的查看、设置和取消

在命令中设置密码,只是临时的。重启redis服务器,密码就还原了。

永久设置,需要再配置文件中进行设置

image-20210720155418830

LIMITS 限制

maxclients

设置redis同时可以与多少个客户端进行连接

默认情况下为10000个客户端

如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached”以作回应

image-20210720155624878

maxmemory

建议必须设置,否则,将内存占满,造成服务器宕机

设置redis可以使用的内存量。一旦到达内存量使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。

如果redis无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”,那么redis则会正对那些需要申请内存的指令返回错误信息,比如set,lpush等。

但是对于无内存申请的指令,仍然会正常响应,比如get等。如果你的redis时主redis(说明你的redis有从redis),那么再设置内存使用上限时,需要再系统中留出一些内存空间给同步队列缓存,只有在你设置的时“不移除”的情况下,才不用考虑这个因素。

image-20210720160423910

maxmemory-policy

volatile-lru:使用LRU算法移除key,只对设置了过期时间的键;(最近最少使用)

allkeys-lru:在所有集合key中,使用LRU算法移除key

volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键。

allkeys-random:在所有集合key中,移除随机的key

volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key

noeviction:不进行移除。针对写操作,只是返回错误信息

image-20210720160832315

maxmemory-samples

设置样本数量,LRU算法和最小TTL算法都并非时精确的算法,而是估算值,所以你可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那么。

一般设置3到7的数字,数值越小样本越不准确,但性能消耗越小

image-20210720161056396

本文作者: linrty
本文链接: http://blog.linrty.com/2021/07/20/Redis--%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK