CentOS7安装部署Redis

CentOS7安装部署Redis

我们知道现在docker直接部署redis很方便,但是有时候我们还是需要在服务器直接安装,那么怎么安装呢?今天把我写的老教程,重新修订下,分享给大家。

1.Redis6.x 安装需求

Redis6.0以上对gcc版本有要求(5.3)以上,而centos7.6默认安装4.8.5。所以需要升级gcc版本。如果是CentOS8则不需要此操作。

1.1 升级GCC

# yum -y install centos-release-scl
# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

# scl enable devtoolset-9 bash

# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-9/root/usr --mandir=/opt/rh/devtoolset-9/root/usr/share/man --infodir=/opt/rh/devtoolset-9/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-9.3.1-20200408/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)

1.2 配置环境变量

其中上面scl命令启用只是临时的,退出shell或重新打开一个shell就会恢复原系统gcc版本,所以需要执行以下命令永久使用gcc 9。

# echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
# . ~/.bash_profile
# which gcc
/opt/rh/devtoolset-9/root/usr/bin/gcc

如果没有生效环境变量,则需要重新登录再看看gcc版本。

2.下载源码包

$ mkdir ~/source && cd ~/source
$ wget https://download.redis.io/releases/redis-6.2.6.tar.gz

3.解压安装编译

$ tar zxf redis-6.2.6.tar.gz
$ cd redis-6.2.6/
$ mkdir -p ~/3rd/redis-6.2.6
$ make
$ make PREFIX=/home/testerzhang/3rd/redis-6.2.6 install
$ cp redis.conf /home/testerzhang/3rd/redis-6.2.6
$ cp src/redis-trib.rb /home/testerzhang/3rd/redis-6.2.6

其中安装地址可以根据自己的实际部署目录自行修改。

进去安装目录,查看

$ pwd
/home/testerzhang/3rd/redis-6.2.6/bin
$ ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server  redis.conf

4.单机版Redis部署说明

4.1 修改配置文件

$ vi redis.conf

# bind 127.0.0.1 ::1
bind 127.0.0.1

#port 6379
port 16379

# requirepass foobared
requirepass testerzhang

4.2 启动命令

$ ./redis-server redis.conf

如果是后台运行,则可以加上nohup命令

$ nohup ./redis-server redis.conf &

4.3 验证 Redis服务

$ pwd
/home/testerzhang/3rd/redis-6.2.6/bin
$ ./redis-cli -p 16379
127.0.0.1:16379> auth testerzhang
OK
127.0.0.1:16379> set name 123
OK
127.0.0.1:16379> get name
"123"

4.4 配置环境变量

  • 编辑环境变量
$ vim .bash_profile
export REDIS_HOME=$HOME/3rd/redis-6.2.6
export PATH=$REDIS_HOME/bin:$PATH
  • 生效环境变量
$ source ~/.bash_profile
  • 查看客户端命令是否找到了
$ which redis-cli
~/3rd/redis-6.2.6/bin/redis-cli

5.集群版Redis部署说明

为实现高可用,我们会进行集群版的搭建,而Redis的集群搭建最少需要3个master节点,从节点也可以配备3个。

但是本文不进行配置从节点。

5.1 拷贝单机版文件夹

$ pwd
/home/testerzhang/3rd
$ cp -rf redis-6.2.6/ redis-6.2.6-cluster

5.2 准备独立目录

$ cd redis-6.2.6-cluster
$ find . -name dump.rdb|xargs rm
$ find . -name nohup.out|xargs rm
$ cp -rf bin 7000
$ cp -rf bin 7001
$ cp -rf bin 7002

5.3 修改每个节点的配置文件

这里以7000节点配置文件为例

$ vim 7000/redis.conf

#绑定ip,必须指定
bind 10.10.10.10
#修改端口
port 7000
#后台启动
daemonize yes
#打开cluster
cluster-enabled yes
# 配置密码
# requirepass testerzhang

其他节点按照这个方式配置,先不要开启密码哦!

5.4 启动服务

$ cat startcluster.sh

cd /home/testerzhang/3rd/redis-6.2.6-cluster
cd 7000 && nohup ./redis-server ./redis.conf &
cd 7001 && nohup ./redis-server ./redis.conf &
cd 7002 && nohup ./redis-server ./redis.conf &

$ sh startcluster.sh

5.5 建立集群

$ cd 7000
$ ./redis-cli --cluster create 10.10.10.10:7000 10.10.10.10:7001 10.10.10.10:7002

输入yes,然后最后显示集群ok 就代表没问题了。

补充说明:这里因为没有3个从节点,如果有3个从节点记得加--cluster-replicas参数

$ ./redis-cli --cluster create 10.10.10.10:7000 10.10.10.10:7001 10.10.10.10:7002 --cluster-replicas 1

5.6 恢复配置文件密码

# 配置密码
requirepass testerzhang

5.7 重启redis集群服务

  • 杀掉3个节点进程,启动节点
$ pwd
/opt/testerzhang/3rd/redis4.0.2-cluster

$ sh -x startrediscluster.sh

显示集群ok 就代表没问题了

5.8 验证集群

$ ./redis-cli -h 10.10.10 -p 7000
127.0.0.1:7000> info
NOAUTH Authentication required.
127.0.0.1:7000> auth testerzhang
OK

127.0.0.1:7000> cluster nodes
fa34f9d19c3ab21d07ab5448bda6758430916ba4 127.0.0.1:7001@17001 master - 0 1637834278436 2 connected 5461-10922
9570b841669d5d2c33dc3403e601ffb42d4f1eb5 127.0.0.1:7000@17000 myself,master - 0 1637834277000 1 connected 0-5460
0e4acb186fae696f782b1822cb50c43815929677 127.0.0.1:7002@17002 master - 0 1637834276432 3 connected 10923-16383

本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

updatedupdated2021-11-252021-11-25