Redis与MySQL在Linux服务器上的部署与使用指南(适合新手)
Redis与MySQL在Linux服务器上的部署与使用指南(适合新手)

Redis与MySQL在Linux服务器上的部署与使用指南(适合新手)

数据库示意图

一、环境准备

1.1 系统要求

  • 推荐使用 Ubuntu 22.04/CentOS 8 及以上版本
  • 至少1GB可用内存
  • 已配置好SSH连接

1.2 初始设置

# 更新系统软件包
sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
# 或
sudo yum update -y                      # CentOS/RHEL

# 安装常用工具
sudo apt install -y wget curl vim       # Ubuntu
sudo yum install -y wget curl vim       # CentOS

二、MySQL部署指南

2.1 安装MySQL

# Ubuntu
sudo apt install -y mysql-server

# CentOS
sudo yum install -y mysql-server

2.2 初始配置

# 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 安全设置(交互式配置)
sudo mysql_secure_installation

按照提示设置root密码,建议:

  1. 选择强密码验证策略(建议选0)
  2. 移除匿名用户(Y)
  3. 禁止远程root登录(Y)
  4. 移除测试数据库(Y)

2.3 基础使用

# 登录MySQL
mysql -u root -p

-- 创建数据库示例
CREATE DATABASE mydb;
USE mydb;

-- 创建用户并授权
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;

三、Redis部署指南

3.1 安装Redis

# Ubuntu
sudo apt install -y redis-server

# CentOS
sudo yum install -y redis

3.2 基础配置

# 修改配置文件
sudo vim /etc/redis/redis.conf

# 建议修改项:
# 1. 设置密码(取消注释requirepass)
requirepass your_strong_password
# 2. 绑定本地访问(生产环境需配置防火墙)
bind 127.0.0.1

3.3 服务管理

# 重启服务使配置生效
sudo systemctl restart redis
sudo systemctl enable redis

# 查看运行状态
systemctl status redis

3.4 基础使用

# 命令行连接
redis-cli
AUTH your_strong_password  # 认证

# 基础命令示例
SET greeting "Hello, Redis!"
GET greeting
EXPIRE greeting 60  # 设置60秒过期

四、联合使用场景示例

4.1 缓存数据库查询结果

import redis
import mysql.connector

# 初始化连接
r = redis.Redis(host='localhost', password='your_redis_password')
db = mysql.connector.connect(
    host="localhost",
    user="myuser",
    password="mypassword",
    database="mydb"
)

def get_user(user_id):
    # 先查Redis缓存
    cache_key = f"user:{user_id}"
    cached_data = r.get(cache_key)

    if cached_data:
        return cached_data.decode('utf-8')

    # 缓存未命中则查询数据库
    cursor = db.cursor()
    cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
    result = cursor.fetchone()

    # 写入Redis缓存(设置30分钟过期)
    r.setex(cache_key, 1800, str(result))
    return result

五、安全加固建议

  1. MySQL安全措施
  • 定期备份数据库
  • 为每个应用创建独立用户
  • 启用防火墙限制访问
   sudo ufw allow 3306/tcp  # 谨慎开放远程访问
  1. Redis安全措施
  • 禁用危险命令
   # 在redis.conf添加:
   rename-command FLUSHALL ""
   rename-command CONFIG ""
  • 定期更新到最新版本
  • 启用保护模式

六、常见问题排查

  1. MySQL无法启动
   # 查看错误日志
   tail -n 50 /var/log/mysql/error.log
  1. Redis连接失败
   # 测试端口连通性
   redis-cli -h 127.0.0.1 -a your_password PING
  1. 忘记MySQL root密码
   sudo systemctl stop mysqld
   sudo mysqld_safe --skip-grant-tables &
   mysql -u root
   # 执行 UPDATE mysql.user SET authentication_string=... 后重启

七、学习资源推荐

提示:部署完成后建议进行压力测试,可使用mysqlslapredis-benchmark工具验证性能

架构示意图
(图示:典型Web应用中的数据库架构,Redis作为缓存层,MySQL作为持久化存储层)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注