Ubuntu Python 使用 Redis 缓存

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

5. 参考

相关推荐
susu10830189112 小时前
ubuntu系统删除 Docker 启动的所有容器、卸载 Docker 以及清理 Docker 相关保留路径
ubuntu·docker·eureka
徐先生 @_@|||2 小时前
三式掌握知识法
java·python
黎雁·泠崖2 小时前
C 语言联合体与枚举:共用内存 + 常量枚举 + 实战
c语言·开发语言·python
yousuotu2 小时前
基于Python实现亚马逊销售数据分析与预测
开发语言·python·数据分析
m0_462605222 小时前
第N11周:seq2seq翻译实战-Pytorch复现
人工智能·pytorch·python
qq_393060472 小时前
在WSL2的Jupyter中正确显示中文字体seaborn覆盖plt的问题
ide·python·jupyter
张登杰踩2 小时前
django后台管理配置教程
后端·python·django
laocooon5238578862 小时前
对传入的 x , y 两个数组做折线图, x 对应 x 轴, y 对应 y 轴。并保存到 Task1/image1/T2.png
python·numpy·pandas·matplotlib
羽飞2 小时前
GCC ABI炸弹
linux·c++·python