Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。最近学习需要用到Redis,所以就去Linux服务器上部署一个,做下记录,方便以后需要参考
实验环境
- CentOS7
- Xshell6
- XFtp6
- Redis6.2.2
安装gcc依赖
Redis是基于C语言编写的,所以编译是需要gcc依赖的。Redis6.x.x版本支持了多线程,需要gcc的版本大于4.9,但是Centos7默认的版本是4.8.5,所以需要升级gcc的版本。
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
# 在当前base激活gcc版本,临时
scl enable devtoolset-9 bash
# 永久激活gcc版本,使其生效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
确认gcc版本
gcc -v
下载解压文件
下载地址:http://download.redis.io/releases/redis-6.2.2.tar.gz
wget http://download.redis.io/releases/redis-6.2.2.tar.gz
在/usr/local
目录下面新建一个redis
文件夹,将压缩文件也放在这里
cd /usr/local
mkdir redis
解压压缩文件
tar -xzf redis-6.2.2.tar.gz
编译安装
到/usr/local/redis/redis-6.2.2
目录下面,编译安装
# 到对应目录
cd /usr/local/redis/redis-6.2.2
# 编译,需要先安装好gcc
make
# 如果编译有问题,可以清除之前的编译结果
make -C /usr/local/redis/redis-6.2.2 distclean
# 安装redis,PREFIX指定安装目录,会在对应目录生成一个bin目录
make PREFIX=/usr/local/redis install
安装成功后,会在对应目录生成一个bin目录,bin目录下面放redis启动相关的脚本
环境变量配置
vi /etc/profile
后面加上
export PATH=$PATH:/usr/local/redis/bin
使配置生效
source /etc/profile
which
校验环境变量是否设置成功
[root@localhost redis-6.2.2]# which redis-server
/usr/local/redis/bin/redis-server
设置开机启动
编辑配置文件
# 到redis-6.2.2目录
cd /usr/local/redis/redis-6.2.2
# 复制一份配置文件到对应目录
cp redis.conf /usr/local/redis/config/redis.conf
# 到这个目录
cd /usr/local/redis/config
# 编辑配置文件
vi redis.conf
修改redis.conf
,使redis可以支持后台运行,设置好之后按ESC
退出,输入:wq!
保存退出
# 设置redis启动在后台运行
daemonize yes
上面的设置是为了方便redis开机启动,下面设置一下redis开机启动
# 到对应目录
cd /usr/local/redis/redis-6.2.2
# 复制redis初始化脚本到init.d启动目录
cp utils/redis_init_script /etc/init.d/redis
# 添加执行权限
chmod +x /etc/rc.d/init.d/redis
# 修改启动文件
cd /etc/init.d & vi redis
修改EXEC
、CLIEXEC
、CONF
这3个参数,分别表示redis-server
位置,redis-cli
位置和redis.conf
的位置
设置redis开机启动命令
chkconfig redis on
校验是否配置成功
chkconfig --list
可以使用reboot
重启linux系统,ps -elf|grep redis
查看redis是否可以开机启动
设置redis允许远程访问
允许Redis远程访问,需要对前面说到的redis.conf
进行配置,vi /usr/local/redis/config/redis.conf
,先将protected-mode
这个参数对应的值改为no
,然后注释bind 127.0.0.1
,注释127.0.0.1
是允许所有的IP
访问,当然生产不可以直接设置
# 注释这行
bind 127.0.0.1
# 允许外部网络直接访问,设置protected-mode为no
protected-mode no
开放防火墙端口
# 防火墙开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 重启防火墙
firewall-cmd --reload
redis启动
启动服务端
redis-server /usr/local/redis/config/redis.conf
启动客户端
redis-cli -p 6379