• python redis操作


    一、安装

    pip3 install redis

    二、redis的作用

    一般的程序取数据一般去数据库即可,而当访问量较大,经常访问的数据就可以放在redis里

    redis将数据放在内存中,数据库写在文件中,redis的效率要比数据库高的多。

    redis可以被看做是内存中的大字典,用以保存数据。

    三、redis的5大数据类型

    {
        "k1":"v1",                      # 字符串类型
        "k2":[11,11,33,33,55],          # 列表类型
        "k3":{11,22,33},                # 集合类型
        "k4":{                          # 哈希类型,也就是字典类型,
            "kk1":"vv1",
            "kk2":"{kkk1:vvv1}"       # 再嵌套字典,被识别为字符串
        },
        "k5":{("alex",1),("eric",4)},  # 有序集合,根据分数对集合进行排序
    }

    四、简单操作

    import redis
    
    conn = redis.Redis(host='192.168.1.1',port=6379)
    
    # 对字符串的操作
    conn.set('k1','v1')     # set(self, name, value, ex=None, px=None, nx=False, xx=False):
    # ex 设置数据超时时间,秒
    # px 设置数据超时时间,毫秒
    # nx 如果设置为True,则只有name不存在时,当前set操作才执行,作用为添加
    # xx 如果设置为True,则只有name存在时,岗前set操作才执行,作用为更新
    
    conn.get('k1')
    
    
    # 对列表操作,redis中的列表相当于双向队列,可以做栈,或者消息队列
    conn.lpush('users','alex')  # 将alex添加到users这个列表中去
    conn.rpush('users','eric')
    conn.lpop('users')
    conn.rpop('users')
    conn.blpop('users',timeout=20)          # 如果没有该值,一直阻塞等待,可设超时,超时返回为空,不报错
    conn.brpop('users',timeout=20)          # 如果没有该值,一直阻塞等待
    
    
    conn.expire('users',100)    # 除字符串以外,设置超时时间,可以为time.timedelta自动会变为秒
    
    # 集合
    
    # 哈希
    View Code

    五、迭代器取列表数据

    取假设有100万条数据的列表使用生成器,设定范围,分批次的取到数据

    import redis
    
    conn = redis.Redis(host='192.168.1.1',port=6379)
    
    def get_all_users(name):
        count = conn.llen('users')             # 取得users的长度
        start = 0
        while True:
            vals = conn.lrange('users',start,start+3)       # 取0到10范围的users的数据
            start += 4
            if not vals:
                return
            for val in vals:
                yield val
    
    # vlas = conn.lrange('users',1,start+1)
    
    result = get_all_users('users')
    for item in result:
        print(item)
    View Code
  • 相关阅读:
    NGINX反向代理与负载均衡
    kubernetes介绍
    Linux下yum出现no module named pycurl 解决办法
    MySQL中间件介绍
    Memcached做Tomcat的session共享
    MySQL高负载优化
    Centos下安装Tomcat7
    浅谈世界坐标系,相机坐标系,图像坐标系,像素坐标系的关系
    相机标定方法之初探
    ubuntu18.04安装kalibr相机标定工具
  • 原文地址:https://www.cnblogs.com/yunweixiaoxuesheng/p/9101558.html
Copyright © 2020-2023  润新知