zoukankan      html  css  js  c++  java
  • 20171127_七周一次课(11月27日)

    今日任务:

    七周一次课(11月27日)
    13.5 字符串操作
    13.6 list操作
    13.7 set操作

    笔记:

    string操作

    redis中的string在内存中都是按照一个key对应一个value来存储的。如:

    r.set(“name”, “lingxiangxiang”)

    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()          批量设置值

    r.mset(name1="shang", name2="ling")

    r.mset({"name3": "kong", "name4": "gu"})

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

    print(r.mget("name1", "name2", "name3", "name4"))

    append(name, value)

    r.append("name","lisi")

    print(r.get("name"))

    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对应的列表分片获取数据

    #!/usr/bin/env python

    # -*- coding:utf-8 -*-

    # @Time    : 2017/10/10 21:20

    # @Author  : lingxiangxiang

    # @File    : demon6.py

    import redis

    pool = redis.ConnectionPool(host="192.168.48.131", port=6379, db=0)

    r = redis.Redis(connection_pool=pool)

    # lpush  在list的左边增加一个元素           left

    # rpush  在list的右边增加一个元素           right

    r.lpush("list1", "test1")

    r.rpush("list1", "ling")

    r.lpush("list1", "test2")

    r.lpush("list1", "test3")

    r.lpush("list1", "test2")

    r.lpush("list1", 2, 3, 4)

    r.lpush("list1", "test2")

    print(r.lrange("list1", 0, -1))

    # 最终的list结果是    [4, 3, 2, "test3", "test2", "test1", "ling"]

    # 在中间位置增加一个元素

    # linsert(name,where,refvalue,value)

    # name   代表的是list对应的key值

    # where     AFTER   BEFORE

    # refvalue    list中的某个元素

    # value      你要增加的值是什么

    r.linsert("list1", "AFTER",  "test2", "hello")

    print(r.lrange("list1", 0, -1))

    r.lset("list1", 2, "world")

    # lset  更改某个元素的值

    # r.lset(name,index,value)

    print(r.lrange("list1", 0, -1))

    print(r.lindex("list1", 2))

    # lindex   查看list某个下标的值

    print(r.lpop("list1"))

    # lpop从list的最左边删除一个元素,返回删除元素的值

    print(r.lrange("list1", 0, -1))

    r.lrem("list1", "world")

    # r.lrem(name,value,num):

    # num,  num=0,删除列表中所有的指定值;

               # num=2,从前到后,删除2个;

               # num=-2,从后向前,删除2个

    print(r.lrange("list1", 0, -1))

    结果:

    ['test2', '4', '3', '2', 'test2', 'test3', 'test2', 'test1', 'ling']

    ['test2', 'hello', '4', '3', '2', 'test2', 'test3', 'test2', 'test1', 'ling']

    ['test2', 'hello', 'world', '3', '2', 'test2', 'test3', 'test2', 'test1', 'ling']

    world

    test2

    ['hello', 'world', '3', '2', 'test2', 'test3', 'test2', 'test1', 'ling']

    ['hello', '3', '2', 'test2', 'test3', 'test2', 'test1', 'ling']

    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")

  • 相关阅读:
    zookeeper开源客户端curator
    elastic-job(lite)使用的一些注意事项
    zookeeper典型应用场景之一:master选举
    zookeeper学习笔记
    spring-boot子模块打包的jar中去掉BOOT-INF文件夹
    win10如何找回自带的照片查看器
    Hbase shell详情
    linux tar.gz zip 解压缩 压缩命令
    Java中Volatile关键字详解
    系统变量之System.getenv()和System.getProperty()
  • 原文地址:https://www.cnblogs.com/zhuntidaoren/p/7903811.html
Copyright © 2011-2022 走看看