redis使用场景如下:

    1.在主页中显示最新的项目列表。

    2.删除和过滤

    3.排行榜及相关问题。

    4.按照用户投票和时间排序。

    5.过期项目处理。

    6.计数。

    7.特定时间内的特定项目。

    8.实时分析正在发生的情况,用于数据统计与防止垃圾邮件等。

    9.Pub/Sub。

    10.队列。

    11.缓存。

    12.关注者列表。

    13.共同关注。

     ...............



1、redis包含如下结构(引自官方):

  • Binary-safe strings.

  • Lists: collections of string elements sorted according to the order of insertion. They are basically linked lists.

  • Sets: collections of unique, unsorted string elements.

  • Sorted sets, similar to Sets but where every string element is associated to a floating number value, called score. The elements are always taken sorted by their score, so unlike Sets it is possible to retrieve a range of elements (for example you may ask: give me the top 10, or the bottom 10).

  • Hashes, which are maps composed of fields associated with values. Both the field and the value are strings. This is very similar to Ruby or Python hashes.

  • Bit arrays (or simply bitmaps): it is possible, using special commands, to handle String values like an array of bits: you can set and clear individual bits, count all the bits set to 1, find the first set or unset bit, and so forth.

  • HyperLogLogs: this is a probabilistic data structure which is used in order to estimate the cardinality of a set. Don't be scared, it is simpler than it seems... See later in the HyperLogLog section of this tutorial.


2、String类型小结

    a)、string类型的value最大为512M。可以存储任何类型的数据。

    b)、mset,msetnx区别,使用msetnx时,只要有一个key存在,则该语句就不执行。

    c)、用于统计用户每月登录次数时,可使用setbit,getbit,bitcount,占用空间小且方便。

3、list类型小结

    a)、string类型的232 - 1 ,当列表数据达到几百万时,访问数据依然很快(访问列表中间数据时较慢),时间复杂度O(N)。

    b)、使用时间轴时,可以使用lpush将数据放在最上面,通过lrange来获取数据

    c)、通过ltrim删除不访问的数据来达到top N的结果。

    d)、BLPOP、BRPOP、BRPOPLPUSH获取数据时,会阻塞当前进程,直到获取数据或到了指定的时间(单位s)