数值操作 get set del
Getset 先获取再设置
数值value的增减 incr decr incrby decrby
如果key不存在,设置初值为0再加减1
累加的value值如果是字符串,抛异常
incrby decrby 累加/累减指定的值
拼凑字符串 append 在原value基础上拼接字符串 没有则创建
赋值
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
有排序列表
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
使用场景:消息队列
一个列表添加消息-生产者
一个列表取出消息-消费者
无排序列表,元素不重复
添加删除元素 sadd srem
获取集合中的元素smembers
判断集合中有没有某元素sismember
差集运算sdiff
交集运算sinter
并集运算sunion
获得set成员数量scard
随机返回set的一个成员 srandmember
将差集/交集/并集存储到另外一个集合上
Set的使用场景:
跟踪一些唯一性数据
使用差交并集操作,维护数据对象的关联关系
(比如,两个用户微博关注的共同好友)
与set的区别在于:sorted-set的每个元素都定义了一个分数,根据分数进行排序。集合元素不能重复,分数可以重复。
成员在集合中的位置是有序的。
添加元素 zadd分数,值
如果元素就存在,更新分数
获得元素
获得数量
获得分数
删除元素zrem
按照范围删除
删除前4个元素
按照分数删除元素 删除80-100分之间的元素
范围查询zrange
由大到小查询
根据分数范围查询元素
增加某元素分数
获取分数在某个范围的成员个数