Redis数据库简介与使用
发布于 2025-12-31
Redis数据库操作简介与应用
Section titled “Redis数据库操作简介与应用”- 理解 Redis 数据库的基本原理及其在缓存和数据存储中的作用。
- 掌握如何使用 Python 的
redis库进行数据存储和查询。 - 学会将 Redis 客户端集成到工程化代码中。
Redis 数据库概述
Section titled “Redis 数据库概述”Redis(Remote Dictionary Server)是一个高性能的键值对数据库,常用于缓存、会话管理等场景。它支持多种数据结构(如字符串、哈希、列表等),并提供快速的内存操作。
Redis 的核心特性
Section titled “Redis 的核心特性”- 高性能:数据存储在内存中,读写速度极快。
- 持久化:支持 RDB 和 AOF 两种持久化方式。
- 灵活性:支持多种数据类型和丰富命令。
- 简单易用:提供直观的 API,易于集成。
- 缓存查询结果以减少数据库压力。
- 存储用户会话信息。
- 实现排行榜或计数器功能。
redis_lesson/├── redis_client.py # Redis 客户端模块├── base.py # 配置文件和日志模块├── main.py # 主程序入口└── requirements.txt # 依赖文件Redis 客户端模块 (redis_client.py)
Section titled “Redis 客户端模块 (redis_client.py)”import redisimport jsonfrom base import Config, logger
class RedisClient: def __init__(self): self.logger = logger try: self.client = redis.StrictRedis( host=Config().REDIS_HOST, port=Config().REDIS_PORT, password=Config().REDIS_PASSWORD, db=Config().REDIS_DB, decode_responses=True ) self.logger.info("Redis 连接成功") except redis.RedisError as e: self.logger.error(f"Redis 连接失败: {e}") raise
def set_data(self, key, value): try: self.client.set(key, json.dumps(value)) self.logger.info(f"存储数据到 Redis: {key}") except redis.RedisError as e: self.logger.error(f"Redis 存储失败: {e}")
def get_data(self, key): try: data = self.client.get(key) return json.loads(data) if data else None except redis.RedisError as e: self.logger.error(f"Redis 获取失败: {e}") return None
def get_answer(self, query): try: answer = self.client.get(f"answer:{query}") if answer: self.logger.info(f"从 Redis 获取答案: {query}") return answer return None except redis.RedisError as e: self.logger.error(f"Redis 查询失败: {e}") return None主程序 (main.py)
Section titled “主程序 (main.py)”from redis_client import RedisClientimport logging
# 配置日志logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')logger = logging.getLogger(__name__)
def main(): # 初始化 Redis 客户端 redis_client = RedisClient() # 示例数据 key = "user:1" value = {"name": "Alice", "age": 25} # 存储数据 redis_client.set_data(key, value) # 获取数据 result = redis_client.get_data(key) if result: logger.info(f"查询结果: {result}") else: logger.info("未找到数据") # 示例查询缓存 query = "test_query" answer = redis_client.get_answer(query) if answer: logger.info(f"缓存答案: {answer}") else: logger.info("未找到缓存答案")
if __name__ == "__main__": main()配置文件 (base.py)
Section titled “配置文件 (base.py)”import logging
# 配置日志logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')logger = logging.getLogger(__name__)
class Config: REDIS_HOST = "localhost" REDIS_PORT = 6379 REDIS_PASSWORD = None REDIS_DB = 0依赖文件 (requirements.txt)
Section titled “依赖文件 (requirements.txt)”redis示例运行结果
Section titled “示例运行结果”运行 main.py,假设 Redis 服务器运行在本地,输出如下:
2025-05-12 10:00:01,123 - INFO - Redis 连接成功2025-05-12 10:00:01,124 - INFO - 存储数据到 Redis: user:12025-05-12 10:00:01,125 - INFO - 查询结果: {'name': 'Alice', 'age': 25}2025-05-12 10:00:01,126 - INFO - 未找到缓存答案- 数据以 JSON 格式存储,适合复杂结构。
get_answer方法用于查询缓存,减少重复计算。- 异常处理确保代码鲁棒性,避免 Redis 连接或操作失败导致程序崩溃。
本节主要介绍了 Redis 数据库的操作原理和应用:
- 原理:高性能键值对存储,适合缓存和快速数据访问。
- 应用:通过
redis库实现数据存储、查询和缓存。
下一章将介绍如何将 Redis 与其他算法(如 BM25)结合,提升检索效率。
发布于 2025-12-31