Python 数据库开发实战 - Python与Redis交互篇- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Python 数据库开发实战 - Python与Redis交互篇- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis

  接下来这个章节将继续来完成 《新闻管理系统》 这个项目,上一章节我们完成了 “发表新闻” 这个功能,在发表新闻后,什么时候才会缓存该条新闻记录呢?并不是说在发表新闻成功之后就立刻被缓存,而是该新闻被管理员审批通过才会被缓存到Redis里面(也就是新闻的状态由 “待审批” 变更为 “已审批” 的时候),接下来我们就看一下如何实现将新闻缓存至 redis 数据库吧。


在 “发表新闻” 这个业务流程里面,有一个需求是这样的,当制定级别大于 “0” 时,既需要将该条新闻保存到 MySQL 、也需要将其保存到 redis 中。所以接下来我们也需要将 redis 引入到 《新闻管理系统》 这个项目里面。


将 “redis 连接池” 引入 《新闻管理系统》


  • 既然要将 “redis 连接” 引入到《新闻管理系统》,那么就需要将 “redis 连接池” 放到 “db” 包里面。
  • 在 “db” 包 创建 “redis_db.py” 模块,“redis 连接池” 代码如下:
# coding:utf-8
import redis
redis_Pool = redis.ConnectionPool(      # 利用 redis 模块的 ConnectionPool() 类构建出 redis_Pool 对象
    host="localhost",                   # 地址
    port=6379,                          # 端口号
    passwor="",                        # 密码(redis没有用户体系,访问只需要密码)
    db=0,                               # 0逻辑库
    max_connections=0                   # 最大连接数(因为是开发环境,所以写的少一些;如果是生产环境,必须要提高。)
)




image.png


❤️‍🔥 redis 缓存新闻


上文我们提到过 ,什么时候才会缓存该条新闻记录呢?并不是说在发表新闻成功之后就立刻被缓存,而是该新闻被管理员审批通过才会被缓存到Redis里面,所以这个 "缓存的时间点" 我们一定要搞清楚。

还需要注意的是:redis 缓存新闻并不是将数据库里新闻表的所有字段都缓存到 “redis” 的哈希表。因为 MySQL 是关系型数据库,所以数据可以拆分存储到不同的数据库里面。所以再 “t_news(新闻表)” 里面定义 “type_id” 这个字段来引用 “t_type(类型表)” 里面的记录。

但是 redis 不是关系型数据库,没有表的概念,甚至记录与记录之间也不能做连接查询,所以在 redis 里面就不能像数据库那样保存引用记录的 id 了。必须保存明确的数据内容才可以,具体的案例看下面的截图:


ca7d110f71ae44c8b4fa58402bf6503e.png




























































相关文章
|
28天前
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
5月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
28天前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
123 1
Redis专题-实战篇二-商户查询缓存
|
12天前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
106 2
|
14天前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
|
28天前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
252 4
|
5月前
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
778 0
|
28天前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
5月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
206 32
|
5月前
|
缓存 NoSQL Java
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
117 5
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡