Redis(Remote Dictionary Server) 是一个开源的 ANSI C 语言编写的 key-value 形式内存数据存储,我们可以使用它作为内存数据库、缓存、流式引擎或消息队列等。
官网地址:Redis官网地址
Redis 既可以当做主数据库,也可以当作辅助数据库。应用场景:缓存加速、分布式会话、排行榜场景、分布式计数器、分布式锁等。
我们都是开发者,建议大家使用开源产品进行环境搭建。如果大家已经搭建了Linux环境,这一步骤可以跳过。我使用 VBOX + Vagrant 进行虚拟机环境管理。
# 初始化 centos 7 配置
vagrant init centos/7
# 启动 centos 7
vagrant up
# ssh 登录到 Linux 虚拟机
vagrant ssh
vagrant Linux 虚拟机默认 root 账号密码为:vagrant
# 下载开发工具,使用 scl 开发套件
yum install wget -y
yum install devtoolset-11-gcc-c++ devtoolset-11-gcc devtoolset-11-gdb devtoolset11-build -y
yum install python3
# 使环境生效
scl enable devtoolset-11 bash
# 查看 gcc 版本
gcc --version
# 下载源代码
wget https://github.com/redis/redis/archive/7.0.9.tar.gz
# 解压代码
tar xf 7.0.9.tar.gz
需要注意:如果不指定安装目录,默认安装在 /usr/local/bin 目录
# 切换到源码目录
cd redis-7.0.9/
# 编译 编译时可以指定编译参数:
make -j 4
# 安装
make install PREFIX=/opt/redis
# 创建配置文件目录
mkdir -p /opt/redis/conf
# 拷贝配置文件
cp /opt/redis-7.0.9/redis.conf /opt/redis/config/redis.conf
# 启动redis 服务
/opt/redis/bin/redis-sever /opt/redis/config/redis.conf
1、修改 redis.conf 文件
daemonize yes
2、启动 Redis
/opt/redis/bin/redis-sever /opt/redis/config/redis.conf
1、要想让 Redis-Server 交友 Systemd来管理,比如添加 service 配置文件
vi /etc/systemd/system/redis.service
[Unit]
Description=Redis data structure server
Documentation=https://redis.io/documentation
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/opt/redis/bin/redis-server /opt/redis/config/redis.conf
LimitNOFILE=10032
NoNewPrivileges=yes
#OOMScoreAdjust=-900
#PrivateTmp=yes
Type=simple
[Install]
WantedBy=multi-user.target
# 重新加载后台进程配置
systemctl daemon-reload
# 启动服务项
systemctl start redis.service
# 查看服务状态
systemctl status redis.service
如果启动失败,可以通过 journalctl -xe 或者 journalctl -u redis 来查看详细日志。如果提示权限不足,我们可以验证一下 ExecStart 配置是否正确。
如果提示不能打开 redis.conf 可能就需要对 文件添加权限。
2、也可以在编译的时候添加参数
make USE_SYSTEMD=yes -j 4
设置了上述参数,就需要使用到 python3 的依赖
3、如果编译报错:如下错误就是需要安装 systemd开发库
[root@localhost redis-7.0.9]# make USE_SYSTEMD=yes
cd src && make all
make[1]: Entering directory `/opt/redis-7.0.9/src'
CC Makefile.dep
make[1]: Leaving directory `/opt/redis-7.0.9/src'
make[1]: Entering directory `/opt/redis-7.0.9/src'
CC adlist.o
CC quicklist.o
CC ae.o
CC anet.o
CC dict.o
CC server.o
In file included from server.c:30:
server.h:57:10: fatal error: systemd/sd-daemon.h: No such file or directory
57 | #include
| ^~~~~~~~~~~~~~~~~~~~~
#Centos 7
yum install systemd-devel
# Ubuntu
apt-get install libsystemd-dev