浅谈redis中set数据结构

244 阅读1分钟

结构特点

set的实现原理是利用Hash算法为key,value为null的HashMap.特点是无序不可重复.

场景一:微博点赞

key为文章的编号,value为用户ID,调用sadd方法实现.set中的数据量就是文章的点赞数量.

场景二:朋友圈点赞,推荐可能认识的人

key为朋友圈文章的id,value为用户ID,即可记录朋友圈点赞数,利用集合的交集,可以实现共同好友的记录,来实现推荐可能认识的人.

源码分析

public Long sadd(byte[] key, byte[]... members) {
    this.checkIsInMultiOrPipeline();
    this.client.sadd(key, members);
    return this.client.getIntegerReply();
}

checkIsInMultiOrPipeline 检查连接是否可用,并且是否有别的线程在操作该值.然后调用 RedisClient 客户端中的sadd方法,该方法已经封装了redis的操作命令,两个参数分别为key和value,然后将该结果影响的行数返回,我们可以根据返回的行数来确认加入了几条数据.

总结

redis中set集合的应用场景比较少,不如string和list,利用他的不可重复性,来实现微博朋友圈的点赞记录,也是比较不错的选择.