2.redis的config配置

本文详细介绍了Redis配置文件redis.conf的各项设置,包括守护进程、端口、日志级别、数据持久化、最大内存限制、客户端连接数限制以及虚拟内存机制等关键参数,旨在帮助读者理解并优化Redis服务器的配置。

mac下 redis的配置文件地址为
/usr/local/etc/redis.conf
在这里插入图片描述

使用less -mN 命令去查看

daemonize no
默认不是以守护进程形式运行,改为yes则是守护进程

pidfile /var/run/redis_6379.pid
当redis以守护进程方式运行时,会默认将pid写入/var/run/redis_6379.pid文件,可以通过pidfile去指定

port 6379
指定监听端口 默认为6379

bind 127.0.0.1 ::1
只有绑定的端口才能访问redis,这里是指定只有本地才能访问,如果注释掉,那么将不受限制
但是这样会很危险,因此默认是不注释的。

timeout 0
客户端闲置多长时间后关闭,如果指定为0,表示关闭该功能

loglevel notice
指定日志的级别,redis总共支持四个级别 debug, verbose,notice,warning
waring级别最严重 warning (only very important / critical messages are logged)
debug(大量信息,对开发/测试有用)
verbose(许多信息很少有用,但不像调试级别那样一团糟)
notice(适度冗长,可能是生产中需要的)
warning(仅记录非常重要/关键的消息)

logfile “”

指定日志文件名。也可以使用空字符串强制
redis以登录标准输出。

databases 16
设置数据库数。默认数据库是db 0,可以选择
在每个连接的上select来指定数据库id
dbid是介于0和“databases”-1之间的数字

save
save 900 1
save 300 10
save 60 10000

指定在多长时间内 有多少次更新操作 就将数据同步到数据文件,可以多个条件配合
默认提供了三个条件
900秒内(15分钟),至少一个key变更
300秒内(5分钟)至少10个key变更
60秒内,至少10000个key变更

rdbcompression yes
指定存储到本地数据库时是否压缩,redis采用LZF压缩,如果为了节省cpu也可以关闭选项,但是会导致数据库文件变大

dbfilename dump.rdb
指定本地数据库文件名 默认为dump.rdb

dir /usr/local/var/db/redis/
指定本地数据库存放目录

slaveof
当设置本机为slave服务时,设置master服务ip地址和端口,在redis启动时,自动从master同步数据

masterauth

当设置本机为slave服务时 且master设置了密码时,用于slave连接master的密码

requirepass xxx
设置redis的连接密码xxx,默认是关闭的,如果设置了,那么客户端在连接redis的时候 需要auth 命令提供密码

maxclients 10000
设置同一时间最大客户端连接数,默认无限制
redis可以打开的最大连接数为redis进程可以打开的最大文件描述符数。
如果设置maxClients 0, 表示不做限制。当客户端连接数达到最大限制时,会向客户端返回
max number of client错误 并关闭新连接

maxmemory
指定redis最大内存限制,redis在启动时会把数据加载到内存中,达到最大内存之后,redis会首先尝试清除已到期或者
即将到期的key,当此方法处理之后,仍达到最大内存设置,将无法写入,但是还是可以读取。
redis新的vm机制,会把key存放到内存中,value存放到swap中。

appendonly no
指定是否在每次更新之后进行日志记录,redis在默认情况下是异步的把数据写入到磁盘,
如果不开启,可能会在断电时候导致一部分数据丢失,因为redis本身同步数据文件是安装save的条件来的,
因此会有一部分数据在一段时间内只存在于内存中。 默认为no
开启会很消耗性能。

appendfilename “appendonly.aof”
指定更新日志文件名

指定更新日志条件 共有3个可选值
no 表示等操作系统进行数据缓存同步到磁盘,是否同步刷屏 否 (快)
always 表示每次手动调用fsync()将数据写到磁盘(慢 安全)
everysec 表示每秒同步一次 折中 默认

appendfsync always
appendfsync everysec
appendfsync no

vm-enabled no
指定是否启用虚拟内存机制,默认值为no , redis会将访问量较少的数据swap到磁盘中,访问多的从磁盘swap到内存中

vm-swap-file /tmp/redis.swap
虚拟内存路径,不可多个redis实例共享

vm-max-memory 0

将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,
所有索引数据都是内存存储的(索引 也就是key)。
默认值为0 ,如果设置为0 也就是所有的value都存在磁盘中。

vm-page-size 32
redis的swap文件分成了很多的page ,一个对象可以保存在多个page,但一个page不能被多个对象共享,vm-page-size根据要存储的对象大小来设置,如果是小对象 建议设置成32或者64byte ,如果是很大的对象,可以调整为更大

vm-pages
设置swap文件中的page数量,有图

vm-max-threads 4
设置访问swap文件的线程数,最好不要超过机器的核数,默认值为4,如果设置为0 那么所有访问swap文件都是串行的

glueoutputbuf yes
设置在向客户端应答时,是否把较小的包合并为一个包发送,默认开启

hash-max-zipmap-entries 64
hash-max-zipmap-value 512
指定在超过一定的数量或者最大的元素超过某一临界值,采用一种特殊的hash算法

activerehashing yes
是否激活重置hash 默认为开启

include /path/to/local.conf
指定包含其他的配置文件 ,可以在同一主机多个redis实例之间使用同一份配置文件,同时各个实例又可有自己的配置文件

redis中 ,数据存在于内存中,因此需要经常整理内存,不然会满
1.给数据设置超时时间,设定内存空间大小

2.使用lRU算法动态将不用的数据清除
最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰
volatile-lru 设置了过期时间的key参与近似的lru淘汰策略
allkeys-lru 所有的key均参与近似的lru淘汰策略 。 最常用的
volatile-radom 过期的key随机删除
allkeys-radom 所有的key随机删除
volatitle-ttl 删除所有key中快过期的
Noeviction 如果设置为该属性则不会进行删除操作,如果溢出则报错

( LRU的原理 和 redis里面LRU的实现 . linkhashMap的LRU实现和原理
https://blog.youkuaiyun.com/qq_34337272/article/details/80012284 redis关键
https://blog.youkuaiyun.com/bird73/article/details/79792548 redis io和多线程

redis是采用的单进程多线程的模式,其中处理网络请求用的是一个线程+多路复用的形式, 其他任务还是有多个线程的。
在redis.conf选项中 deamonize设置成yes的时 代表开启守护进程模式,在该模式下,redis在后台运行,并将进程的pid写入到redis.conf的pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
当deamonize选项设置为no时候,如果关闭命令行界面或者连接工具xshell等会导致redis退出

带配置参数服务端的启动
redis-server /xx.conf

带参数的客户端启动
redis-cli -h ip 地址 -p 端口 -a 密码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值