zoukankan      html  css  js  c++  java
  • (七)7-1redis数据类型(1)

    reids目前提供5种数据类型:string类型, list类型, set集合类型, 有序集合类型, hash类型。

    string操作
    redis中的string在内存中都是按照一个key对应一个value来存储的。如:
    r.set("name", "cnblogs")
    set的使用方法:
    set(name, value, ex=None, px=None, nx=False, xx=False)
    ex,过期时间(秒)
    px,过期时间(毫秒)
    nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
    xx,如果设置为True,则只有name存在时,当前set操作才执行'''
    get(name)   获取值
    print(r.get("name"))
    mset() 批量设置值
    下面例子:

    import  redis
    redis_config = {
        "host" : "192.168.88.100",
        "port":6379
    }
    pool = redis.ConnectionPool(**redis_config)
    r = redis.Redis(connection_pool=pool)
    r.set("name","cnblogs")
    print(r.keys())
    print(r.get("name"))
    r.mset(name1 = "zhang",name2="li")
    print(r.mget("name1","name2"))
    r.mset({"name3":"wang","name4":"zhao"})
    print(r.keys())
    print(r.mget("name3","name4"))

    运行结果:

    ['cnblogs', 'name3', 'name2', 'name4', 'name1', 'name']
    cnblogs
    ['zhang', 'li']
    ['cnblogs', 'name3', 'name2', 'name4', 'name1', 'name']
    ['wang', 'zhao']

    list操作
    redis中的List在在内存中按照一个name对应一个List来存储
    lpush(name,values)
    # 在name对应的list中添加元素,每个新的元素都添加到列表的最左边
    r.lpush("list_name",2)
    r.lpush("list_name",3,4,5)#保存在列表中的顺序为5,4,3,2
    rpush(name,values)
    #同lpush,但每个新的元素都添加到列表的最右边
    lpushx(name,value)
    #在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边
    rpushx(name,value)
    #在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边
    llen(name)
    # name对应的list元素的个数
    print(r.llen("list_name"))、
    linsert(name,where,refvalue,value):在name对应的列表的某一个值前后插入一个新值
    #参数:
    # name,redis的name
    # where,BEFORE或AFTER
    # refvalue,标杆值,即:在它前后插入数据
    # value,要插入的数据
    r.lset(name,index,value):对name对应的list中的某一个索引位置重新赋值。
    # 参数:
    # name,redis的name
    # index,list的索引位置
    # value,要设置的值
    r.lrem(name,value,num):在name对应的list中删除指定的值
    # 参数:
    # name,redis的name
    # value,要删除的值
    # num, num=0,删除列表中所有的指定值;
    # num=2,从前到后,删除2个;
    # num=-2,从后向前,删除2个
    lpop(name):在name对应的列表的左侧获取第一个元素并在列表中移除,返回值删除那个元素的值
    #扩展: rpop(name) 表示从右向左操作
    lindex(name,index):在name对应的列表中根据索引取列表元素
    lrange(name,start,end):在name对应的列表分片获取数据

    import  redis
    redis_config = {
        "host" : "192.168.88.100",
        "port":6379
    }
    pool = redis.ConnectionPool(**redis_config)
    r = redis.Redis(connection_pool=pool)
    #lpush 从list的左边增加一个元素
    #rpush 从list的右边增加一个元素
    r.lpush("list","test")
    r.rpush("list","rhello")
    r.lpush("list",2,3,4,5)
    print(r.lrange("list",0,-1))
    #在中间位置增加元素
    #linsert(name,where,refvalue,value)
    #name list对应的key值
    #where  after or before
    # revalue  list中的某个元素
    #value 要增加的value
    r.linsert("list","after","test","world")
    print(r.lrange("list",0,-1))
    r.lset("list",2,"cnblogs")
    print(r.lrange("list",0,-1))
    print(r.lindex("list",2))
    print(r.lpop("list"))
    print(r.lrange("list",0,-1))

    运行结果:

    ['5', '4', '3', '2', 'test', 'rhello']
    ['5', '4', '3', '2', 'test', 'world', 'rhello']
    ['5', '4', 'cnblogs', '2', 'test', 'world', 'rhello']
    cnblogs
    5
    ['4', 'cnblogs', '2', 'test', 'world', 'rhello']


    set操作
    set集合就是不重复的列表
    sadd(name,values)
    #给name对应的集合中添加元素
    r.sadd("set_name","aa")
    r.sadd("set_name","aa","bb")
    smembers(name)
    #获取name对应的集合的所有成员
    scard(name)
    #获取name对应的集合中的元素个数
    r.scard("set_name")
    sinter(keys, *args)
    # 获取多个name对应集合的并集
    r.sadd("set_name","aa","bb")
    r.sadd("set_name1","bb","cc")
    r.sadd("set_name2","bb","cc","dd")

    print(r.sinter("set_name","set_name1","set_name2"))
    #输出:{bb}
    sismember(name, value)
    #检查value是否是name对应的集合内的元素
    spop(name)
    #从集合的右侧移除一个元素,并将其返回
    sunion(keys, *args)
    #获取多个name对应的集合的并集
    r.sunion("set_name","set_name1","set_name2")
    srem(name, value) 删除集合中的某个元素
    r.srem("set_name", "aa")
    例:

    import  redis
    redis_config = {
        "host" : "192.168.88.100",
        "port":6379
    }
    pool = redis.ConnectionPool(**redis_config)
    r = redis.Redis(connection_pool=pool)
    #r.sadd(name,*args)  增加一个那么对应的集合
    r.sadd("set_name","a","b","c")
    #smember 查看集合的所有元素
    print(r.smembers("set_name"))
    #scard 等同于list len函数   查看元素个数
    print(r.scard("set_name"))
    # srem删除值为value的指定集合中的某个元素
    r.srem("set_name","a")
    print(r.smembers("set_name"))

    运行结果:

    set(['a', 'c', 'b'])
    3
    set(['c', 'b'])
  • 相关阅读:
    2017-2018-2 20179202《网络攻防技术》第一周作业
    《构建之法(第三版)》第四章
    《深入理解计算机系统(第三版)》第四章
    《文献管理与信息分析》第三章
    我们不一样
    linux centOS 7安装mysql 5.7.24
    centOS 8 使用dnf安装Docker
    centOS7服务器/dev/vda1空间100%,没有可用空间
    深刻理解 Docker 镜像大小
    使用linux docker环境打包Springboot jar包为docker镜像
  • 原文地址:https://www.cnblogs.com/pythonlx/p/7906808.html
Copyright © 2011-2022 走看看