一、配置文件
1. NETWORK栏
bind是无法指定某个ip来访问的,这是个误区;
B. port:指定redis运行的端口,默认是6379;
C. timeout:设置客户端连接时的超时时间,单位为秒,当客户端在这段时间内没有发出任何指令,那么关闭该连接,默认值为0,表示不关闭,详细解决可以参考如下截图;
在Linux系统中,客户端发送的最后一个数据包与redis发送的第一个保活探测报文之间的时间间隔,周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,默认值为300s,如果设置为0,则不会周期性的检测,实际作用是redis的tcp-keepalive覆盖了linux中tcp_keepalive_time值,可以通过抓包证明。
E. tcp-backlog:在Linux服务器上有一个配置参数“net.core.somaxconn”,这是参数表示socket监听(listen)的backlog上限。所谓backlog是指已经和服务器完成了TCP三次握手确认,但是还没有被上层应用程序处理的请求队列。这个参数在操作系统层面的默认值是128,很显然在压力非常大的系统上,这个值小了一点。您可以修改成2048或者更大,而为Redis配置的tcp-backlog应该小于或者等于您在操作系统上设置的最大限制值(否则Redis上面设置再大也没有用)。
2. GENERAL栏
A. daemonize:是否以守护进程的方式(后台)启动,默认值为no;
B. pidfile:配置PID文件路径,当redis作为后台启动时,它会把pid默认写入/var/redis/run/redis_6379.pid文件里面;
C. loglevel :日志级别,默认值为notice,值类型有:
debug:记录大量日志信息,适用于开发、测试阶段;
verbose:较多日志信息;
notice:适量日志信息,使用于生产环境;
warning:仅有部分重要、关键信息才会被记录;
D. logfile:配置日志文件,默认打印在命令行终端的窗口上;
3. SECURITY栏
A. requirepass:设置redis连接密码;
B. rename-command:在生产环境下,有一些Redis命令是非常危险的,例如FLUSHALL命令和FLUSHDB命令。所以Redis服务器为生产环境的指令安全性提供了一个重命名功能,通过这个功能我们可以将一些需要避免执行的指令变更成其它指令。例如以下设定可以将FLUSHALL指令变更成空字符。
C. maxclients:设定当前同时连接到本Redis服务上的客户端数量,默认为10000。注意这个值的设定还和操作系统上file limit参数有关联,实际情况是10000个同时正常的客户端连接完全够用,如果实际情况需要调整则一定要同时确认该设定值没有超过操作系统上设定的文件描述符限制数量。
4. SNAPSHOTTING栏
A. save:配置触发Redis持久化条件,即将内存中的数据保存到硬盘,如果只用缓存就不需要设置;
B. dbfilename:设置快照(RDB方式备份)的文件名,默认是 dump.rdb;
C. dir:设置快照文件的存放路径;
可参考:redis的配置文件介绍
二、redis常用命令
1. 查看redis进程:ps -ef | grep redis ;
2. 启动redis:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf;
3. 查看redis连接:
A. 查看连接数:info clients;
B. 查看连接信息:client list;
三、systemctl命令
1. 创建redis服务文件(redis.service):vim /usr/lib/systemd/system/redis.service;
2. 编写服务文件
# 服务的说明
[Unit]
# 描述服务
Description=redis
# 描述服务类别
After=network.target
# 服务运行参数的设置
[Service]
# 后台运行的形式
Type=forking
# 启动命令
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
# 停止命令
ExecStop=/usr/local/redis/bin/redis-cli shutdown
# 服务安装的设置
[Install]
# 用户的模式
WantedBy=multi-user.target
3. 使服务文件生效:systemctl daemon-reload;
4. 执行命令
A. 启动redis:systemctl start redis;
B. 停止redis:systemctl stop redis;
C. 查看redis状态:systemctl status redis;
5. systemctl启动问题
现象:systemctl启动rpm方式安装的redis报错 redis fatal error can't open config file;
原因:应该是权限问题,但具体原因暂时无法定位,命令单独执行可以,配置文件redis.conf放在/etc目录下执行也可以,其余目录就是不行;
解决办法:
方法一: 配置文件redis.conf放在/etc目录下;
方法二:设置/etc/sysconfig/selinux文件SELinux=disabled;