String类型
计数器类
INCR key
相当于 i++
将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
INCRBY key increment
相当于 i += increment
将 key 所储存的值加上增量 increment 。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
INCRBYFLOAT key increment
为 key 中所储存的值加上浮点数增量 increment
DECR key
将 key 中储存的数字值减一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
DECRBY key decrement
将 key 所储存的值减去减量 decrement 。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
List类型
栈、队列、阻塞队列
RPUSH key value [value ...]
将一个或多个值 value 插入到列表 key 的表尾(最右边)。
RPOP key
移除并返回列表 key 的尾元素。
LPUSH key value [value ...]
将一个或多个值 value 插入到列表 key 的表头
LPOP key
移除并返回列表 key 的头元素。
Set类型
抽奖、集合交并差(共同关注、共同好友)
SRANDMEMBER key [count]
如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。可选的 count 参数。
SPOP key
移除并返回集合中的一个随机元素。
SDIFF key [key ...]
返回一个集合的全部成员,该集合是所有给定集合之间的差集。
A={1,bai2,3,4,5} B={1,2,3,10}
差集:B-A={10},即把B中属于A的元素去掉。
SINTER key [key ...]
返回一个集合的全部成员,该集合是所有给定集合的交集。
SUNION key [key ...]
返回一个集合的全部成员,该集合是所有给定集合的并集。
ZSet类型
排序
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。
有序集成员按 score 值递增(从小到大)次序排列。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。
有序集成员按 score 值递减(从大到小)的次序排列。
ZRANGE key start stop [WITHSCORES]
返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序。
ZREVRANGE key start stop [WITHSCORES]
返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小)来排列。
二者的区别:一个是“索引”,一个是“score”
range 后面跟的是2个索引下标,可以实现 mysql中limit的功能
rangebyscore后面跟的是范围,只要符合都查出来,类似mysql中的 between...and...
geospatial 地理空间
底层是用zset实现的,geospatial本身并没有提供删除的API,可以通过zset的API来操作geospatial的key
HyperLogLog
基数统计。
对唯一项目进行计数需要使用与要计数的项目数量成比例的内存量,因为您需要记住过去已经看到的元素,以避免多次对其进行计数。
但是,有一组算法会以内存换取精度:在Redis实现的情况下,您得出的带有标准误差的估计度量最终会小于1%。
该算法的神奇之处在于,您不再需要使用与所计数项目数成正比的内存量,而是可以使用恒定数量的内存!最坏情况下为12k字节。
可用于统计网页的UV
UV( unique visitor,网站独立访客)
通过互联网访问、流量网站的自然人。1天内相同访客多次访问网站,只计算为1个独立访客。
该概念的引入,是从用户个体的角度对访问数据进行划分。
bitmaps
位图不是实际的数据类型,而是在String类型上定义的一组面向位的操作。
由于字符串是二进制安全Blob,并且最大长度为512 MB,因此它们适合设置多达2 ^ 32个不同的位。
位操作分为两类:固定时间的单个位操作(如将一个位设置为1或0或获取其值),以及对位组的操作,例如,计算给定位范围内设置位的数量(例如,人口计数)。
位图的最大优点之一是,它们在存储信息时通常可以节省大量空间。例如,在以增量用户ID表示不同用户的系统中,仅使用512 MB内存就可以记住40亿用户的单个信息(例如,知道用户是否要接收新闻通讯)。
可实现分布式的布隆过滤器。