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

news2025/5/28 1:18:20

      接下来这个章节将继续来完成 《新闻管理系统》 这个项目,上一章节我们完成了 “发表新闻” 这个功能,在发表新闻后,什么时候才会缓存该条新闻记录呢?并不是说在发表新闻成功之后就立刻被缓存,而是该新闻被管理员审批通过才会被缓存到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                   # 最大连接数(因为是开发环境,所以写的少一些;如果是生产环境,必须要提高。)
    )
    

    ❤️‍🔥 redis 缓存新闻

  • 上文我们提到过 ,什么时候才会缓存该条新闻记录呢?并不是说在发表新闻成功之后就立刻被缓存,而是该新闻被管理员审批通过才会被缓存到Redis里面,所以这个 "缓存的时间点" 我们一定要搞清楚。
    还需要注意的是:redis 缓存新闻并不是将数据库里新闻表的所有字段都缓存到 “redis” 的哈希表。因为 MySQL 是关系型数据库,所以数据可以拆分存储到不同的数据库里面。所以再 “t_news(新闻表)” 里面定义 “type_id” 这个字段来引用 “t_type(类型表)” 里面的记录。
    但是 redis 不是关系型数据库,没有表的概念,甚至记录与记录之间也不能做连接查询,所以在 redis 里面就不能像数据库那样保存引用记录的 id 了。必须保存明确的数据内容才可以,具体的案例看下面的截图:

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/334899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Verilog HDL的状态机描述方法

⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 🔥文章和代码已归档至【Github仓库&#xf…

配置类的几种写法

需求 通过java配置类实现一个数据库连接池。 以前xml中是这样写的&#xff1a; <!--配置德鲁伊数据库连接池--><bean id"ds" class"com.alibaba.druid.pool.DruidDataSource"><property name"driverClassName" value"${jdbc…

Selenium常用API详解(从入门到进阶)

目录 1、打开页面 2、查找页面元素 3、输入文本 4、点击操作 5、提交操作 6、清除文本 7、获取文本、属性 8、获取页面的标题和URL 9、窗口 9.1、设置窗口大小 9.2、窗口切换 9.2.1、为什么需要窗口切换&#xff1f; 9.2.2、获取句柄的方式 9.2.3、切换句柄 10、…

PHP环境配置和验证

很多文章都把php和apache环境混合在一起讲&#xff0c;美其名曰PHP环境配置并提供验证是编写phpinfo命令。概念都搞不清后继的学习也好频频失误。 1、获取PHP。这个有说法网上有讲的总结的很到位。 windos服务器&#xff1a; 1、如果你是PHPIIS&#xff1b;请选择&#xff1…

VBA提高篇_ 20 括号的使用 _值/引用传递

文章目录1. 决定函数调用是否使用括号的三种情境:2. VBA对象的默认属性3.过程/函数的传递方式 :1. 决定函数调用是否使用括号的三种情境: 没有参数: 不写有参数: 调用语句处于一行代码中间: 写有参数: 调用语句独占一行代码: 不写 括号的特殊含义: Evaluation(求职运算) 2. VB…

开发必看!三分钟读懂Salesforce SOQL查询和限制

SOQL是支持我们与Salesforce数据库交互的查询语言。开发人员在编写Apex时通常会使用到SOQL&#xff0c;此外&#xff0c;它还允许管理员和开发人员从组织内部检索数据并在导出结果时生成强大的数据报告。 SOQL 查询对于编写代码的开发人员&#xff0c;以及通过使用子句扩展查询…

CK-GW208-EC与汇川PLC配置走EtherCAT通讯指南

CK-GW208-EC这款产品是晨控智能一款工业级 IO-LINK 主站网关&#xff0c;支持 EtherCat 工业协议。可通过以太网接口&#xff0c;对 IO-LINK 从站设备进行控制。CK-GW208-EC 是一款支持标准工业 Ethercat协议的 IO-LINK主站网关&#xff0c;方便用户快速便捷的集成到 PLC 等控制…

GLP-1类药物研发进展-销售数据-上市药品前景分析

据一项2021 年的报告发现&#xff0c;当 GLP-1 类似物用于治疗 2 型糖尿病时&#xff0c;全因死亡率降低了 12%&#xff0c;它们不仅降糖效果显著&#xff0c;同时还兼具减重、降压、改善血脂谱等作用。近几年&#xff0c;随着GLP-1R激动剂类药物市场规模不断增长&#xff0c;美…

Disruptor实战和笔记之二:Disruptor类分析

1 本篇概览通过前文的实战&#xff0c;咱们对Disruptor有了初步认识&#xff0c;借助com.lmax.disruptor.dsl.Disruptor类可以轻松完成以下操作&#xff1a;环形队列初始化指定事件消费者启动消费者线程接下来要面对两个问题&#xff1a;深入了解Disruptor类是如何完成上述操作…

第十四期 | ETC车主收到的诈骗短信原来是黑灰产在搞鬼?

目录 互联网时代&#xff0c;车企的安全挑战 黑灰产的两种攻击方式&#xff1a;撞库攻击&密码爆破攻击 1、撞库攻击&#xff1a; 2、密码爆破攻击 黑灰产变现方式 1、贩卖数据 2、直接变现 3、电信诈骗 防控建议 1、终端加固/H5混淆 2、通信传输安全保障 3、行…

Java知识点细节简易汇总——(7)面向对象编程(高级部分)

一、类变量、静态变量static static访问方式&#xff1a; public class VisitStatic {public static void main(String[] args) {//方法一://类名.类变量名//说明&#xff1a;类变量是随着类的加载而创建&#xff0c;所以即使没有创建对象实例也可以访问System.out.println(A.…

代码随想录NO38 |动态规划——leetcode 343. 整数拆分 96.不同的二叉搜索树

动态规划—leetcode 343. 整数拆分 96.不同的二叉搜索树今天是动态规划第三天的题&#xff0c;动态规划这块儿题目比较多&#xff01; 343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的…

拼经济促发展,雨花区脚踏实地将“民生愿景”变为“幸福实景”

2022年&#xff0c;面对国内外复杂的经济形势&#xff0c;我国经济发展依旧保持稳中向好态势。经济增长总体平稳且后续动力强劲&#xff0c;物价涨幅持续可控&#xff0c;结构调整积极推进。经济增长由政策刺激向自主增长有序转变&#xff0c;继续朝着宏观调控的预期方向发展&a…

Linux环境下Redis单机、集群升级部署

目录 前言 一、Redis安装环境准备 二、安装升级Redis 1.Redis升级前准备&#xff08;首次安装忽略&#xff09; 2.Redis安装 总结 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可…

回顾 | .NET MAUI 跨平台应用开发 - 用 .NET MAUI 开发一个无人机应用(下)

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将…

七、Linux文件 - main函数参数讲解、代码实现cp指令

目录 1、main函数参数 2.cp指令的使用 3、实现cp指令 3.1实现cp指令-入门版 3.2实现cp指令-进阶版 1、main函数参数 int main(int argc,char *argv[]) {return 0; } C语言规定了main函数的参数只能由2个&#xff0c;一个是argc,一个是argv,并且argc只能是整数&#xff0c…

[Leetcode] 打开转盘锁(BFS求最短路径)

题目链接&#xff1a;https://leetcode.cn/problems/open-the-lock/你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字&#xff1a; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 。每个拨轮可以自由旋转&#xff1a;例如把 9 变为 0&#xff0c;0 变为 9 。每次旋转都只能旋转一个拨轮…

你不会还不知道arrify的内部到底是怎么执行的吧?

作为一个前端工程师&#xff0c;经常会遇见转换成数组的需求&#xff0c;被转换的对象有可能是String、Set()、null、Map()、undefined、或者是数组本身。我们最经常的做法就是写一个arrify函数帮我去进行转换。久而久之因为经常会做不同的项目中遇到同样的需求所以我们通常会把…

WeNet - 初识

文章目录关于 WeNet快速上手识别训练环境准备训练关于 WeNet Production First and Production Ready End-to-End Speech Recognition Toolkit github: https://github.com/wenet-e2e/wenet官方中文说明&#xff1a;https://github.com/wenet-e2e/wenet/blob/main/README_CN.md…

分享宠物店微信小程序制作步骤_宠物店管理系统怎么做

大多数人对于动物医疗专业知识比较匮乏&#xff0c;再加上宠物医疗费用&#xff0c;日常用品都略高&#xff0c;宠物店/宠物医院的前景&#xff0c;再未来依旧可观。 相比于实体店&#xff0c;线上平台无疑有着更广阔的拓客渠道和销售前景&#xff0c;做宠物店/宠物医院小程序…