一、String
1.1、计数器
这个功能比较常见,比如用户转发数,评论数等等
INCR 命令
1.2、视频基本信息##
缓解数据库的压力。
1.3、分布式ID生成器##
比如mysql分库分表分表中,不通库相同的表的自增主键生成
二、Hash
简单来说就是MapMap,我的理解这个hash更适合存储一个对象。而且更节省空间,缺点编程稍微麻烦。
2.1、计数器
如果用户的个人信息都是存在一个hash中,我们最好还是扩展一个字段,把关于这个用户的计数放到这里面。
2.2、视频基本信息##
我的理解就是把信息字段化了,就是把数据模拟成真实的数据了,这里有个好处就是,比如视频信息有很多,但是有的时候我就要其中2到3个信息,如果用string结构,那么每次都取出2所有的数据进行序列化,效率不高
三、List
这个在java中就是双向链表结构,所以完全可以模拟队列。
LPUSH+LPOP stack栈
LPUSH+RPOP Queue 队列
LOUSH+BRPOP Message queue 消息队列
3.1、微博功能中的timeline##
比如发布一条微博,那么就执行lpush命令,取数据就用lrang命令。这里基本上就当成一个迷你的关系型数据库,但是里面存取的数据也是浓缩的。当用户真正点击详情的时候才去mysql数据库取数据。
四、SET
4.1、微博功能中共同关注##
这里就是利用set的sinter来实现的