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)
  • 相关阅读:
    .bat文件打开指定网页,并运行jar包
    jar包制作一个可执行文件
    如何让局域网其他电脑通过IP直接访问自己电脑的网站
    Sypder 安装和使用
    tomcat服务器输入localhost可以访问,ip无法访问解决办法
    【转载】高性能网站建设
    网站优化
    JavaWeb 项目开发中的技术总结
    反射工具类——ReflectUtils
    Ajax 的缺点
  • 原文地址:https://www.cnblogs.com/yuxiangyang/p/11195190.html
Copyright © 2011-2022 走看看