Redis通常用作缓存系统,提高应用程序性能
1. 安装
1.1 使用APT包管理器安装
bash
# 更新包列表
$ sudo apt update
# 安装Redis服务器
$ sudo apt install redis-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
redis-server is already the newest version (5:5.0.7-2ubuntu0.1).
0 upgraded, 0 newly installed, 0 to remove and 44 not upgraded.
1.2 验证安装
bash
# 检查Redis版本
$ redis-server --version
Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=66bd629f924ac924
# 检查Redis服务状态
$ $ sudo systemctl status redis-server
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025-12-26 18:25:11 CST; 1h 9min ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 134633 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
Main PID: 134634 (redis-server)
Tasks: 4 (limit: 18804)
Memory: 4.0M
CGroup: /system.slice/redis-server.service
└─134634 /usr/bin/redis-server 127.0.0.1:6379
12月 26 18:25:11 xjg systemd[1]: Starting Advanced key-value store...
12月 26 18:25:11 xjg systemd[1]: redis-server.service: Can't open PID file /run/redis/redis-server.pid (>
12月 26 18:25:11 xjg systemd[1]: Started Advanced key-value store.
...
2.启动和配置Redis服务
2.1 启动Redis服务
bash
# 启动Redis服务
$ sudo systemctl start redis-server
# 设置Redis开机自启
$ sudo systemctl enable redis-server
2.2 基本配置
Redis的主配置文件位于/etc/redis/redis.conf
bash
# 打开配置文件
$ sudo nano /etc/redis/redis.conf
常用配置项:
bash
# 绑定IP地址(默认只允许本地连接)
bind 127.0.0.1
# 端口号(默认6379)
port 6379
# 设置密码(可选,提高安全性)
# 取消注释并修改为自己的密码
requirepass your_password
# 持久化配置
save 900 1 # 900秒内至少有1个key改变则保存
save 300 10 # 300秒内至少有10个key改变则保存
save 60 10000 # 60秒内至少有10000个key改变则保存
修改配置后重启Redis:
bash
sudo systemctl restart redis-server
3. Redis基本使用
3.1 连接Redis
bash
# 连接到本地Redis
$ redis-cli
# 如果设置了密码,连接后需要认证
$ redis-cli
AUTH your_password_here
# 或者一次性连接并认证
redis-cli -a your_password_here
3.2 基本命令
bash
# 测试连接
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"
# 设置带过期时间的键(10秒后过期)
127.0.0.1:6379> SETEX mytempkey 10 "This will expire in 10 seconds"
OK
# 查看所有键
127.0.0.1:6379> KEYS *
1) "foo"
2) "mykey"
3) "user:1"
4) "mylist"
# 删除键
127.0.0.1:6379> DEL mykey
(integer) 1
# 查看键的类型
127.0.0.1:6379> TYPE mykey
none
# 检查键是否存在
127.0.0.1:6379> EXISTS mykey
(integer) 0
# 设置过期时间(秒)
127.0.0.1:6379> EXPIRE mykey 60
(integer) 0
# 查看剩余过期时间
127.0.0.1:6379> TTL mykey
(integer) -2
3.3 数据类型
- 字符串(String)
bash
SET user:1 "John Doe"
GET user:1
- 哈希(Hash)
bash
HSET user:1 name "John Doe"
HSET user:1 email "john@example.com"
HGET user:1 name
HGETALL user:1
- 列表(List)
bash
LPUSH mylist "item1"
LPUSH mylist "item2"
LRANGE mylist 0 -1 # 获取所有元素
- 集合(Set)
bash
SADD myset "member1"
SADD myset "member2"
SMEMBERS myset
- 有序集合(Sorted Set)
bash
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZRANGE myzset 0 -1 WITHSCORES
3.4 退出
- 使用QUIT命令
bash
127.0.0.1:6379> QUIT
- 使用EXIT命令
bash
127.0.0.1:6379> EXIT
- 使用快捷键
bash
# 按Ctrl+C
Ctrl+C
# 按Ctrl+D
Ctrl+D
4. Redis管理工具
4.1 命令行监控
bash
# 实时监控Redis命令
$ redis-cli monitor
(error) NOAUTH Authentication required.
...
# 查看Redis信息
$ redis-cli info
NOAUTH Authentication required.
# 查看慢查询日志
$ redis-cli slowlog get 10
(error) NOAUTH Authentication required.
4.2 图形界面工具
bash
# 安装Redis Commander(Web界面)
$ npm install -g redis-commander
# 没有设置密码
$ redis-commander
# 设置密码
$ redis-commander --redis-password
# 使用完整连接参数
$ redis-commander --redis-host localhost --redis-port 6379 --redis-password your_password --redis-db 0
# 然后在浏览器访问 http://localhost:8081

4. python使用Redis
在项目目录下创建.env文件:
bash
# 在项目根目录下
nano .env
添加以下内容:
bash
# Redis缓存配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=your_password
代码:
python
import os
import redis
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 从环境变量获取配置
redis_client = redis.Redis(
host=os.getenv('REDIS_HOST', 'localhost'),
port=int(os.getenv('REDIS_PORT', 6379)),
db=int(os.getenv('REDIS_DB', 0)),
password=os.getenv('REDIS_PASSWORD'),
socket_timeout=5
)
# 测试连接
try:
redis_client.ping()
print("Redis连接成功!")
# 获取Redis信息
info = redis_client.info()
print(f"Redis版本: {info.get('redis_version', 'Unknown')}")
print(f"使用内存: {info.get('used_memory_human', 'Unknown')}")
except redis.ConnectionError:
print("Redis连接失败!")
输出;
bash
Redis连接成功!
Redis版本: 5.0.7
使用内存: 880.83K