zoukankan      html  css  js  c++  java
  • redis+mysql+hash组合使用

    '''
        用户想要查询个人信息 
        1、到redis缓存中查询个人信息 
        2、redis中查询不到,到mysql查询,并缓存到redis 
        3、再次查询个人信息
    '''
    
    import redis
    import pymysql
    
    # 用户从终端输入要查询的用户:zhang
    username = input('请输入用户名:')
    
    # key       field       value
    # username  gender      M
    #           age         29
    
    r = redis.Redis(host='127.0.0.1', port=6379, db=0, password='123456')
    # 从redis查询(gender age)
    # 如果查到,则直接打印
    result = r.hgetall(username)
    print(result)
    if result:
        print('redis数据:', result)
    else:
        # 如果没有查到,则从mysql中查询,并将其加入redis缓存,同时设置过期时间5分钟
        db = pymysql.connect('localhost', 'root', '123456', 'userdb', charset='utf8')
        cursor = db.cursor()
        sel = 'select gender,age from user where username=%s'
        cursor.execute(sel,[username])
        res = cursor.fetchall()
        if not res:
            print('Mysql中无此用户')
        else:
            print('Mysql中查询到的结果:',res)
            r.hmset(username,{'gender':res[0][0],'age':res[0][1]})
            r.expire(username,60*5)
    '''
        mysql数据库中数据更新信息后同步到redis缓存
    '''
    
    import redis
    import pymysql
    
    # 用户从终端输入要查询的用户:yuxiangyang
    username = input('请输入用户名:')
    age = input('请输入新的年龄:')
    
    
    r = redis.Redis(host='127.0.0.1', port=6379, db=0)
    
    # 改mysql数据库
    db = pymysql.connect('localhost', 'root', '123456', 'userdb', charset='utf8')
    cursor = db.cursor()
    sel = 'update user set age=%s where username=%s'
    cursor.execute(sel,[age,username])
    db.commit()
    # 同步到redis缓存中
    r.hset(username,'age',age)
    r.expire(username,60*2)
  • 相关阅读:
    3524: [Poi2014]Couriers -- 主席树
    bzoj 2190: [SDOI2008]仪仗队 -- 欧拉函数
    模板 -- 树链剖分
    bzoj 1823: [JSOI2010]满汉全席 -- 2-sat
    bzoj 1704: [Usaco2007 Mar]Face The Right Way 自动转身机 -- 贪心
    bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 -- 状压DP
    redis 主从复制
    redis 事务
    redis持久化——AOF
    redis 持久化 ——RDB
  • 原文地址:https://www.cnblogs.com/yuxiangyang/p/11195190.html
Copyright © 2011-2022 走看看