CentOS7 源码安装redis 7.4.0

官方文档:https://redis.io/docs/getting-started/installation/install-redis-from-source/

开源地址:https://github.com/redis/redis

一、redis概念

Redis 是一个开源的内存数据结构存储系统,通常用作数据库、缓存和消息队列。它支持多种数据结构,包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)。Redis 的操作是基于内存的,具有非常高的性能,因此常用于需要快速访问和处理数据的场景。

Redis 还支持持久化,可以将内存中的数据异步地保存到硬盘中,防止数据丢失。它还提供了丰富的功能,如发布/订阅(Pub/Sub)、事务(Transactions)、Lua 脚本、键过期和 LRU(最近最少使用)驱逐策略等。

由于 Redis 是单线程的,它在处理单个请求时性能非常高,而且通过将任务划分到多个 Redis 实例中,可以水平扩展 Redis 的处理能力。Redis 常用于高速缓存、实时分析、会话管理、消息队列等场景。

二、安装redis

这里以下载 redis 7.4.0 为例。

1.下载并解压redis安装包

安装依赖项:

yum  install -y wget gcc

下载redis源码包并解压:

cd /usr/local/src
wget
wget https://github.com/redis/redis/archive/refs/tags/7.4.0.tar.gz
tar -xzf 7.4.0.tar.gz
cd redis-7.4.0

也可以官网安装:wget https://download.redis.io/redis-stable.tar.gz

2.编译并安装redis

通过运行 make 来编译 Redis:

make -j${nproc}

如果编译成功,会在 src 目录中显示很多 Redis 二进制文件,包括:

  • redis-server:指 Redis 服务器本身。

  • redis-cli:是与 Redis 对话的命令行界面实用程序。

安装 Redis,并指定安装在 /usr/local/redis 目录路径下:

make install PREFIX=/usr/local/redis

3.验证redis版本

进入 redis 安装目录,目录下只有一个 bin 目录,进入该目录,检查 redis 版本验证:

cd /usr/local/redis/bin

# 查看可执行文件
ll
# 列出文件信息
-rwxr-xr-x. 1 root root  6819344 Aug 24 01:10 redis-benchmark
lrwxrwxrwx. 1 root root       12 Aug 24 01:10 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root       12 Aug 24 01:10 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root  7800928 Aug 24 01:10 redis-cli
lrwxrwxrwx. 1 root root       12 Aug 24 01:10 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 16176656 Aug 24 01:10 redis-server

# 验证redis版本
./redis-server --version
# 显示版本信息
Redis server v=7.4.0 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=d523d183f220da8d

三、配置redis

1.创建redis数据目录

在 redis 安装目录下,创建所需的数据目录:

cd /usr/local/redis
mkdir {logs,data,conf}

2.复制redis配置文件

将 redis 源码包目录下的 redis.conf 配置文件复制到 redis 安装目录下的 conf 数据目录中:

cp -f /usr/local/src/redis-7.4.0/redis.conf /usr/local/redis/conf

3.修改redis配置文件

进入 /usr/local/redis/conf 目录,编辑 redis.conf 配置文件,修改以下内容:

cd /usr/local/redis/conf
# 修改以下内容
sed -i "s@daemonize no@daemonize yes@g" redis.conf
sed -i "s@bind 127.0.0.1 -::1@bind 0.0.0.0@g" redis.conf
sed -i "s@protected-mode yes@protected-mode no@g" redis.conf
sed -i "s@logfile \"\"@logfile \"/usr/local/redis/logs/redis.log\"@g" redis.conf
sed -i "s@dir ./@dir /usr/local/redis/data@g" redis.conf
sed -i "s@# requirepass foobared@requirepass redis2025@g" redis.conf

解释说明:

  • daemonize yes:修改为以守护进程模式运行,即 Redis 会在后台运行,允许终端关闭而 Redis 仍然继续运行。

  • protected-mode no:禁用 Redis 的保护模式,允许外部连接(确保启用安全措施如密码认证)。

  • logfile /usr/local/redis/log/redis.log:指定 Redis 日志文件的位置,将日志写入到指定的文件路径。

  • dir /usr/local/redis/data:设置 Redis 数据目录。

  • requirepass redis2025:设置 Redis 密码,所有连接到 Redis 的客户端都需要提供这个密码进行身份验证。

文件内容太多,可以过滤掉一些注释后进行查看:

egrep "^daemonize|^bind|^protected|^logfile|^dir|^requirepass" redis.conf

# 显示匹配信息
bind 0.0.0.0
protected-mode no
daemonize yes
logfile "/usr/local/redis/logs/redis.log"
dir /usr/local/redis/data
requirepass redis2025

4.创建redis软链接

将 redis 安装目录的 bin 目录下的可执行文件 redis-serverredis-cli 创建符号连接:

ln -s /usr/local/redis/bin/redis-server /usr/bin/redis-server
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis-cli

解释说明:

  • redis-server 是 Redis 数据库的主要服务进程。启动该程序会启动 Redis 服务器实例,它会监听客户端请求并处理数据存储和检索操作。
  • redis-cli 是 Redis 的命令行客户端工具,用于与 Redis 服务器进行交互。它允许用户通过命令行发送命令到 Redis 服务器,并查看结果。

5.临时启动redis服务

在前台临时启动和停止 Redis,直接执行以下命令:

redis-server

如果成功,会看到 Redis 的启动日志,并且 Redis 将在前台运行。要停止 Redis,请输入Ctrl-C。

6.配置启动服务

创建一个名为 redis.service 的 systemd 服务单元文件,用于管理 redis 服务,存放于/etc/systemd/system目录下,并添加以下内容:

cat > /etc/systemd/system/redis.service <<'EOF'
[Unit]
Description=redis-7.4.0
After=network.target

[Service]
User=root
Group=root
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

服务单元文件配置详解:

[Unit] 部分:

  • Description:描述了服务的简短描述信息。
  • After:指定该服务应该在 network.target 之后启动,也就是在网络服务启动之后启动 Redis 服务。这确保了 Redis 在系统的网络功能可用之后启动。

[Service] 部分:

  • User:指定以 root 用户身份运行该服务。

  • Group:指定以 root 用户组身份运行该服务。

  • Type:表示服务管理器是系统 init 的子进程,用于管理需要后台运行的服务。(本条配置必选)

  • ExecStart:该指令定义了服务启动时执行的命令。它运行 Redis 服务器,使用配置文件 /etc/redis.conf

  • ExecStop:停止服务的命令,这里是 /bin/kill -s TERM $MAINPID,发送 QUIT 信号给主进程。

    • /bin/kill:这是用来发送信号到进程的命令。kill 命令用于向指定的进程发送信号,可以用来终止进程、重启进程等。
    • -s TERM:指定要发送的信号类型。TERM 代表 SIGTERM(终止信号),这是一个请求程序优雅地终止的信号。进程可以处理 SIGTERM 信号并进行清理操作,然后正常退出。
    • $MAINPID:这是一个特殊的变量,代表服务主进程的进程 ID(PID)。在 systemd 中,$MAINPID 是系统自动填充的变量,指代由服务启动的主进程的 PID。
  • PrivateTmp:这是一个安全选项,如果设置为 true,则此服务将有一个独立的临时目录,与其他服务和用户隔离。

[Install] 部分:

  • WantedBy:定义该服务的目标,此处为 multi-user.target,表示该服务应该在多用户模式下启动(相当于系统启动后的默认运行级别)。

7.启动redis服务

systemctl start redis		#启动 Redis
systemctl enable redis		#启用 Redis 开机自启
systemctl status redis		#检查 Redis 服务状态
systemctl restart redis		#重启服务

启动如出现报错,使用以下命令查看具体报错:

journalctl -u redis -b

-u redis:限定只显示与 redis 服务相关的日志条目。redis 是服务名,和 redis.service 一样,指定要查看的服务。

-b:限定只显示当前引导(boot)周期内的日志,即从系统最近一次启动之后产生的日志。

四、测试redis客户端连接

可以使用 redis-cli 作为 Redis 客户端来连接到 Redis 服务器。以下是几种常见的连接方式:

1.本地连接

如果 Redis 服务器和客户端在同一台机器上运行,可以使用默认的本地连接:

redis-cli

这将默认连接到 localhost(127.0.0.1)上的 Redis 服务器,默认端口是 6379。docker部署的需要先进入docker容器内再执行。

2.指定 IP 地址和端口

如果 Redis 服务器在远程主机上,或者你需要指定端口,可以使用以下命令:

redis-cli -h <IP地址> -p <端口>
  • -h:指定 Redis 服务器的 IP 地址(本地使用 localhost127.0.0.1)。
  • -p:指定 Redis 服务器的端口,默认是 6379。

示例:

redis-cli -h 10.22.51.64 -p 6379

3.带密码连接

如果 Redis 服务器启用了密码验证,你需要使用 -a 选项来提供密码:

redis-cli -h <IP地址> -p <端口> -a <密码>

示例:

redis-cli -h 10.22.51.64 -p 6379 -a "123"

4.通过 Unix Socket 连接

如果 Redis 服务器通过 Unix 套接字提供服务,你可以通过套接字文件来连接:

redis-cli -s /path/to/redis.sock

示例:

redis-cli -s /var/run/redis/redis.sock

5.集群模式连接

如果你使用 Redis 集群,使用 redis-cli 的集群模式(带 -c 选项)进行连接:

redis-cli -c -h <IP地址> -p <端口>

示例:

redis-cli -c -h 10.22.51.64 -p 6381

6.测试连接

连接 Redis 后,你可以通过以下命令测试连接是否正常:

ping

如果连接成功,Redis 将返回 PONG

五、注意事项

redis 服务使用 netstat 命令无法查看到进程,可执行以下命令查看:

[root@localhost /root]# ps aux | grep redis
root     19821  0.7  0.1 241572  8800 ?        Ssl  02:28   0:03 /usr/local/redis/bin/redis-server 0.0.0.0:6379

六、扩展内容

  • Redis高可用部署:介绍Redis Sentinel和Redis Cluster两种常见的高可用部署方案,以保证Redis的可靠性和容错性。

  • Redis持久化配置:详细介绍Redis的持久化机制,包括RDB快照和AOF日志,以及如何根据实际需求进行配置。

  • Redis性能优化:提供一些常见的Redis性能优化技巧,包括使用连接池、合理设置过期时间、优化数据结构等。

  • Redis应用场景:介绍Redis在缓存、队列、实时分析等场景中的应用,并提供相应的最佳实践和示例代码。

  • Redis安全配置:讲解如何保护Redis的安全,包括密码认证、网络访问控制等方面的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值