Redis从入门到精通(2):redis配置文件详解

为了安全和性能考虑,生产环境必须要对配置文件进行自定义设置才可以使用。那么到底有哪些重要配置项,这些配置项该如何设置,这一篇我们一起来看看。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

配置项详解

配置文件比较长,可以采用less -mN redis.conf来进行查看


下面是一些基本参数

  • bind 127.0.0.1

用来绑定一个网卡地址,如果注释掉所有bind会默认绑定所有的网卡,这样会把redis暴露给整个互联网,非常危险。

  • port 6379

绑定一个端口号

  • timeout 0

客户端闲置多长时间关闭连接,如果设置为0则是关闭这一功能

  • daemonize no

上一篇已经提到这个,用来将redis后台运行,默认是no,需要改为yes

  • pidfile /var/run/redis_6379.pid

pid的写入文件

  • loglevel notice

日志记录级别,从详细到粗略分别debug,verbose,notice,warning,默认是notice

  • logfile “”

日志文件位置,空的字符串表示标准输出。如果以daemon方式运行redis又以标准输出方式记录log,那么日志会被写入/dev/null

  • databases 16

redis支持多达16个数据库


下面的参数和本地持久化有关

  • save

持久化到硬盘的规则设定,默认设定如下,表示900秒内1次key修改,或者300秒内10次key修改,或者60秒内10000次修改,都会进行持久化操作
save 900 1
save 300 10
save 60 10000

  • rdbcompression yes

持久化为rdb的时候采用压缩模式,保持yes即可

  • dbfilename dump.rdb

数据库本地存储的文件名,默认为dump.rdb

  • dir ./

数据库本地存储的目录,默认为配置文件的相同目录

如果是按照上一篇的安装方法,存储目录在/usr/local/redis/


下面的参数和主从备份有关

  • replicaof

如果配置了replica备份的话,本机redis为slave情况下配置master的地址

  • masterauth

master端的密码

等后面讲主从复制的时候再详细讲这一部分的参数


下面的参数和安全性有关

  • requirepass foobared

设置redis的访问密码,默认是没有设置密码的。设置密码后需要通过AUTH <password>去进行验证。需要注意的是Redis 4以后不设置密码的话是无法访问的。同时,因为redis非常快,每秒钟可以响应150k次密码尝试,所以密码的复杂度要尽量高一些。


下面的参数和客户端连接有关

  • maxclients 10000

客户端最大连接数,默认是10000。不过实际上的连接数还受到单进程能打开的最大文件数限制。


下面的参数和内存管理有关

  • maxmemory

redis能使用的最大内存,需要根据实际物理机器的内存大小去设置。当达到最大内存后只能读不能写,并且key存在内存,value会存到swap中。

  • maxmemory-policy noeviction

达到最大内存后的处理机制,一共有下面几种设置,其中allkeys-lru是实际最常用的方式

volatile-lru -> 针对设定了超时时间的key采用LRU准则去删除key
allkeys-lru -> 针对所有key采用LRU准则去删除key
volatile-lfu -> 针对设定了超时时间的key采用LFU准则去删除key
allkeys-lfu -> 针对所有key采用LFU准则去删除key
volatile-random -> 针对设定了超时时间的key随机删除
allkeys-random -> 随机删除key
volatile-ttl -> 对马上要过期的key进行删除
noeviction -> 不删除任何key,返回错误

LRU - Least Recently Used
LFU - Least Frequently Used


下面的参数和append only模式有关

  • appendonly no

因为并不是每次更新后都有持久化,所以肯定有部分数据只存在于内存中,在断电或者机器故障情况下会丢失。appendonly文件功能开启的话会在每次更新之后更新该文件,做为一个日志记录,提供更强的鲁棒性。默认是关闭的。

  • appendfilename “appendonly.aof”

指定appendonly文件的文件名

  • appendfsync everysec

指定appendonly文件的更新频率,如果不确定就保持每秒更新一次即可。

自定义配置

修改以下几个配置项,对单机运行Redis进行优化。

如果是按照上一篇来进行的安装,在如下目录编辑配置

[root@testmachine redis]# pwd
/usr/local/redis
[root@testmachine redis]# vim redis.conf
  • daemonize yes

采用守护进程进行运行

  • #bind 127.0.0.1

注释掉,允许外部链接来访问

  • requirepass xiaofu

设置一个访问密码

修改完成后启动或者重启redis服务

[root@testmachine redis]# systemctl start redis

我在上一篇已经将redis设置为系统服务,所以这里直接用systemctl命令

然后在另一个terminal试着启动客户端访问一下

[root@testmachine bin]# ./redis-cli
127.0.0.1:6379>

还是很正常的连接了,但是查询key的话就会报错

[root@testmachine bin]# ./redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379>

所以不能用上一篇的方式来连接了,要采用下面的方法。如果是本机地址可以忽略-h选项,如果是默认端口6379可以忽略-p选项

redis-cli -h <hostname> -p <port> -a <password>

更多参数可以通过redis-cli --help来查看

重新启动客户端

[root@testmachine bin]# ./redis-cli -a xiaofu

发现可以查询key了

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>

尝试以下赋值和查询也都正常

127.0.0.1:6379> set name xiaofu
OK
127.0.0.1:6379> get name
"xiaofu"
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379>

需要补充的是这些数据都还在内存中,如果这时候直接停掉redis服务这些数据是会丢失的。

总结

知道了如何启动和连接到redis还不够,还有一个很重要的技能就是如何关闭redis。如果不小心关闭了redis而数据还在内存中没有持久化,就会造成数据的丢失。下一篇我们一起来看如何正确关闭redis。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值