zoukankan      html  css  js  c++  java
  • python--操作Redis

    import redis
    r = redis.Redis(host='200.100.200.00',port=6300,password='123400',db=0)#连上redis
    r.set('nhy_session','201801211505') #set数据
    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.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','没交') 
    print(r.keys())#获取所有的key
    print(r.keys('txz*')) #以txz开头的key
    print(r.type('sessions'))#获取key的类型

    Redis迁移:
    
    
    import redis

    src_redis = redis.Redis(host='200.100.200.10',port=6300,password='123400',db=0)#连上redis
    target_redis = redis.Redis(host='200.100.210.10',port=6300,password='123400',db=10)#连上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
     封装一个函数,操作Redis(get或者set数据):
    def op_redis(host,password,k,v=None,port=6300,db=0):#db不指定,默认就是第一个db
    r = redis.Redis(host=host,password=password,port=port,db=db)
    if v:#传了v,是set操作
    r.set(k,v)
    res = 'ok'
    else:#没有传v,是get操作
    res = r.get(k)
    if res: #这里是判断有没有get到数据
    res = res.decode()
    else:
    res = None
    return res
     




  • 相关阅读:
    DataGridView拖动到TreeView
    TreeView 拖拽 增删改
    C# 代码生成器 (存储过程生成方法)
    VC++ VS2010 error LNK1123 转换到 COFF 期间失败 怎么办
    VB和VB.NET有什么区别
    VB6 如何添加自定义函数 模块 把代码放到一个模块中
    VB6 如何连接MYSQL数据库
    VB6 如何自定义代码字体和支持鼠标滚轮
    Visual Studio VS如何切换代码自动换行
    UltraEdit UE常见问题 使用必读
  • 原文地址:https://www.cnblogs.com/hoby2017/p/8391918.html
Copyright © 2011-2022 走看看