string、hash、list、set、zset
string大多数场景可以用作缓存,value为json字符串
hash购物车(用户ID作为hashKey,商品ID为内层key,商品的简单信息json作为value)
listStack(栈) = LPUSH + LPOP
Queue(队列) = LPUSH + RPOP
Blocking MQ (阻塞队列) = LPUSH + BRPOP(有数据进来才读取,实现类似监听的功能)
使用场景:微博消息,公众号消息,使用栈的结构,先进来的数据放后面,那么放最前面的都是最新的数据。
微信抽奖小程序
1、点击参与抽奖假如集合
SADD key{userId}
2、查看参与筹建的所有用户
SMEMBERS key
3、抽取count名中奖者
SRANDMEMBER key[count]:抽取一次
SPOP key[count]:抽取多次,每次抽取不重复
关注模型:
共同关注(求交集):SINTER key1 key2
热搜、点赞
ZSet常用操作ZADD key score member[[score member]…]-----往有序集合中假如带分值元素
ZREM key member[member…]-----从有序集合key中删除元素
ZCORE key member-----返回有序集合中key的member的分值
ZINCRBY key increment member-----为有序集合中key元素member的分值加上increment
ZCARD key -----返回有序集合key中元素个数
ZRABGE key start stop [WITHSCORES]-----正叙有序集合key从start下标到stop下标的元素
ZREVRANGE key start stop [WITHSCORES]-----倒叙有序集合key从start下标到stop下标的元素
ZUNIOnSTORE destkey numkeys key[key…]-----并集计算
ZINTERSTORE destkey numkeys key[key…]-----交集计算
1、哈希表
2、双向链表
3、压缩列表
4、跳表
跳表就是链表上冗余了一份数据,类似于b+树的索引,进行折半查找;
5、整数数组



