• [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

  • 相关阅读:
    hdu 5734 Acperience
    报错解决
    测试代码出错
    fast rcnn训练自己数据小结
    top命令
    读csv文件
    计算机的屏幕坐标
    用virtualenv构建一个新的python环境,这个新的环境在这个创建的文件夹下
    python tips
    将目录下所有文件名修改为统一格式
  • 原文地址:https://www.cnblogs.com/liuzhipenglove/p/8038794.html
Copyright © 2020-2023  润新知