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)
转载于:https://blog.51cto.com/peterxu/1661322