Redis可以在没有配置文件的情况下使用内置的默认配置启动,但是这种设置仅推荐用于测试和开发。
配置Redis的正确方法是提供一个Redis配置文件,通常称为 redis.conf
。
通过命令行传递参数启动
你也可以直接使用命令行传递Redis配置参数。这对于测试非常有用。下面是一个使用端口6380启动一个新Redis实例的例子,它是运行在127.0.0.1端口6379的实例的副本。
./redis-server --port 6380 --replicaof 127.0.0.1 6379
执行
REPLIACOF hostname port
会将当前服务器转变为某一服务器的副本服务器
通过命令行传递的参数的格式与redis.conf文件中使用的格式完全相同,只是关键字的前缀是--
。
在服务器运行时更改Redis配置
你可以在不停止和重新启动服务的情况下动态地重新配置Redis,或者使用特殊命令CONFIG SET
和CONFIG GET
以编程方式查询当前配置。
请注意,动态修改配置对redis.conf文件没有影响,因此下次重新启动Redis时,将使用旧配置。
要使CONFIG SET
的配置修改永久生效,您可以手动修改redis.conf
配置文件,也可以使用CONFIG REWRITE
,它将自动扫描您的redis.conf
文件并更新与当前配置值不匹配的字段。不添加不存在但设置为默认值的字段,配置文件中的注释将被保留。
配置文件详解
redis.conf
配置文件:https://raw.githubusercontent.com/antirez/redis/7.2/redis.conf
下面整理一些比较重要的配置项:
配置项 | 配置项值范围 | 说明 |
---|---|---|
daemonize | yes/no | yes表示启用守护进程,默认是no即不以守护进程方式运行。 |
port | 指定Redis监听端口,默认端口为6379。 | |
bind | 绑定的主机地址。如果需要设置远程访问则可以直接将这个配置项注释或者修改为bind * ,这个配置项和下面的protected-mode控制了是否可以远程访问。 |
|
protected-mode | yes/no | 保护模式。该模式控制了外网是否可服务器托管网以连接Redis服务。默认是Redis,即外网无法访问。如需外网连接Redis服务需要将此配置项修改为no。 |
loglevel | debug/verbose/notice/warning | 日志级别,默认为notice |
databases | 16 | 设置数据库的数量,默认的数据库是DB 0,可以通过SELECT 选择数据库,dbid从0到databases-1。 |
rdbcompression | yes/no | 指定存储到本地数据库时是否压缩,默认为yes。Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该配置项,但会导致数据库文件变得巨大。 |
dbfilename | dump.rdb | 指定本地数据库文件名,默认为dump.rdb |
dir | 指定本地数据库存放目录 | |
requirepass | 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH命令提供密码,默认关闭 | |
maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients为0,表示不做限制。当客户端连接数达到限制时,Redis会关闭连接并向客户端返回max number of clients reached错误信息。 |
maxmemo服务器托管网ry | 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的key,此方法处理后,仍然到达最大内存限制,将无法进行写入操作,但仍可以进行读取操作。Redis新的vm机制,会把Key存放到内存中,Value会存放在swap区。配置项值范围为内存数值。 | |
pidfile | “/var/run/redis_6379.pid” | 当Redis以守护进程方式运行时,Redis默认会把pid写入 /var/run/redis.pid 文件,可以通过pidfile指定 |
timeout | 0 | 当客户端闲置多长秒后关闭连接,默认为为0 ,表示关闭该功能。 |
save [ ] | Redis默认提供如下配置: save 3600 1:3600秒(1小时)内有一个更改 save 300 100:300秒(5分钟)内有100个更改 save 60 10000:60秒(1分钟)内有10000个更改 |
指定在多长时间内,有多少次更新操作,就将数据保存到数据文件,可以多个条件配合使用。 |
appendonly | yes/no | 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no。 |
当涉及到内存时,可以以1K、5GB、4M等方式指定。
1K => 1000 bytes
1KB => 1024 bytes
1M => 1000000 bytes
1MB => 1024 * 1024 bytes
1G => 1000000000 bytes
1GB => 1024 * 1024 * 1024 bytes
使用1GB、1Gb、1gB都是等效的。
更多配置项介绍查看Redis样例配置文件,有比较详细的注释。
参考
- https://zhuanlan.zhihu.com/p/469102289
- https://redis.io/docs/management/config/
- https://www.runoob.com/redis/redis-conf.html
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net