CentOS7.4 生产环境安装redis

  • 内容
  • 评论
  • 相关

环境说明

机器名

IP

软件版本

硬件配置

redis4-srv

10.80.1.13

Redis 4.0.11

6核/16G/80G

 

系统优化

我们已经完成了redis的虚拟机的申请,并且安装完成了zabbix监控和ntp配置,为了更好的使用redis,我们对系统做一些优化。

设置与内存有关的内存参数

Redis中不需要使用与数据集大小相同的空闲内存。但是Linux在默认情况下可能会检查是否有足够的空闲内存来复制父进程的所有内存页,可能导致Out of Memory而崩溃。所以要将overcommit设为1,表示当一个程序调用诸如malloc()等函数分配内存时,即使系统没有足够的内存空间函数也会执行成功。

swappiness参数值越大,内核进行内存交换越激进。

启用虚拟内存后,redis会尝试访问磁盘上的虚拟内存。会导致redis被磁盘I/O阻塞。redis我们要发挥他的高速处理能力,所以设置成swappiness=0禁用交换分区。

# sysctl -w vm.overcommit_memory=1

# sysctl -w vm.swappiness=0

持久化保存这些参数

# echo “vm.overcommit_memory=1” >> /etc/sysctl.conf

# echo “vm.swappiness=0” >> /etc/sysctl.conf

检查参数是否已被设置

# sysctl vm.overcommit_memory vm.swappiness

禁止透明大页功能

使用透明大页功能会导致持久化的子进程创建缓慢,所以禁用。

# echo never > /sys/kernel/mm/transparent_hugepage/enabled

# echo never > /sys/kernel/mm/transparent_hugepage/defrag

持久化保存这些设置

# cat >> /etc/rc.local << EOF

> echo never > /sys/kernel/mm/transparent_hugepage/enabled

> echo never > /sys/kernel/mm/transparent_hugepage/defrag

> EOF

检查参数是否已被设置

# cat /sys/kernel/mm/transparent_hugepage/enabled

# cat /sys/kernel/mm/transparent_hugepage/defrag

网络优化,设置与网络相关的内核参数

默认的2个参数是128.设置大一点可以优化TCP连接。

# sysctl -w net.core.somaxconn=65535

# sysctl -w net.ipv4.tcp_max_syn_backlog=65535

持久化保存参数

# echo “net.core.somaxconn=65535” >> /etc/sysctl.conf

# echo “net.ipv4.tcp_max_syn_backlog=65535” >> /etc/sysctl.conf

检查参数是否已被设置

# sysctl net.core.somaxconn net.ipv4.tcp_max_syn_backlog

安装编译环境

# yum -y install gcc gcc-c++ libstdc++-devel zlib-devel

安装redis

# cd /usr/local/

# wget wget http://download.redis.io/releases/redis-4.0.11.tar.gz

# tar -zxvf redis-4.0.11.tar.gz

# ls

改名下文件夹

# mv redis-4.0.11 redis

# rm redis-4.0.11.tar.gz

进入解压后的目录进行编译

# cd redis/

# make

# make install

开通防火墙

redis默认是用6379端口的所以我们开下这个端口

# firewall-cmd –permanent –zone=public –add-port=6379/tcp

# firewall-cmd –reload

配置redis

建立文件夹

/etc/redis    存放Redis的配置文件

/var/redis/端口号    存放Redis的持久化文件

# cd /etc/

# mkdir redis

# mkdir /var/redis

# mkdir /var/redis/6379

复制conf文件

将redis安装目录中的redis.conf复制到/etc/redis中,然后重命名成端口号.conf

# cd /usr/local/redis/

# cp redis.conf /etc/redis/

# cd /etc/redis/

# mv redis.conf 6379.conf

 

复制初始化脚本

# cd /usr/local/redis/utils/

我们需要配置Redis的运行方式和持久化文件,日志文件存储位置

配置初始化脚本,将脚本复制到/etc/init.d目录,文件名redis_端口号,然后修改文件中的REDISPORT为你需要设置的端口号

# cp redis_init_script /etc/init.d

# cd /etc/init.d/

# mv redis_init_script redis_6379

修改conf文件

我们修改下6379.conf

# cd /etc/redis/

# vim 6379.conf

bind 0.0.0.0 代表所有ip来访问

protected-mode 默认是yes改成no,这是3.2版本后新的特性,链接redis时只能通过本地localhost来链接,不能通过网络ip192.168..来链接,所以要改成no

redis端口号

redis默认不在后台运行,我们修改成yes变成守护进程后台运行

设置Redis的PID文件位置

设置持久化文件存放位置

开启AOF

设置开机启动redis

编辑/etc/init.d/redis_6379文件,在#!/bin/bash 之后添加如下两行。

# vim /etc/init.d/redis_6379

# chkconfig: 2345 10 90

# description: redis_6379 service manage…

将redis_6379放入linux启动管理体系中

# chkconfig –add redis_6379

查看redis_6379服务在各运行级状态

# chkconfig –list redis_6379

启动redis

现在可以使用/etc/init.d/redis_端口号 start来启动redis了

# /etc/init.d/redis_6379 start

关闭redis

# redis-cli SHUTDOWN