zoukankan      html  css  js  c++  java
  • day6-Python学习笔记(十三)redis数据库

    import redis
    r = redis.Redis(host='211.149.218.16',port=6379,password='123456',db=2)#连上redis
    print(r.get('hahahsfdfsdf'))
    #r.set('nhy_session','201801211505') #set数据
    # print(r.get('马佩佩').decode()) #redis里面取出来的数据都是bytes类型的,所以要用.decode方法转成字符串
    # r.delete('马佩佩')#删除一个
    #r.setex('nhy','hahah',20) #可以指定key的失效时间,单位是秒‘

    # set get delete setex 都是针对string类型的 k - v

    #hash类型
    # r.hset('sessions','nhy','123456') #插入数据
    # r.hset('sessions','ybq','1234562')
    # r.hset('sessions','xsr','1234561')
    #print(r.hget('sessions','xsr')) #获取数据
    # redis_data = r.hgetall('sessions') #获取到hash类型里面所有的数据
    # all_data = {}
    # for k,v in redis_data.items(): #把hash类型里面所有的数据转成正常的字典
    # k = k.decode()
    # v = v.decode()
    # all_data[k]=v
    #hash类型没有过期时间

    #下面这种是有层级的
    # r.set('txz:ybq','没交') #
    # r.set('txz:haixia','交了') #
    # print(r.keys())#获取所有的key
    # print(r.keys('txz*')) #以txz开头的key
    # print(r.type('sessions'))#获取key的类型

    # 把redis里面一个数据库的东西,弄到另外一个数据库里。
    # 1、建立两个redis连接
    #1、src
    # 2、 target
    #2、获取到所有的key,kyes ()
    # 3、判断key的类型,string hash

    def op_redis(host,password,k,v=None,port=6379,db=0):
    r = redis.Redis(host=host,password=password,port=port,db=db)
    if v:
    r.set(k,v)
    res = 'ok'
    else:
    res = r.get(k)
    if res: #这里是判断有没有get到数据
    res = res.decode()
    else:
    res = None
    return res

    # print(__name__)
    # print('哈哈哈哈,我在这里头')
    # if __name__=='__main__':
    # #别人导入这个python文件的时候,下面的代码不会被执行
    # #自己测试的时候用
    # print(__name__) # __main__
    # # print('哈哈哈哈哈哈 到底有没有执行')
    # sql = 'select * from bt_stu limit 5;'
    # sql2 = 'update bt_stu set class="天蝎座3" where id=503;'
    # res = op_mysql(
    # host='211.149.218.16',
    # user='jxz',password='123456',#port这里一定要写int类型
    # port=3306,db='jxz',charset='utf8',sql=sql2)
    # print(res)

    redis 数据迁移
    import redis

    src_redis = redis.Redis(host='211.149.218.16',port=6379,password='123456',db=2)#连上redis
    target_redis = redis.Redis(host='211.149.218.16',port=6379,password='123456',db=14)#连上redis
    for key in src_redis.keys():
    if src_redis.type(key) == b'string': #判断key的类型,因为redis数据取出来都是二进制的,所以这里也用bytes
    v = src_redis.get(key) #先获取到原来的数据
    target_redis.set(key,v) #再set到新的里面
    else:
    all_hash_data = src_redis.hgetall(key) #先获取到hash类型里面所有的数据
    for k,v in all_hash_data.items(): #因为hash类型的获取到之后是一个字典,所以这里循环字典
    target_redis.hset(key,k,v) #key是外面的大key,k是里面的小k,v就是小k对应的value




  • 相关阅读:
    主线程MainThread与渲染线程RenderThread
    杀死进程的几种方式
    Android App的设计架构:MVC,MVP,MVVM与架构经验谈
    动画完全解析(二):补间动画原理及自定义动画
    SublimeText教程
    JqGrid自定义的列
    js 除法 取整
    js日期字符串增加天数的函数
    Oracle中的rownum和rowid
    jQuery判断对象是否是函数
  • 原文地址:https://www.cnblogs.com/flynn0825/p/8353389.html
Copyright © 2011-2022 走看看