Redis数据结构(二)

来源:互联网 发布:美少女战士 知乎 编辑:程序博客网 时间:2024/06/15 18:48
    本博客介绍Redis的数据结构(列表,集合)
    一、列表
        在Redis中可以对列表两端插入(push)和弹出(push)
        还可以获取指定范围的元素列表、获取指定索引下标的元素。
        1.列表有两个特点:
            1.1 列表中的元素是有序的,这就意味着可以通过索引下标获取某个元素。

            1.2 列表中的元素是可以重复的。


        2.添加操作:
            2.1 从右边插入元素:rpush key value[value ..]
            2.2 从左边插入元素:lpush key value[value ..]
            2.3 lrange0 -1命令可以从左到右获取列表的所有元素
            2.4 向某个元素前或者后插入元素:linsert key before|afert pivot value
            2.5 linsert命令会从列表中找到等于pivot的元素,在其前或后插入一个value
        3.查找
            3.1获取指定范围内的元素:lrange key start end
            3.2索引下标有两个特点:
                3.2.1 索引下标从左到右是0到n-1,但是从右到左是-1到-N
                3.2.2 lrange中的end选项包含了自身
            3.3获取列表中指定索引下标的元素:lindex key index
            3.4获取列表长度:llen key
        4.删除
            4.1从列表左侧弹出元素:lpop key
            4.2从列表右侧弹出元素:rpop key
            4.3删除指定元素:lrem key count value
                count >0 从左到右,删除最多count个元素
                count <0 从右到左,删除最多count绝对值个元素
                count =0 删除所有
        5.修改
            5.1 修改指定索引下标的元素 lset key index newValue
        6.阻塞操作
            阻塞弹出:
            blpop key [key ..]timeout
            brop key [key ..]timeout
            blpop和brop是lpop和rpop的阻塞版本
        二、集合
            集合类型也是保存多个字符串元素,但是集合是无序的,不能通过索引下标获取元素
            1.集合内操作
                1.1添加元素:sadd key element[element ..]
                1.2删除元素:srem key element[element ..]
                1.3计算元素个数:scard key
                1.4判断元素是否在集合中:sismember key element
                1.5随机从集合内返回指定个数元素:srandmember key [count]
                    count是可选参数:默认为1
                1.6从集合内随机弹出元素:spop key
                1.7获取所有元素smembers key
            2.集合间操作
                1.求集合的交集:sinter key[key ...]
                2.求多个集合的并集:sunion key [key ..]
                3.求多个集合的差集:sdiff key [key ..]