美文网首页
Redis的两种连接方式

Redis的两种连接方式

作者: 空口言_1d2e | 来源:发表于2019-04-10 08:53 被阅读0次

    1.简单连接

    import redis
    conn = redis.Redis(host='207.148.120.229', port=6379)
    conn.set('foo', 'Bar')
    print(conn.get('foo'))
    a = input('按任意键结束')
    

    2.使用连接池

    为了减少每次建立、释放连接的开销,推荐使用连接池

    redis使用connection pool来管理对一个redis服务的所有连接。

    多个redis实例可共享一个连接池。

    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
     
    conn.set('key', 'Hello World')
    print(conn.get('key'))
    a = input('按任意键结束')
    

    五大数据类型
    1.String操作 
    redis中的String在在内存中按照一个key对应一个value来存储。以键值对的方式存储。


    image.png

    set(name, value, ex=None, px=None, nx=False, xx=False)

    在Redis中设置值,默认,不存在则创建,存在则修改
    参数:
         ex,过期时间(秒)
         px,过期时间(毫秒)
         nx,如果设置为True,则只有name不存在时,当前set操作才执行
         xx,如果设置为True,则只有name存在时,当前set操作才执行
     
    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
     
    conn.set('key', 'Hello World')
    print(conn.get('key'))
    

    mset(*args, **kwargs) 批量设置值”

    # 批量设置值
    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.mset(k1='v1', k2='v2')
    # conn.mset({'k1': 'v1', 'k2': 'v2'})
    
    print(conn.get('k1'))
    

    get(name) 获取值

    print(conn.get('k1'))
    

    mget(keys, *args) 批量获取值

    # 批量获取值
    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.mset(k1='v1', k2='v2')
    
    print(conn.mget('k1','k2'))    # [b'v1', b'v2']
    print(conn.mget(['k1','k2']))  # [b'v1', b'v2']
    

    getset(name, value) 设置新值并获取原来的值

    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.mset(k1='v1', k2='v2')
    
    ret = conn.getset('k1','value_1')
    print(ret)             # b'v1'
    print(conn.get('k1')) # b'value_1'
    

    getrange(key, start, end) 获取name对应value的指定字节

    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.set('k1','hello')
    
    print(conn.getrange('k1',0,3)) # b'hell''
    # 获取子序列(根据字节获取,非字符)
    # 参数:
        # name,Redis 的 name
        # start,起始位置(字节)
        # end,结束位置(字节)
    # 如: "hello" ,0-3表示 "hell"
    

    setrange(name, offset, value) 从指定字节开始替换新值

    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    print(conn.get('k1'))  # b'hello'
    conn.setrange('k1',2,'long_time')
    print(conn.get('k1'))  # b'helong_time'
    
    # 修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
    # 参数:
        # offset,字符串的索引,字节(一个汉字三个字节)
        # value,要设置的值
    

    strlen(name) 获取name对应的value的长度

    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.set('k1','hello')
    conn.set('k2','天宝')
    
    print(conn.strlen('k1'))  # 5
    print(conn.strlen('k2'))  # 6  一个汉字占3个字节
    

    incr(self, name, amount=1) name存在,则自增amount,否则设置name的value值为amount

    import redis
    pool = redis.ConnectionPool(host='207.148.120.229',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.set('k1','5')
    conn.incr('k1',amount=3)
    
    print(conn.get('k1'))  # b'8'
    
    # 自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
    
    # 参数:
    # name,Redis的name
    # amount,自增数(必须是整数)
    
    # 注:同incrby
    

    decr(self, name, amount=1) 自减(整数)

    import redis
    pool = redis.ConnectionPool(host='207.148.121.149',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.set('k1','5')
    conn.decr('k1',amount=3)
    
    print(conn.get('k1'))  # b'2'
    
    # 自减 name对应的值,当name不存在时,则创建name=amount,否则,则自减。
    
    # 参数:
    # name,Redis的name
    # amount,自减数(整数)
    

    append(key, value)

    import redis
    pool = redis.ConnectionPool(host='207.148.121.149',port=6379)
    conn = redis.Redis(connection_pool=pool)
    
    conn.set('k1','hello_')
    conn.append('k1','world')
    
    print(conn.get('k1'))  # b'hello_world'
    
    # 在redis name对应的值后面追加内容
    
    # 参数:
    # key, redis的name
    # value, 要追加的字符串
    

    相关文章

      网友评论

          本文标题:Redis的两种连接方式

          本文链接:https://www.haomeiwen.com/subject/zdobiqtx.html