【Linux基础服务教程】Redis配置文件

上一期教程Redis的安装和基本使用

一、配置文件

配置文件路径:/usr/local/redis/conf/redis.conf

1.加载子配置文件

# include /path/to/local.conf
# include /path/to/other.conf

2.加载模块

# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so

3.修改Redis监听地址

# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1

bind 10.10.10.128

-h指定登录地址

[root@master ~]# redis-cli -h 10.10.10.128
10.10.10.128:6379>
[root@master ~]# redis-cli -h 10.10.10.128 shutdown	#如果修改了监听地址,关闭数据库的时候也要带上地址

4.修改Redis监听端口

port 6379	#`redis`默认监听端口

port 8888
[root@master ~]# redis-cli -h 10.10.10.128 -p 8888 
10.10.10.128:8888>
[root@master ~]# redis-cli -h 10.10.10.128 -p 8888 shutdown 	#如果修改了端口和地址,在结束和登录的时候都要加上新地址和端口

5.修改Redis请求接收队列长度

tcp-backlog 511		#默认511很小
tcp-backlog 800		#建议800-10000

如果修改了这里的默认参数,实际上是不生效的,虽然redis生效了,但是需要修改一些系统的默认参数。
需要调整somaxconntcp_max_syn_backlog内核参数
somaxconn: 系统层面,网卡接收请求的队列长度
tcp_max_syn_backlog:系统层面,网卡接收TCP第一次握手的队列长度

A.临时修改内核参数

[root@localhost ~]# echo 1000 > /proc/sys/net/core/somaxconn
[root@localhost ~]# echo 1000 > /proc/sys/net/ipv4/tcp_max_syn_backlog
[root@localhost ~]# 
[root@localhost ~]# cat /proc/sys/net/core/somaxconn 
1000
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_max_syn_backlog 
1000

B.永久修改内核参数

[root@localhost ~]# vim /etc/sysctl.conf 
net.core.somaxconn = 1000
net.ipv4.tcp_max_syn_backlog = 1000
[root@localhost ~]# sysctl -p
net.core.somaxconn = 1000
net.ipv4.tcp_max_syn_backlog = 1000

查看所有参数sysctl -a

6.设置客户端空闲的超时时间

timeout 30	#超过这个时间就自动断开

7.设置Redis后台启动

daemonize yes

8.指定RedisPID文件

pidfile /var/run/redis_6379.pid

9.错误日志

loglevel notice		#默认notice等级
loglevel warning	#避免资源浪费,修改至最高等级

10指定错误日志存放路径

logfile ""	#默认为空,不存储日志
logfile "/var/log/redis_6379.log"	#我们手动指定一个

11.默认库

databases 16	#默认16个库(0-15)

12.定义Redis自动持久化的频率

save 900 1		#900秒存1次
save 300 10		#300秒存10次
save 60 10000		#60秒存10000次

13.指定rdb数据文件存储位置

dbfilename dump.rdb		#默认文件名
dir ./	#默认存在当前目录
dir /usr/local/redis/data	#可以手动指定一个

14.启动aof日志

appendonly no	#`aof`日志默认是关闭的
appendonly yes
appendfilename "appendonly.aof

15.设置Redis密码

requirepass redhat	#需要手动指定密码
[root@master ~]# redis-cli -h 10.10.10.128
10.10.10.128:6379> set uid 1001
(error) NOAUTH Authentication required.
10.10.10.128:6379> auth redhat		#设置密码后,需要手动输入密码,才可存储数据
OK
10.10.10.128:6379> set uid 1001
OK
[root@master ~]# redis-cli -h 10.10.10.128 -a redhat	#或者在外面输入密码
10.10.10.128:6379> set uid1 1002
OK

16.设置Redis最大并发连接

# maxclients 10000

17.设置Redis最大存储策略

# maxmemory <bytes>
maxmemory 200M

maxmemory-policy noeviction

支持的策略详情:

  • noeviction默认策略 内存空间不足时,添加新的数据会返回报错信息
  • allkeys‐lru内存不足时,redis会按照LRU(最近最少访问)算法清除缓存数据
  • allkeys‐random内存不足时,redis会随机删除缓存数据
  • volatile‐lru内存不足时,redis会在设置了过期时间的缓存数据中,按照LRU算法清除数据
  • volatile‐random内存不足时,redis会在设置了过期时间的缓存数据中,随机清除数据
  • volatile‐ttl内存不足时,redis会在设置了过期时间的缓存数据中,优先清除过期时间较早的数据
  • allkeys-lfu
  • volatile-lfu
  • lfu全称Least Frequently Used算法根据数据的历史访问频率淘汰数据