基于python+mysql+redis缓存设计与数据库关联数据处理
admin
2023-06-04 12:21:27
0

1、添加表

CREATE TABLE tb_signin(

id INT,

user_name VARCHAR(10),

signin_num INT ,

signin_time DATETIME ,

gold_coin INT 

);

INSERT INTO tb_signin

VALUES(1, 'ma', 0, NULL, 0),

(2, 'he', 0, NULL, 0),

(3, 'yu', 0, NULL, 0),

(4, 'hai', 0, NULL, 0),

(5, 'fang', 0, NULL, 0);

2、redis缓存键值设计

key               value

表名:主键值:列名   列值

或者:

表名:主键值:列值1:列名1  

示例:把id为1的人的签到次数(假设为5)存储到redis中则可如下操作:

set('tb_signin_rank:1:signin_num', 5)

类似数据库一样,通过主键便可获取其它值

3、redis关联数据库的数据处理模式:

如图,先判断是否存在缓存(通常是根据key),如果存在则从缓存读取,否则从数据库读取并更新缓存

 基于python+mysql+redis缓存设计与数据库关联数据处理

适用场景:对数据实时性要求不高,更新比较不频繁


如下图,先写入redis然后,利用守护进程等方式,定时写入到数据库

 基于python+mysql+redis缓存设计与数据库关联数据处理


如下图,先写入数据库,然后再更新到缓存

 基于python+mysql+redis缓存设计与数据库关联数据处理

####

import ConfigParser
import sys
import redis
import MySQLdb
__name__ ==:
    pool=redis.ConnectionPool(=,=,=)
    r=redis.Redis(=pool)
    config=ConfigParser.ConfigParser()
    :
        dbcon=MySQLdb.connect(=,=,=,=,=,=)
    MySQLdb.Error,e:
        ,e
        sys.exit()
    :
         db_cursor=dbcon.cursor()
         id (,):
             db_cursor.execute(,id)
             db_cursor.execute()
         r.zincrby(, id, )
    e:
         (% e)
         db_cursor.execute()
         db_cursor.close()
         ()
    id (,):
        result=r.zscore(,id)
        result:
            :
                db_cursor=dbcon.cursor()
                db_cursor.execute(,id)
                result=db_cursor.fetchone()[]
                r.zadd(,id,result)
            e:
                % e
                db_cursor.close()
        :
            ()
            result = (result)
        (% (id, result))

###

zadd:命令用于将一个或多个成员元素及其分数值加入到有序集当中

zscore:命令返回成员的有序集合在键比分。如果成员没有在排序集合存在,或键不存在,则返回nil。


相关内容

热门资讯

巴基斯坦陆军参谋长为何能担当美... 战争还是和平,美伊谈判僵局进入关键转折点,多国抓紧最后关头进行调停。伊朗外长阿拉格齐23日在社交媒体...
电视一打开闪一下就黑屏怎么回事 1、可能是因为电视机的背光板不亮了,驱动背光板的电路出现了问题。2、可能是高压板出现了故障,高压板出...
TCL电视开机在开机画面闪一下... 1、电压如果不正常不稳定的话,电视机使用过程中确实会出现一些问题,做好电压检测的工作很重要。2、液晶...
创维电视开机后屏幕闪一下就黑屏 1、可能是电视机的背光板不亮了,驱动背光板的电路出现了问题。2、可能是高压板出现了故障,高压板出现故...
创维电视闪一下就黑屏 1、可能是电视在突然开启过程中,同时电路连接中还有其它大功率电器,电压过大导致主控面板的保险丝烧坏,...
电视开机显示一下显示一下就黑屏 1、电视机与机顶盒的连线可能受损;2、部分零件出现问题,需要更新或者维修;3、背光电路出现问题或者背...
闻泰科技起诉安世荷兰:索赔至少... 【文/观察者网 阮佳琪】据彭博社报道,5月22日晚,中国闻泰科技股份有限公司发布重大诉讼公告称,已在...
伊朗民航局否认近期曾发布任何涉... 伊朗民航局发言人当地时间23日称,伊朗民航局近期并没有发布任何新的航行警告,网上流传的相关限飞文件纯...
山西事故煤矿给出的图纸与实际不... 昨晚,山西留神峪煤矿发生瓦斯爆炸。目前,爆炸点附近出现了积水,救援人员正在紧急制定新的救援方案。记者...
特朗普变卦前,接到电话警告“会... 【文/观察者网 王一】美国总统特朗普原计划于当地时间5月21日签署一项将赋予其政府更多人工智能(AI...