一、 操作系统配置
1、关闭防火墙
[root@redis-test data]sudo systemctl stop firewalld —临时关闭
[root@redis-test data]sudo systemctl disable firewalld --然后reboot 永久关闭
[root@redis-test data]sudo systemctl status firewalld —查看防火墙状态
2、修改操作系统文件限制
[root@redis-test data]vi /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
3、关闭THP
首先检查THP的启用状态:
[root@redis-test data]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
[root@redis-test data]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
这个状态就说明都是启用的。
我们这个时候当然可以逐个修改上述两文件,来禁用THP,但要想一劳永逸的令其永久生效,还是参考下列的步骤。
编辑rc.local文件:
[root@redis-test data]# vim /etc/rc.d/rc.local
增加下列内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
保存退出,然后赋予rc.local文件执行权限:
[root@localhost ~]# chmod +x /etc/rc.d/rc.local
最后重启系统,以后再检查THP应该就是被禁用了
[root@redis-test data]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@redis-test data]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
4、设置overcommit_memory
当一个服务器上单实例内存超过总内存的50%以上时,建议将vm.overcommit_memory值为1
[root@redis-test data]vi /etc/sysctl.conf
vm.overcommit_memory=1
[root@redis-test data]sysctl -p
二、 安装redis
1、下载redis安装包
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
[root@redis-test data]# wget http://download.redis.io/releases/redis-5.0.6.tar.gz
–2019-11-04 11:08:57-- http://download.redis.io/releases/redis-5.0.6.tar.gz
Resolving download.redis.io (download.redis.io)… 109.74.203.151, 2016::1
Connecting to download.redis.io (download.redis.io)|109.74.203.151|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1979873 (1.9M) [application/x-gzip]
Saving to: ‘redis-5.0.6.tar.gz’
100%[===================================================================================================================>] 1,979,873 47.1KB/s in 31s
2019-11-04 11:09:28 (63.1 KB/s) - ‘redis-5.0.6.tar.gz’ saved [1979873/1979873]
2、解压压缩包
tar –zxvf redis-5.0.6.tar.gz
[root@redis-test data]# tar -xvf redis-5.0.6.tar.gz
3、yum安装gcc依赖
yum install gcc
[root@redis-test data]# yum install gcc
4、跳转到redis解压目录下
cd redis-5.0.6
[root@redis-test data]# cd redis-5.0.6
5、编译安装
make MALLOC=libc
[root@redis-test redis-5.0.6]# make MALLOC=libc
将/usr/local/redis-5.0.6/src目录下的文件加到/usr/local/bin目录
cd src && make install
[root@redis-test redis-5.0.6]# cd src && make install
CC Makefile.dep
Hint: It’s a good idea to run ‘make test’ 😉
INSTALL install INSTALL install INSTALL install INSTALL install INSTALL install
复制
二、启动redis的三种方式
1、直接启动redis
./redis-server
[root@redis-test src]# ./redis-server
3035:C 04 Nov 2019 11:19:12.789 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3035:C 04 Nov 2019 11:19:12.789 # Redis version=5.0.6, bits=64, commit=00000000, modified=0, pid=3035, just started
3035:C 04 Nov 2019 11:19:12.789 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
.
.-__ ''-._ _.-
.
. ‘’-._ Redis 5.0.6 (00000000/0) 64 bit
.-.-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.
-.|’_.-'| Port: 6379 |
-. ._ / _.-' | PID: 3035
-._ -._
-./ .-’ .-’
|-._
-. -.__.-' _.-'_.-'| |
-.-._ _.-'_.-' | http://redis.io
-._ -._
-..-’.-’ .-’
|-._
-. -.__.-' _.-'_.-'| |
-.-._ _.-'_.-' |
-._ -._
-..-’_.-’ _.-’
-._
-..-’ _.-’
-._ _.-'
-..-’
3035:M 04 Nov 2019 11:19:12.795 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
3035:M 04 Nov 2019 11:19:12.795 # Server initialized
3035:M 04 Nov 2019 11:19:12.795 * Ready to accept connections
如上图:redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。
按 ctrl + c可以关闭窗口。
2、以后台进程方式启动redis
第一步:修改redis.conf文件
将
daemonize no
修改为
daemonize yes
第二步:指定redis.conf文件启动
[root@redis-test src]# ./redis-server /data/redis-5.0.6/redis.conf
3041:C 04 Nov 2019 11:23:05.223 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3041:C 04 Nov 2019 11:23:05.223 # Redis version=5.0.6, bits=64, commit=00000000, modified=0, pid=3041, just started
3041:C 04 Nov 2019 11:23:05.223 # Configuration loaded
第三步:关闭redis进程
首先使用ps -aux | grep redis查看redis进程
[root@redis-test src]# ps -aux | grep redis
root 3042 0.0 0.1 144028 2016 ? Ssl 11:23 0:00 ./redis-server 127.0.0.1:6379
root 3047 0.0 0.0 112712 956 pts/0 S+ 11:23 0:00 grep --color=auto redis
使用kill命令杀死进程
[root@redis-test src]# kill -9 3042
3、设置redis开机自启动
1、在/etc目录下新建redis目录
mkdir redis
[root@redis-test etc]# mkdir redis
2、将/data/redis-5.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf
[root@redis-test redis]#cp /data/redis-5.0.6/redis.conf /etc/redis/6379.conf
3、将redis的启动脚本复制一份放到/etc/init.d目录下
[root@redis-test init.d]#cp /data/redis-5.0.6/utils/redis_init_script /etc/init.d/redisd
4、设置redis开机自启动
先切换到/etc/init.d目录下
然后执行自启命令
[root@redis-test init.d]# chkconfig redisd on
service redisd does not support chkconfig
看结果是redisd不支持chkconfig
解决方法:
使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。
再次执行开机自启命令,成功
[root@redis-test init.d]# chkconfig redisd on
现在可以直接已服务的形式启动和关闭redis了
启动:
service redisd start
[root@redis-test init.d]# service redisd start
Starting Redis server…
2288:C 4 Nov 13:51:38.087 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2288:C 4 Nov 13:51:38.087 # Redis version=5.0.6, bits=64, commit=00000000, modified=0, pid=2288, just started
2288:C 13 Dec 13:51:38.087 # Configuration loaded
关闭:
service redisd stop
[root@redis-test init.d]# service redisd stop
Stopping …
Redis stopped