set
INCR key \t\t\t//将key中储存的数字值加1DECR key \t\t\t//将key中储存的数字值减1
x1
bitmap
数值
127.0.0.1:6379> sadd set2 a b c(integer) 3127.0.0.1:6379> sadd set3 b c d(integer) 3127.0.0.1:6379> SUNION set2 set31) \"b\"2) \"a\"3) \"c\"4) \"d\"127.0.0.1:6379> SDIFF set2 set31) \"a\"
127.0.0.1:6379> LPUSH l1 a b c d(integer) 4127.0.0.1:6379> LRANGE l1(error) ERR wrong number of arguments for 'lrange' command127.0.0.1:6379> LPOP l1\"d\"127.0.0.1:6379> LRANGE l1 0 -11) \"c\"2) \"b\"3) \"a\"
127.0.0.1:6379> setbit 20200101 1 1(integer) 0127.0.0.1:6379> setbit 20200101 8 1(integer) 0127.0.0.1:6379> setbit 20200102 8 1(integer) 0127.0.0.1:6379> BITOP or res 20200101 20200102(integer) 2127.0.0.1:6379> BITCOUNT res 0 -1(integer) 2
list
127.0.0.1:6379> ZADD zset4 8.8 ksafjalksjfdsakljfdsljfkdfkjasfksjdfdkjfdslkajfalksjf (integer) 1127.0.0.1:6379> OBJECT encoding zset4\"ziplist\"127.0.0.1:6379> ZADD zset4 8.8 ksafjalksjfdsakljfdsljfkdfkjasfksjdfdkjfdslkajfalksjfdsafadfdsafdsafdsafdsafdsafdsaf(integer) 1127.0.0.1:6379> OBJECT encoding zset4\"skiplist\"
01000000
127.0.0.1:6379> setbit jiangzuohui 2 1(integer) 0127.0.0.1:6379> setbit jiangzuohui 364 1(integer) 0127.0.0.1:6379> BITCOUNT jiangzuohui 0 -1(integer) 2setbit 从0数组开始
127.0.0.1:6379> hset user name jiang(integer) 1127.0.0.1:6379> hset user age 18(integer) 1127.0.0.1:6379> HGETALL user1) \"name\"2) \"jiang\"3) \"age\"4) \"18\"127.0.0.1:6379> hget user name\"jiang\"127.0.0.1:6379> hget user age\"18\"127.0.0.1:6379> HINCRBY user age -1
登录用户某段时间的的活跃数:
value是双向连表
zset
点赞统计限流
x3
skiplist:比较的场合,不用所有的值进行比较,根据层级查找,貌似红黑树。插入新的数据 要随机造层:
127.0.0.1:6379> zadd zset1 1.6 apple 1.2 banana 3.8 orange(integer) 3127.0.0.1:6379> ZRANGE zset1 0 -1 1) \"banana\"2) \"apple\"3) \"orange\"127.0.0.1:6379> ZRANGE zset1 0 -1 withscore(error) ERR syntax error127.0.0.1:6379> ZRANGE zset1 0 -1 withscores1) \"banana\"2) \"1.2\"3) \"apple\"4) \"1.6000000000000001\"5) \"orange\"6) \"3.7999999999999998\"127.0.0.1:6379> ZRANGE zset1 0 11) \"banana\"2) \"apple\"127.0.0.1:6379> ZREVRANGE zset1 0 11) \"orange\"2) \"apple\"127.0.0.1:6379> OBJECT encoding zset1\"ziplist\"
GETBIT k1 1 1@
key持有value的首部和尾部
redis类型场景
字符串
value超过128位
hash
x10
x2
zset实现
skiplist
x15
同向:栈异向:队列数组ltrim:评论列表
127.0.0.1:6379> BITCOUNT k1 0 -1(integer) 2127.0.0.1:6379> BITCOUNT k1 0 0(integer) 2127.0.0.1:6379> SETBIT k2 1 1(integer) 0127.0.0.1:6379> SETBIT k2 6 1(integer) 0127.0.0.1:6379> BITOP and andresult k1 k2(integer) 1127.0.0.1:6379> get andresult\"@\"127.0.0.1:6379> BITOP or orresult k1 k2(integer) 1127.0.0.1:6379> get orresult
SETBIT k1 1 1@
场景:详情-聚合数据统计数:粉丝,点赞。。。
场景:共同关注
出勤统计:任意用户窗口内,登录天数
ziplist
场景:新闻排行榜
String
127.0.0.1:6379> SRANDMEMBER set1 21) \"oxox\"2) \"xoox\"127.0.0.1:6379> SRANDMEMBER set1 21) \"oxox\"2) \"xxoo\"127.0.0.1:6379> SMEMBERS set11) \"oxox\"2) \"xxoo\"3) \"xoxo\"4) \"ooxx\"5) \"xoox\"127.0.0.1:6379> spop set1\"xxoo\"127.0.0.1:6379> spop set1\"ooxx\"127.0.0.1:6379> spop set1\"xoox\"127.0.0.1:6379> spop set1\"oxox\"127.0.0.1:6379> spop set1
数据分析,常驻内存 bitmap临时导入redis,统计报表bitmap可以实现布隆过滤器https://www.jianshu.com/p/2104d11ee0a2
x14
场景:抽奖