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

被折叠的 条评论
为什么被折叠?



