确保已搭建LNMP环境(Linux+nginx+MySQL+PHP),可通过包管理器安装基础组件:
sudo apt install nginx mysql-server php-fpmsudo yum install nginx mariadb-server php-fpm安装Redis服务端
# Ubuntu/Debian
sudo apt install redis-server
# CentOS/RHEL
sudo yum install redis
启动并设置开机自启:
sudo systemctl start redis-server
sudo systemctl enable redis-server
安装PHP Redis扩展
# 使用PECL安装
sudo pecl install redis
# 编辑php.ini(路径根据PHP版本调整)
echo "extension=redis.so" | sudo tee -a /etc/php/7.x/fpm/php.ini
sudo systemctl restart php-fpm
验证安装:创建phpinfo.php文件,访问页面确认redis模块已加载。
修改Redis配置文件
编辑/etc/redis/redis.conf:
bind 127.0.0.1(仅允许本地访问,生产环境建议限制IP)6379,可按需修改save 900 1(900秒内至少1次修改时生成快照)appendfsync everysec(每秒同步一次写操作)sudo systemctl restart redis-server(可选)配置Nginx与Redis交互
若需通过Nginx直接代理Redis(如API场景),在Nginx配置中添加:
location /redis/ {
proxy_pass http://127.0.0.1:6379;
proxy_set_header Host $host;
}
但通常建议通过PHP代码间接操作Redis,Nginx仅作为请求入口。
基础操作示例
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// 设置缓存(1小时过期)
$redis->set('user:1', json_encode(['name' => 'Alice']), 3600);
// 获取缓存
$user = $redis->get('user:1');
echo $user ? json_decode($user, true)['name'] : 'Cache Miss';
?>
支持数据类型:字符串、哈希、列表、集合等,可通过hSet、lPush等方法操作。
缓存应用场景
$_SESSION数据存入Redis,实现跨服务器共享(需配置PHP会话处理器为redis)。LPUSH/BRPOP实现简单队列,处理异步任务。安全配置
redis.conf中添加requirepass yourpassword,并在PHP代码中使用$redis->auth('yourpassword')。性能优化
redis.conf中的maxmemory参数,限制内存使用,避免OOM。redis-cli测试服务是否正常:redis-cli ping # 应返回"PONG"
redis-cli get user:1 # 查看缓存数据
参考来源: