在Linux系统中使用Redis作为缓存组件,能够有效降低数据库访问压力,提升应用整体响应效率。接下来将详细介绍从安装到基础使用的完整流程。

Redis安装与启动
首先需要在Linux系统中完成Redis的安装,不同发行版的安装方式略有差异,以下是常见发行版的安装命令:
Ubuntu/Debian系统安装
# 更新软件源 sudo apt update # 安装Redis sudo apt install redis-server -y # 启动Redis服务 sudo systemctl start redis-server # 设置开机自启 sudo systemctl enable redis-server
CentOS/RHEL系统安装
# 安装EPEL源 sudo yum install epel-release -y # 安装Redis sudo yum install redis -y # 启动Redis服务 sudo systemctl start redis # 设置开机自启 sudo systemctl enable redis
安装完成后可以通过redis-cli命令连接本地Redis服务,验证是否安装成功:
redis-cli # 执行ping命令,返回PONG说明连接正常 127.0.0.1:6379> ping PONG
Redis核心配置调整
Redis的默认配置文件路径通常为/etc/redis/redis.conf,可以根据缓存需求调整以下核心配置项:
- bind:默认绑定127.0.0.1,若需要远程访问可修改为0.0.0.0,生产环境建议配合密码使用
- port:默认端口为6379,可根据需求修改
- requirepass:设置Redis访问密码,提升安全性
- maxmemory:设置Redis最大使用内存,避免占用过多系统资源
- maxmemory-policy:设置内存满时的淘汰策略,常用值有
allkeys-lru(淘汰最近最少使用的键)
修改配置后需要重启Redis服务使配置生效:
# Ubuntu/Debian系统 sudo systemctl restart redis-server # CentOS/RHEL系统 sudo systemctl restart redis
Redis缓存基础操作
连接Redis后可以通过redis-cli执行各类缓存操作,以下是常用的缓存命令:
字符串类型缓存操作
字符串是Redis最基础的数据类型,适合存储简单的键值对缓存数据:
# 设置缓存,key为user_1,value为用户信息,过期时间300秒
127.0.0.1:6379> SET user_1 "{"id":1,"name":"test_user"}" EX 300
OK
# 获取缓存
127.0.0.1:6379> GET user_1
"{"id":1,"name":"test_user"}"
# 删除缓存
127.0.0.1:6379> DEL user_1
(integer) 1
# 查看缓存剩余过期时间,返回-2表示键不存在,-1表示永不过期
127.0.0.1:6379> TTL user_1
(integer) -2
哈希类型缓存操作
哈希类型适合存储结构化的对象数据,无需序列化整个对象,可单独操作某个字段:
# 设置哈希缓存,存储用户信息 127.0.0.1:6379> HSET user_2 id 2 name "zhangsan" age 20 (integer) 3 # 获取单个字段 127.0.0.1:6379> HGET user_2 name "zhangsan" # 获取所有字段和值 127.0.0.1:6379> HGETALL user_2 1) "id" 2) "2" 3) "name" 4) "zhangsan" 5) "age" 6) "20" # 设置哈希缓存过期时间 127.0.0.1:6379> EXPIRE user_2 600 (integer) 1
应用层调用Redis缓存示例
以Python应用为例,使用redis-py库调用Redis缓存,实现查询数据时优先读缓存的逻辑:
import redis
import json
# 连接Redis,若有密码需添加password参数
redis_client = redis.Redis(host='127.0.0.1', port=6379, password='your_redis_password', db=0)
def get_user_info(user_id):
# 先查询缓存
cache_key = f"user_{user_id}"
cache_data = redis_client.get(cache_key)
if cache_data:
# 缓存存在,直接返回
return json.loads(cache_data)
# 缓存不存在,查询数据库(此处模拟数据库查询)
user_info = {"id": user_id, "name": "test_user", "age": 25}
# 将查询结果写入缓存,过期时间300秒
redis_client.setex(cache_key, 300, json.dumps(user_info))
return user_info
# 调用函数测试
print(get_user_info(1))
缓存使用注意事项
- 缓存键命名建议添加业务前缀,避免不同业务的键名冲突
- 缓存过期时间需要根据业务数据更新频率合理设置,避免缓存脏数据
- 生产环境务必设置Redis访问密码,避免未授权访问导致数据泄露
- 若缓存数据量较大,建议开启Redis持久化功能,避免服务重启后缓存全部丢失
- 避免缓存大对象,过大的缓存值会影响Redis的读写性能