[ecmagent][redis学习][1初识redis] python操作redis

#1 连接redis

#1 连接redis

    -- import redis


    -- 使用端口连接redis
        conn = redis.Redis(host="127.0.0.1", port=6379)

    -- 使用套接字连接
        r = redis.Redis(unix_socket_path='/tmp/redis.sock')
        
    -- 使用连接池连接到redis
        >>> pool = redis.ConnectionPool(host='192.168.56.100', port=6379)
        >>> conn = redis.Redis(connection_pool=pool)
        
    -- 写入一条字符串数据
        conn.set("ranking:category", "hello")
View Code

#2 string api

# string api
    set(name, value, ex=None, px=None, nx=False, xx=False)
        -- ex  expire过期时间,秒
        -- px  过期时间毫秒
        -- nx  如果设置为True,则只有name不存在时,当前set操作才执行
        
        conn.set('k1', 'v1', ex=10, nx=True)
    
    setex(name, value, time)
        -- 设置过期时间,秒
    
    psetex(name, time_ms, value)
        -- 设置过期时间毫秒
    
    
    mset(*args, **kwargs)
        -- 同时设置多个key/value
        -- conn.mset({'k1':'v1', 'k1':'v1'})
    
    get(name) 
        -- 获取单个值
        -- conn.get('k1')
    
    mget(keys, *args) 
        -- 获取多个值
            mget('k1','k2')
        -- mget(['k1','k2'])
        
    getrange(key, start, end)
        -- 切片获取
        -- conn.getrange('key', 1, 4)
        
    incr(name, amount=1)
        -- 对name的value进行自增;name不存在则创建,否则自增
    
    incrbyfloat(name, amount=1.0)
        -- 浮点数的自增
        
    decr(name, amount=1)
        -- 自减
        
    append(key,value)
        -- 往字符串后面拼接
        >>> conn.set('blog','https://blog.ansheng.me')
        True
        >>> conn.append('blog','/')
        26
        >>> conn.get('blog')
        b'https://blog.ansheng.me/'
View Code

#3 hash api

# hash api

    hset(name, key, value)

        -- 设置name的键值对,有则修改,没有则创建
        -- conn.hset('dic','k1','v1')
    hmset(name, mapping)
        -- 设置name的多个键值对
        -- conn.hmset('student', {'name':'lzp', 'age':20})
    
    hget(name,key)
        -- 获取name中某个key的值
        -- conn.hget('dic','k2')
    
    
    hmget(name,keys,*args)
        -- 获取name中多个key的值
        -- conn.hmget('dic', ['k1','k2'])
        -- conn.hmget('dic','k1','k2')
    
    hgetall(name)
        -- 获取name中所有key的值
        -- conn.hgetall('dic')
    
    hkeys(name)
        -- 获取name中所有的key
    
    hvals(name)
        -- 获取name中所有的values
    
    hincrby(name, key, amount=1)
        -- 对name中key的value值进行自增
        -- conn.hincrby('dic','number',10)
    
    hscan(name, cursor=0, match=None, count=None)
        -- 增量式迭代获取,hscan可以实现分片的获取数据,并非一次性将数据全部获取完,从而放置内存被撑爆

        参数    描述
        name    redis的name
        cursor    游标(基于游标分批取获取数据)
        match    匹配指定key,默认None 表示所有的key
        count    每次分片最少获取个数,默认None表示采用Redis的默认分片个数
    
        
    hscan_iter(name, match=None, count=None)

        -- 利用yield封装hscan创建生成器,实现分批去redis中获取数据
        
            match    匹配指定key,默认None 表示所有的key
            count    每次分片最少获取个数,默认None表示采用Redis的默认分片个数
        -- for item in r.hscan_iter('xx'):
                print(item)
    
    
    expire(name,time)    
        -- 设置过期时间
View Code

#4 list api

 

posted @ 2017-12-14 17:20  liuzhipenglove  阅读(359)  评论(0编辑  收藏  举报