centos 7.3下安装redis 5.0.6最佳实践

本文详细介绍在Linux环境下安装和配置Redis的步骤,包括操作系统优化、防火墙关闭、文件限制修改、THP关闭、overcommit_memory设置等,以及Redis的下载、编译安装、启动方式和开机自启动设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 操作系统配置

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

3yum安装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服务必须在运行级2345下被启动或关闭,启动的优先级是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值