Redis系列:Linux下部署Redis 6.x 版本

2020-09-14 10:29:11 浏览数 (1)

现在的互联网项目无论项目大小,都或多或少使用到Redis。其中Redis最常见的使用场景:
  • 不经常变化的数据缓存
  • 分布式session,主要是记录用户的登录状态
  • 分布式锁,主要对独占资源的锁定

Redis有多种部署模式,本篇先介绍一下单机部署

0x01:下载Redis

代码语言:javascript复制
官网:https://redis.io/

从下载链接进去,可以发现提供了三个版本:非稳定版本、稳定版本和Docker版本

直接下载稳定版本

代码语言:javascript复制
wget http://download.redis.io/releases/redis-6.0.7.tar.gz

0x02:安装Redis

编译 redis-6.x,要求 C11 编译器,否则会遇到大量如下所示的错误:

代码语言:javascript复制
server.h:1051:5: 错误:expected specifier-qualifier-list before ‘_Atomic’
server.c:1032:31: 错误:‘struct redisServer’没有名为‘logfile’的成员

主要原因是从 redis-6.x 开始的多线程代码依赖C标准库中的新增类型 _Atomic 。但是注意 gcc 从 4.9 版本才开始正式和完整地支持 stdatomic(gcc-4.8.5 部分支持)。centos7默认的 gcc 版本为:4.8.5 < 5.3 无法编译

代码语言:javascript复制
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c   devtoolset-9-binutils

#临时有效,退出 shell 或重启会恢复原 gcc 版本
scl enable devtoolset-9 bash

#长期有效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
  • 解压redis-6.0.7.tar.gz ,并把redis-6.0.7目录移动到/usr/local目录
代码语言:javascript复制
tar -zxvf redis-6.0.7.tar.gz 
mv redis-6.0.7 /usr/local
cd /usr/local/redis-6.0.7/
  • 编译
代码语言:javascript复制
make
cd /usr/local/redis-6.0.7/src
make install PREFIX=/usr/local/redis

最终会安装到/usr/local/redis目录下

  • 移动配置文件到安装目录下
代码语言:javascript复制
cd /usr/local/redis-6.0.7/
mkdir /usr/local/redis/etc
cp redis.conf  /usr/local/redis/etc/

0x03:启动Redis

  • 对redis.conf配置文件进行修改
代码语言:javascript复制
vi /usr/local/redis/etc/redis.conf 

将daemonize no 改成daemonize yes,表示后台启动的意思

  • 配置redis开机启动
代码语言:javascript复制
vi /etc/rc.local 

在里面添加内容: (意思就是开机调用这段开启redis的命令)

代码语言:javascript复制
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
  • 启动Redis
代码语言:javascript复制
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

将redis-cli、redis-server命令拷贝到/usr/local/bin目录下,让这两个命令可以在任意目录下直接使用

代码语言:javascript复制
cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/

0x04:Redis基本使用

  • 启动
代码语言:javascript复制
redis-server /usr/local/redis/etc/redis.conf 
  • 停止
代码语言:javascript复制
pkill redis
  • 卸载
代码语言:javascript复制
#删除安装目录
rm -rf /usr/local/redis
#删除所有redis相关命令脚本
rm -rf /usr/bin/redis-* 
  • 验证redis服务是否启动成功
代码语言:javascript复制
redis-cli

0 人点赞