Redis基础4 Redis的数据结构

 

1 字符串

 

 

数值操作 get set del

Getset 先获取再设置

数值value的增减 incr decr incrby decrby

如果key不存在,设置初值为0再加减1

累加的value值如果是字符串,抛异常

incrby decrby 累加/累减指定的值

拼凑字符串 append 在原value基础上拼接字符串 没有则创建

 

2 哈希

 

赋值 

Hset 设置hash对象一个key-value对、Hmset 设置hash对象多个key-value对

Hget 获取hash对象下的一个key对应的值

hmget获取hash对象下的多个key对应的值

Hgetall 获取hash对象所有key-value

Hdel 删除hash对象中指定key的key-value

del 删除整个hash对象

 

 

增加 hincrby

判断hash对象中key是否存在

获取hash对象key的数量

获取hash对象所有key

获取hash对象所有value

3 List

有排序列表

ArrayList数组方式:访问数据快,单数增加删除数据困难

双向链表:每一个元素都有上一个对象和下一个对象的指针,增加删除简单

两端添加 lpush左侧 rpush右侧

3 2 1 c b a

a b c 1 2 3

 

查看列表 lrange

两端弹出 lpop弹出第一个元素、rpop弹出最后一个元素

获取列表元素个数

列表存在才添加 lpushx rpushx

批量删除数据lrem

列表从头到尾遍历,删除两个3

列表从尾到头,删除两个1

删除列表里的所有2

 

设置列表某位的值 lset 0第一个元素 -1最后一个元素

插入元素 linsert

将某链表尾端数据弹出并添加到另一个链表头部 rpoplpush

使用场景:消息队列

一个列表添加消息-生产者

一个列表取出消息-消费者

4 set

无排序列表,元素不重复

 

添加删除元素 sadd srem

获取集合中的元素smembers

判断集合中有没有某元素sismember

差集运算sdiff

交集运算sinter

并集运算sunion

获得set成员数量scard

随机返回set的一个成员 srandmember

将差集/交集/并集存储到另外一个集合上

 

Set的使用场景:

跟踪一些唯一性数据

使用差交并集操作,维护数据对象的关联关系

(比如,两个用户微博关注的共同好友)

 

5 sorted-set

与set的区别在于:sorted-set的每个元素都定义了一个分数,根据分数进行排序。集合元素不能重复,分数可以重复。

成员在集合中的位置是有序的。

添加元素 zadd分数,值

如果元素就存在,更新分数

获得元素

  获得数量

  获得分数

删除元素zrem

按照范围删除

删除前4个元素

按照分数删除元素 删除80-100分之间的元素

 

范围查询zrange

由大到小查询

根据分数范围查询元素

增加某元素分数

获取分数在某个范围的成员个数