Linux系统下安装使用Redis

文章目录

我们将从最基础的编译安装开始,并涵盖使用包管理器安装以及基本配置和使用。


第一部分:安装 Redis

有两种主流方式:使用包管理器(简单快捷)和手动编译安装(能获取最新版本)。

方法一:使用包管理器安装(推荐新手)

这是最简单、最快速的方法,适合绝大多数情况。

在 Ubuntu/Debian 上:

  1. 更新软件包列表:

    bash 复制代码
    sudo apt update
  2. 安装 Redis:

    bash 复制代码
    sudo apt install redis-server
  3. 安装完成后,Redis 服务会自动启动。 你可以通过以下命令检查状态:

    bash 复制代码
    sudo systemctl status redis-server

    如果看到 active (running) 表示安装成功且服务已启动。

在 CentOS/RHEL/Fedora 上:

  1. 首先启用 EPEL 仓库(对于 RHEL/CentOS):

    bash 复制代码
    # 对于 CentOS/RHEL
    sudo yum install epel-release
    # 或者对于新版本的 CentOS/RHEL
    sudo dnf install epel-release
  2. 安装 Redis:

    bash 复制代码
    # 使用 yum (旧版本)
    sudo yum install redis
    # 或使用 dnf (新版本)
    sudo dnf install redis
  3. 启动并启用 Redis 服务(开机自启):

    bash 复制代码
    sudo systemctl start redis
    sudo systemctl enable redis
  4. 检查状态:

    bash 复制代码
    sudo systemctl status redis

方法二:手动编译安装(获取最新版本)

当包管理器提供的版本过旧时,可以使用此方法。

  1. 安装编译依赖:

    bash 复制代码
    # Ubuntu/Debian
    sudo apt update
    sudo apt install build-essential tcl
    
    # CentOS/RHEL
    sudo yum groupinstall "Development Tools"
    sudo yum install tcl
  2. 下载并解压 Redis 源码:

    访问 Redis.io 获取最新稳定版链接。

    bash 复制代码
    # 进入临时目录
    cd /tmp
    # 下载 (请将 7.2.4 替换为最新版本号)
    wget https://download.redis.io/releases/redis-7.2.4.tar.gz
    # 解压
    tar -xzvf redis-7.2.4.tar.gz
    # 进入解压后的目录
    cd redis-7.2.4
  3. 编译和安装:

    bash 复制代码
    # 编译
    make
    # 测试编译结果(可选,但推荐)
    make test
    # 安装到系统目录(默认是 /usr/local/bin)
    sudo make install
  4. 创建配置和运行目录(推荐):

    bash 复制代码
    # 创建配置目录
    sudo mkdir /etc/redis
    # 创建数据目录
    sudo mkdir /var/lib/redis
    # 将源码包中的示例配置文件复制到 /etc/redis
    sudo cp /tmp/redis-7.2.4/redis.conf /etc/redis/
  5. 以服务方式运行(Systemd):

    • 创建一个 systemd 服务文件:

      bash 复制代码
      sudo vim /etc/systemd/system/redis.service
    • 将以下内容粘贴到文件中:

      ini 复制代码
      [Unit]
      Description=Redis In-Memory Data Store
      After=network.target
      
      [Service]
      User=redis
      Group=redis
      ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
      ExecStop=/usr/local/bin/redis-cli shutdown
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
    • 创建一个专用的 Redis 用户和组,并设置目录权限:

      bash 复制代码
      sudo adduser --system --group --no-create-home redis
      sudo chown redis:redis /var/lib/redis
      sudo chmod 770 /var/lib/redis
    • 重新加载 systemd 并启动服务:

      bash 复制代码
      sudo systemctl daemon-reload
      sudo systemctl start redis
      sudo systemctl enable redis
      sudo systemctl status redis

第二部分:基本配置

Redis 的主要配置文件是 /etc/redis/redis.conf(包管理器安装)或 /etc/redis/redis.conf(手动安装)。

常用配置项修改:

  1. 绑定 IP: 默认只允许本地连接。要允许远程连接,需要修改:

    bash 复制代码
    sudo vim /etc/redis/redis.conf

    找到 bind 指令:

    • bind 127.0.0.1 -::1 表示只允许本地连接。
    • 将其注释掉 # bind 127.0.0.1 -::1 或改为 bind 0.0.0.0 即可允许任何 IP 连接。(警告:生产环境这样做需配合防火墙或密码认证!
  2. 设置密码: 增加安全性。

    在配置文件中找到 # requirepass foobared 这一行,取消注释并将 foobared 改为你的强密码。

    复制代码
    requirepass your_strong_password_here
  3. 守护进程模式: 确保 Redis 在后台运行。

    确保 daemonize 设置为 yes

    复制代码
    daemonize yes
  4. 数据持久化: Redis 提供了 RDB 快照和 AOF 日志两种方式。默认 RDB 已开启。你可以在配置文件中调整 save 规则或开启 AOF:

    复制代码
    appendonly yes
  5. 配置目录: 确保持久化文件存放在正确目录。

    复制代码
    dir /var/lib/redis

每次修改配置文件后,都需要重启 Redis 服务才能生效:

bash 复制代码
# 包管理器安装
sudo systemctl restart redis-server  # Ubuntu/Debian
sudo systemctl restart redis        # CentOS/RHEL

# 手动安装
sudo systemctl restart redis

第三部分:使用 Redis

1. 连接 Redis 服务器

本地连接(无密码):

bash 复制代码
redis-cli

你会看到提示符变成 127.0.0.1:6379>

本地连接(有密码):

bash 复制代码
redis-cli
# 连接后使用 AUTH 命令认证
127.0.0.1:6379> AUTH your_password
OK

或者一步到位:

bash 复制代码
redis-cli -a your_password

远程连接:

bash 复制代码
redis-cli -h remote_host_ip -p port -a your_password

2. 基本命令示例

redis-cli 交互界面中,可以执行以下命令进行测试:

  • PING: 测试连接是否正常。

    复制代码
    127.0.0.1:6379> PING
    PONG
  • 设置和获取键值对:

    复制代码
    127.0.0.1:6379> SET mykey "Hello, Redis!"
    OK
    127.0.0.1:6379> GET mykey
    "Hello, Redis!"
  • 检查键是否存在:

    复制代码
    127.0.0.1:6379> EXISTS mykey
    (integer) 1  # 表示存在
  • 设置过期时间:

    复制代码
    127.0.0.1:6379> SET session:user123 "some_data" EX 3600  # 3600秒后过期
    OK
  • 使用列表:

    复制代码
    127.0.0.1:6379> LPUSH mylist "world"
    (integer) 1
    127.0.0.1:6379> LPUSH mylist "hello"
    (integer) 2
    127.0.0.1:6379> LRANGE mylist 0 -1
    1) "hello"
    2) "world"
  • 使用集合:

    复制代码
    127.0.0.1:6379> SADD myset "apple"
    (integer) 1
    127.0.0.1:6379> SADD myset "banana"
    (integer) 1
    127.0.0.1:6379> SMEMBERS myset
    1) "banana"
    2) "apple"
  • 查看信息:

    复制代码
    127.0.0.1:6379> INFO keyspace  # 查看数据库键空间信息
    127.0.0.1:6379> INFO server    # 查看服务器信息
  • 关闭 Redis 服务器:

    复制代码
    127.0.0.1:6379> SHUTDOWN

3. 数据持久化检查

Redis 的数据文件(dump.rdbappendonly.aof)会保存在配置中 dir 指定的目录(如 /var/lib/redis)。

bash 复制代码
sudo ls -l /var/lib/redis/

第四部分:安全与防火墙

  1. 配置防火墙: 如果开启了远程访问,务必使用防火墙限制访问 IP。

    bash 复制代码
    # Ubuntu/Debian (使用 ufw)
    sudo ufw allow from your_trusted_ip to any port 6379
    sudo ufw enable
    
    # CentOS/RHEL (使用 firewalld)
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="your_trusted_ip" port protocol="tcp" port="6379" accept'
    sudo firewall-cmd --reload
  2. 使用强密码: 这是最基本的安全措施。

  3. 重命名危险命令: 在生产环境中,可以考虑在 redis.conf 中重命名或禁用如 FLUSHALLCONFIG 等危险命令。

    复制代码
    rename-command FLUSHALL ""
    rename-command CONFIG ""

总结

通过以上步骤,你应该已经成功在 Linux 上安装、配置并运行了 Redis,并学会了基本操作。对于生产环境,请务必仔细阅读官方文档并加强安全配置。

相关推荐
AuroBreeze3 小时前
xv6-2023 - primes Lab
linux·运维·服务器
DIY机器人工房4 小时前
NAT 模式、命令行版、桥接模式方式给ubuntu虚拟机配网步骤:
linux·网络协议·ubuntu·嵌入式·桥接模式·diy机器人工房
wdfk_prog4 小时前
[Linux]学习笔记系列 -- lib/sort.c 通用的排序库(Generic Sorting Library) 为内核提供标准的、高效的排序功能
linux·运维·c语言·笔记·stm32·学习·bug
jump_jump4 小时前
前端部署工具 PinMe
运维·前端·开源
黑马金牌编程5 小时前
简易分析慢 SQL 的流程和方法
linux·数据库·mysql·性能优化·性能分析·慢日志
什么半岛铁盒5 小时前
C++项目:仿muduo库高并发服务器---------LoopThreadPool模块和TcpServer模块的实现
linux·服务器·c++·mysql·ubuntu
それども5 小时前
本地怎么远程调试服务器
运维·服务器
Lin_Aries_04216 小时前
容器化 Flask 应用程序
linux·后端·python·docker·容器·flask
鹏大师运维7 小时前
麒麟系统中修改 WPS 默认新建文件格式的方法
linux·操作系统·wps·docx·麒麟·word文档·excel文档