一、搭建JDK环境


通常情况下CentOS 7自带的JDK为OpenJDK,不同于Oracel SUN JDK,为了与在PC上保持相同的JDK配置方式及使用习惯,可替换为Oracle SUN JDK。

(1)卸载OpenJDK

先通过命令查询Java相关的现有安装:

rpm -qa | grep java

结果如下:

python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
tzdata-java-2018e-3.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.171-8.b10.el7_5.x86_64
通过rpm -e xx(xx为上述包)逐个卸载,并再次查看发现已经下载干净,操作过程如下:
[root@centos jvm]# rpm -e java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
[root@centos jvm]# rpm -e java-1.8.0-openjdk-headless-1.8.0.171-8.b10.el7_5.x86_64
[root@centos jvm]# rpm -e tzdata-java-2018e-3.el7.noarch
[root@centos jvm]# rpm -e javapackages-tools-3.4.1-11.el7.noarch
[root@centos jvm]# rpm -e python-javapackages-3.4.1-11.el7.noarch
[root@centos jvm]# rpm -qa |grep java
[root@centos jvm]# java -version
bash: /usr/bin/java: No such file or directory

(2)下载Oracle SUN JDK

到Oracle网站下载JDK(https://www.oracle.com/technetwork/java/javase/downloads/index.html),对CentOS 7选择相应版本的RPM安装包即可;

例如:jdk-8u171-linux-x64.rpm

(3)安装Oracle SUN JDK

root权限下,将下载后的版本通过rpm命令安装即可,命令示例:

rpm -ivh jdk-8u171-linux-x64.rpm

(4)验证安装

输入命令java -version即可,另外可通过ls /usr/java查看默认安装路径下的java安装版本,操作过程如下:

[root@centos_vm2 tools]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
[root@centos_vm2 tools]# ls /usr/java
default  jdk1.8.0_171-amd64  latest

(5)修改环境变量配置文件

在/etc/profile文件中添加如下几行:

#java environment
 export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
 export PATH=$PATH:${JAVA_HOME}/bin

后执行source /etc/profile命令使得配置生效;在其他某些Linux环境(例如Deepin)下可以通过修改/etc/bash.bashrc实现同样的效果;


二、搭建Maven开发环境


(1)下载Maven安装包

到apache网站下载maven(http://maven.apache.org/download.cgi) ,选择所需版本并下载

(2)安装Maven

建议安装目录:/usr/local/maven/,需root权限下先创建好该目录:

mkdir /usr/local/maven

先将下载的安装包解压的某个目录(笔者的安装包、安装包解压均在/var/ftp/tools/目录下):

tar -zxvf apache-maven-3.5.4-bin.tar.gz

然后复制目录到安装目录:

cp -r apache-maven-3.5.4/* /usr/local/maven/

之后可查看安装目录下的文件、目录列表:

[root@centos_vm2 tools]# ls /usr/local/maven
bin  boot  conf  lib  LICENSE  NOTICE  README.txt

(3)修改环境变量配置文件:

在/etc/profile文件中添加环境变量MAVEN_HOME,并添加到PATH中,结合上面JAVA环境变量引起的变更,合计如下:

#java environment
 export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
 export MAVEN_HOME=/usr/local/maven
 export PATH=$PATH:${JAVA_HOME}/bin:${MAVEN_HOME}/bin

执行如下命令使得配置文件生效

source /etc/profile

(4)验证安装

执行mvn -v查看版本,执行echo $MAVEN_HOME查看环境变量,过程如下:

[root@centos tools]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_171, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_171-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
[root@centos tools]# echo $MAVEN_HOME
/usr/local/maven


三、搭建Tomcat环境


(1)下载Tomcat安装包

到apache网站下载Tomcat(http://tomcat.apache.org/) ,选择所需版本并下载

(2)安装Tomcat

建议安装目录/usr/local/tomcat,解压压缩包:

tar -zxvf apache-tomcat-9.0.10.tar.gz

之后将解压后的目录复制到/usr/local/tomcat,操作过程如下:

[root@centos usr]# su root
[root@centos usr]# cd /usr/local
[root@centos local]# mkdir tomcat
[root@centos local]# cd /var/ftp/tools
[root@centos tools]# cp -r apache-tomcat-9.0.10/* /usr/local/tomcat/

(3)开放Tomcat的8080服务端口

执行如下命令开放8080端口:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

上述命令中的参数含义:
--zone #作用域
--add-port=8080/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

然后重启防火墙:

firewall-cmd --reload

之后在/usr/local/tomcat/bin下,如需启动Tomcat服务则执行

./startup.sh

如需停止Tomcat服务则执行:

./shutdown.sh


四、将Tomcat服务化(可选步骤)


将Tomcat服务化管理在许多时候比较方便,通常包含如下几个步骤:

(1)设置环境变量、用户及组:

环境变量可以通过/etc/profile设置,也可以通过在tomcat/bin/setenv.sh进行设置:

例如,在/etc/profile中设置相关路径:

export CLASS_PATH=.:$JAVA_HOME/lib
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
export PATH=$PATH:${JAVA_HOME}/bin:${CATALINA_HOME}/bin

然后通过/usr/local/tomcat/bin/setenv.sh 设置运行参数,文件内容如下:

#add tomcat pid 
CATALINA_PID="$CATALINA_BASE/tomcat.pid" 
#add java opts 
JAVA_OPTS="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

可配置tomcat服务运行时的用户及组,并赋予相应的权限:

[root@snails ~]# getent group tomcat || groupadd -r tomcat 
[root@snails ~]# getent passwd tomcat || useradd -r -d /opt -s /bin/nologin -g tomcat tomcat 
[root@snails ~]# chown -R tomcat:tomcat /usr/local/tomcat
[root@snails ~]# chmod a+rwx -R /usr/local/tomcat/logs

上述命令getent用于查询,如果没有查询到则执行||之后的命令;groupadd或者useradd之后的参数-r表示的是系统群组、系统用户;useradd之后的参数-s /bin/nologin表示该用户无法直接登录,只用于系统作业使用;


注:本部分来源参考自:https://www.jianshu.com/p/29ecd624046f


(1)服务描述文件:

用service或systemctl管理服务的时候,需先在服务管理目录(即/usr/lib/systemd/system目录,或者/lib/systemd/system目录,后者是前者的软连接)创建一个脚本文件,

vim /usr/lib/systemd/system/tomcat.service

来管理服务的启动和停止,内容示例如下:

[Unit] 
Description=Apache Tomcat 9
After=network.target  
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh  
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/bin/kill -s QUIT $MAINPID 
PrivateTmp=true 
User=tomcat
Group=tomcat  
[Install]
WantedBy=multi-user.target

上述内容中的参数说明如下:

  • [Unit]:服务的说明

       Description:描述服务

       Documentation  (可选):服务文档      

       After:描述服务类别

  • [Service]服务运行参数的设置

      Type=forking是后台运行的形式,取值有:simple、forking、oneshot、notify、dbus,其中:
      > simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。
      > forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程。
      > oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。
      > notify:与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。
      > dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。

      

     PIDFile: 进程ID文件路径,对于上述tomcat的配置,相应的tomat/bin/catalina.sh需加入CATALINA_PID参数,参考方式是在脚本一开始的# OS specific support.行之前添加变更,示例如下:

# -----------------------------------------------------------------------------
CATALINA_PID=/usr/local/tomcat/tomcat.pid
# OS specific support.  $var _must_ be set to either true or false.

      ExecStartPre (可选):启动前要做什么

      ExecStart:为服务的具体运行命令
      ExecReload:为重启命令,kill命令-s参数为向进程发送信号,HUP为重新运行的信号
      ExecStop:为停止命令,kill命令-s参数为向进程发送信号,QUIT为退出程序的信号

      User、Group(可选):为运行时所使用的用户、群组,如果没有将tomcat目录绑定到该用户,则这两个参数不要在配置中出现
      PrivateTmp=True表示给服务分配独立的临时空间
      注意:[Service]的启动、重启、停止命令全部要求使用绝对路径,User、Group不指定则默认为root

  • [Install]服务安装的相关设置,可设置为多用户


注:本部分参考自:https://blog.csdn.net/younger_china/article/details/52539522


然后执行systemctl enable tomcat设置为开机自动启动,或者先通过tomcat/bin子目录下的shutdown.sh停掉当前运行的tomcat,然后执行systemctl start tomcat运行即可;


(2)启动阻塞超时的问题:

全新的tomcat环境,在没有运行过的情况下,tomcat/logs子目录下是没有日志文件的,第一次运行后将产生日志文件,最常见的是根据catalina.out日志文件定位问题。

Tomcat启动有时因为超时导致启动失败,常见的原因是安全随机数耗时的问题,从启动日志中看到类似如下的告警:

19-Jul-2018 22:43:02.156 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [149,396] milliseconds.
19-Jul-2018 22:43:02.174 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [149,652] ms

这是由于在服务器环境下,系统的随机数参考环境变量比较少导致计算比较慢,解决方式有两种:

方式一:可以通过配置 JRE 使用非阻塞的 Entropy Source:

在 catalina.sh 中加入这么一行:

-Djava.security.egd=file:/dev/./urandom

例如:

# Make the umask available when using the org.apache.catalina.security.SecurityListener
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom  -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"


方式二:打开 $JAVA_HOME/jre/lib/security/java.security (本安装中是这个文件,找到下面的内容:

securerandom.source=file:/dev/random

替换为:

securerandom.source=file:/dev/./urandom

注:路径中间的点号是在某些版本中securerandom.source 设置为 /dev/urandom 它也仍然使用的 /dev/random,因此用了变通的方式,如果所用版本测试验证直接用securerandom.source=file:/dev/urandom能正常工作,则无需用带点号的路径;


(3)Tomcat停止时原线程、IP端口释放不彻底的问题

某些Tomcat web工程版本开发调测时发现用tomcat/bin下的shutdown.sh关闭不彻底,这时需要手工用kill 进程号才能彻底关闭掉,通常这类问题是开启的非守护线程并没有停止掉造成的,可借助几个步骤:

第一步:查看Tomcat进程号

ps -ef|grep tomcat

第二步:用JDK自带的jstack工具分析活动线程

$JAVA_HOME/bin/jstack  

为具体的进程号

第三步:找到主线程main、自建线程检查是否是守护线程,如果不是,修改相应的Java代码,在类似于new Thread()的动作之后注意设置为守护线程,再重新发布版本验证;

第四步:对于IP端口号未及时释放的,为了不影响调测,临时可通过kill强制关闭进程:

kill 

后续需检查自行占用端口的代码在程序退出时释放及时释放端口资源;

第五步:多个tomcat目录的实例运行,关闭失败,需要记录各个实例的进程ID,在相应的tomcat/bin/catalina.sh代码前面添加如下操作:

#############
if [ -z "$CATALINA_PID" ]; then
    CATALINA_PID=$PRGDIR/CATALINA_PID
    cat $CATALINA_PID
fi############

在相应的tomcat/bin/shutdown.sh中:

exec "$PRGDIR"/"$EXECUTABLE" stop "$@"

添加强制停止的参数,即:

exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"


五、创建基于web项目的Maven多模块工程


大量的Java工程都是web项目,对于企业应用,这些项目通常都是多模块项目。为了便于管理,通常对项目进行分层,顶层是一个parent项目,parent下包含多个子模块,单个子模块可以是某个公共包、库的集合,也可以按功能划分子模块,或者为了便于生成一个具体生产环境所需的配套包、或者测试环境的测试包也单独开辟一个子模块用户生成所需的打包文件;以下以创建一个基础的web项目的多模块工程为样例例进行说明。

(1)创建顶层工程parent

假设顶层工程名为sample-parent,进入到所在的父目录后,输入如下命令:

mvn archetype:generate -DgroupId=com.sample -DartifactId=sample-parent -DarchetypeArtifactId=maven-archetype-quickstart

注意:示例中groupId为com.sample,工程名sample-parent,命令最后还可以加一个参数-DinteractiveMode=false表示无需在进行交互式确认,本示例中未加该参数,执行过程中可以再次确认版本等信息,如无需更改直接回车即可;

上述命令执行完成后,顶层工程就创建好了,工程默认的打包结果为jar,但我们用顶层工程的目的只是用来管理多个模块不在顶层输出jar包,为此,进入到sample-parent目录,将src文件夹删除,然后修改pom.xml文件,将jar修改为pom

(2)创建子工程common

将一些最常用的公共类、包等放在一个可被依赖的子模块中,非常利于团队中的代码共享,为此先进入到sample-parent目录,然后创建sample-common子工程,这样创建出来的子工程自动成为sample-parent的一个子模块,输入的命令如下:

mvn archetype:generate -DgroupId=com.sample -DartifactId=sample-common -DarchetypeArtifactId=maven-archetype-quickstart

命令执行完成之后可以看到在sample-parent目录中生成了sample-common,里面包含src目录和pom.xml文件。同时,在sample-parent目录中的pom.xml文件自动添加了如下内容:
   


    sample-common

修改sample-common目录中的pom.xml文件,把sample-common1.0-SNAPSHOT去掉,加上jar
因为groupId和version会继承sample-parent中的groupId和version,packaging设置打包方式为jar;

(3)创建子工程web

假定需要发布一个能在Tomcat中运行的war包,这个可发布的包位于一个子模块sample-web中,在进入sample-parent目录后,可执行如下命令创建web工程:

mvn archetype:generate -DgroupId=com.sample -DartifactId=sample-web -DarchetypeArtifactId=maven-archetype-webapp

注意:参数-DarchetypeArtifactId=maven-archetype-webapp表示这是创建web工程,默认打包为war包

(4)添加依赖继承、依赖

在父工程的pom.xml中通过properties标签内容罗列依赖的版本号,然后通过罗列依赖的各种jar包、模块,再在子工程的添加该子工程所需要的依赖时可以继承父工程已经声明的包、模块,无需再指明具体的版本号;类似的机制适用于在父工程中通过声明build所需的maven插件,在子工程的中再添加所需的maven插件,无需再指明具体的版本号;


六、搭建MySQL环境


(1)下载MySQL

从MySQL官方网站下载页面(https://dev.mysql.com/downloads/mysql/)下载社区版MySQL(MySQL Community Server),例如选择下载:MySQL Community Server 5.7
安装说明文档(Installation structions)也可在该页面找到;根据配套的服务器操作系统版本CentOS7,本次下载的是:
Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle 5.7.22 570.3M
(mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar)

(2)上传版本到CentOS服务器,解压安装包
可借助客户端工具例如MobaXterm上传版本到服务器的一个目录,例如:/var/ftp/tools
然后执行解压命令:

tar -xvf mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar

(3)安装MySQL Server

在解压目录下,依次执行如下命令安装各个rpm包:

rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm

注意:如果系统之前安装了其他的MySQL、MariaDB,可能由于冲突导致安装失败,应先卸载之前的安装,可通过rpm -qa|grep mysql查询之前安装的rpm包,然后通过rpm -e xxx卸载之前的rpm包;

(4)启动MySQL

执行如下命令:(注意在CentOS下MySQL的服务名为mysqld,在SUSE Linux下为mysql)

service mysqld start

或者

systemctl start mysqld

安装完成后mysqld位于/usr/sbin/mysqld,reboot重启系统后:
 > 可通过systemctl status mysqld查看运行状态
 > 可通过ps -ef | grep ^mysql查看进程号
 > 可通过netstat -anpl |grep mysql查看网络服务
 > 可通过mysqladmin --version查看版本号

(5)配置root用户密码
MySQL在初始安装的时候,会生成安装日志(位于/var/log/mysqld.log),其中记录了一个随机的初始密码,以root用户及此初始密码登录,然后修改root密码;
例如:vi /var/log/mysqld.log,找到如下行

2018-07-15T16:11:30.955449Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-07-15T16:11:30.956742Z 1 [Note] A temporary password is generated for root@localhost: /yBner_jl6Ii

以用户root初始密码/yBner_j16Ii登陆:

mysql -uroot -p/yBner_jl6Ii

操作过程如下:

mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor.  
Commands end with ; or \g.Your MySQL connection id is 8Server version: 5.7.22
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> set password=password('11211');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set password=password('127212yZp');ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set password=password('121132@MySQL');Query OK, 0 rows affected, 1 warning (0.00 sec)

(6)配置远程登录权限
登录MySQL后,修改root的登录权限,在其中依次执行如下两步
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '121132@MySQL' WITH GRANT OPTION;
flush privileges;

注意:命令中BY后面的121132@MySQL为root的密码,实际操作时请输入实际的密码;

(7)使用PC客户端工具连接MySQL

例如HedisSQL工具;

(8)忘记root密码时补救办法

第一步:修改配置文件/etc/my.cnf在[mysqld]后新增一行,内容为skip-grant-tables,用于方通MySQL的密码检查

第二步:重启MySQL,例如执行:service mysqld restart 或 systemctl restart mysqld

第三步:以root用户登录MySQL,执行登录MySQL:mysql -uroot -p (直接回车,密码为空)

然后在MySQL命令行中依次执行:

update user set authentication_string=password('123456') where user='root';
flush privileges;

注意:上述123456为新的密码,实际操作时以请输入具体的密码;

然后执行quit退出MySQL命令行;

第四步:恢复配置文件/etc/my.cnf,去掉第一步中加的skip-grant-tables,重启MySQL(参考第二步)

(9)root密码过于简单导致设置密码失败

登录MySQL后,在MySQL命令行下,输入命令:

set global validate_password_policy=0;

可设置密码校验复杂度为0;

输入命令:

set global validate_password_length=0

可设置密码最小长度为4;

之后,可输入命令查看密码相关的参数:

SHOW VARIABLES LIKE 'validate_password%';


七、搭建Redis环境


(1)下载Redis

从Redis官方网站(https://redis.io/download ) 下载Redis的安装包,其中包含源码;将安装包复制的服务器的一个目录下并解压,例如:

tar zxvf redis-5.0.0.tar.gz

(2)进入解压后的目录,例如:

cd redis-5.0.0/

(3)编译程序

在编译之前请确保系统以及安装了gcc,如果没有安装,请先安装gcc(例如执行yum install gcc);之后依次执行如下命令:

make
cd src
make install PREFIX=/usr/local/redis

注:上述PREFIX=/usr/local/redis表示安装到/usr/local/redis目录下

如果因为之前没有安装gcc导致编译失败,请先删除刚刚解压的redis目录,重新解压,重新进入解压目录后再重新编译;

(4)复制配置文件到安装目录下

依次执行如下命令:

cd..
mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc/

(5)常用配置参数

配置参数存放在redis.conf文件中,需编辑该文件进行配置,例如:

vim /usr/local/redis/etc/redis.conf

daemonize:如需要在后台运行,把该项的值改为yes

pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项

port:监听端口,默认为6379

timeout:设置客户端连接时的超时时间,单位为秒

loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

database:设置数据库的个数,默认使用的数据库是0

save:设置redis进行数据库镜像的频率

rdbcompression:在进行镜像备份时,是否进行压缩

dbfilename:镜像备份文件的文件名

dir:数据库镜像备份的文件放置的路径

slaveof:设置该数据库为其他数据库的从数据库

masterauth:当主数据库连接需要密码验证时,在这里设定

requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

maxclients:限制同时连接的客户端数量

maxmemory:设置redis能够使用的最大内存

appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

appendfsync:设置appendonly.aof文件进行同步的频率

vm_enabled:是否开启虚拟内存支持

vm_swap_file:设置虚拟内存的交换文件的路径

vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

vm_page_size:设置虚拟内存页的大小

vm_pages:设置交换文件的总的page数量

vm_max_thrrads:设置vm IO同时使用的线程数量


(5)配置redis为后台启动

编辑redis.conf文件:

vi /usr/local/redis/etc/redis.conf

将文件中daemonize no 改成daemonize yes

(6)可选步骤一:将redis加入到开机启动,编辑/etc/rc.local文件:

vi /etc/rc.local

在里面添加内容即可:

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 

注:上述内容即开机时调用命令redis-server,配置文件为redis.conf,该行命令也可用于手工启动redis服务;

(7)可选步骤二:常用操作

手工停掉redis,可执行如下命令:

pkill redis-server

或者

/usr/local/redis/bin/redis-cli shutdown

卸载redis,可在停止redis后,删除上述安装目录即可:

rm -rf /usr/local/redis

执行客户端连接redis

/usr/local/redis/bin/redis-cli

 (8)将redis配置为可通过systemctl管理的服务

参考上述tomcat服务的配置文件,类似的编写一个描述redis服务的文件(配置参数的含义参考上述tomcat服务配置文件中对参数的解释),先创建服务描述文件并进行编辑:

vim /usr/lib/systemd/system/redis.service

文件内容示例如下:

[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
#PID Should be the same as redis.conf
PIDFile=/var/run/redis_6379.pid
#For start: redis-server path and redis.conf path
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
#For restart
ExecReload=/bin/kill -s HUP $MAINPID
#For stop
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
#System startup mode
WantedBy=multi-user.target

之后执行刷新系统服务配置

systemctl daemon-reload

再执行激活开机自动启动redis服务

systemctl enable redis

其后:可通过如下命令查看redis服务状态

systemctl status redis

通过如下命令手工停止redis服务

systemctl stop redis

通过如下命令手工启动redis

systemctl start redis

通过如下命令手工重启redis服务

system restart redis