欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > docker 部署 redis

docker 部署 redis

2024/12/21 23:53:13 来源:https://blog.csdn.net/itnerd/article/details/144445260  浏览:    关键词:docker 部署 redis

docker 部署 redis

1. 下载 redis 镜像

# docker images | grep redis
bitnami/redis                  7.2.4-debian-11-r5   45de196aef7e   10 months ago   95.2MB

2. docker-compose 部署

version: "3"
services:redis:image: bitnami/redis:7.2.4-debian-11-r5#ports:#  - "6379:6379"environment:- REDIS_PASSWORD=redisisthebestnetworks:- mynetvolumes:- "/data/docker_data/redis/conf:/opt/bitnami/redis/etc"- "/data/docker_data/redis/data:/bitnami/redis/data"networks:mynet:external: false

注意:挂载data目录增加宿主机上incr.aof的写权限,
在这里插入图片描述
否则redis启动报错
在这里插入图片描述

python 操作 redis

在 Python 中连接和操作 Redis 数据库,通常使用 redis-py 库。以下是连接 Redis 的基本步骤和示例代码。

1. 安装 redis-py

首先,你需要安装 redis-py 库。可以使用 pip 来安装:

pip install redis

2. 连接到 Redis

以下是连接到本地 Redis 服务器的示例代码:

import redis# 创建 Redis 连接
r = redis.Redis(host='localhost',  # Redis 服务器地址port=6379,         # Redis 端口db=0,              # 数据库编号password=None      # 如果 Redis 设置了密码,填写密码
)# 测试连接
try:r.ping()  # 发送 PING 命令,检查是否连接成功print("Connected to Redis!")
except redis.ConnectionError:print("Failed to connect to Redis.")

3. 基本操作

以下是一些常见的 Redis 操作示例:

设置和获取键值对
# 设置键值对
r.set('name', 'Alice')# 获取键值对
name = r.get('name')
print(name.decode('utf-8'))  # 输出: Alice
删除键
r.delete('name')
检查键是否存在
exists = r.exists('name')
print(exists)  # 输出: 0 (不存在) 或 1 (存在)
设置过期时间
r.set('key', 'value')
r.expire('key', 10)  # 设置键在 10 秒后过期
获取所有键
keys = r.keys('*')  # 获取所有键
print([key.decode('utf-8') for key in keys])
列表操作
# 向列表中添加元素
r.lpush('mylist', 'item1')
r.lpush('mylist', 'item2')# 获取列表中的所有元素
items = r.lrange('mylist', 0, -1)
print([item.decode('utf-8') for item in items])  # 输出: ['item2', 'item1']
哈希操作
# 设置哈希字段
r.hset('myhash', 'field1', 'value1')
r.hset('myhash', 'field2', 'value2')# 获取哈希字段
value = r.hget('myhash', 'field1')
print(value.decode('utf-8'))  # 输出: value1# 获取所有哈希字段和值
hash_data = r.hgetall('myhash')
print({k.decode('utf-8'): v.decode('utf-8') for k, v in hash_data.items()})
集合操作
# 向集合中添加元素
r.sadd('myset', 'member1')
r.sadd('myset', 'member2')# 获取集合中的所有元素
members = r.smembers('myset')
print([member.decode('utf-8') for member in members])

4. 使用连接池

在高并发场景下,建议使用连接池来管理 Redis 连接,以提高性能。

import redis# 创建连接池
pool = redis.ConnectionPool(host='localhost',port=6379,db=0
)# 从连接池获取连接
r = redis.Redis(connection_pool=pool)# 使用连接
r.set('key', 'value')
value = r.get('key')
print(value.decode('utf-8'))

5. 处理异常

在实际应用中,建议捕获和处理 Redis 操作中的异常。

import redistry:r = redis.Redis(host='localhost', port=6379, db=0)r.set('key', 'value')value = r.get('key')print(value.decode('utf-8'))
except redis.RedisError as e:print(f"Redis error: {e}")

总结

  • 使用 redis-py 库可以轻松连接和操作 Redis。
  • 常见的操作包括设置和获取键值对、列表操作、哈希操作、集合操作等。
  • 在高并发场景下,建议使用连接池来管理连接。
  • 处理异常以确保程序的健壮性。

通过这些步骤,你可以在 Python 中轻松地连接和操作 Redis 数据库。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com