Redis应用场景:
新浪微博在线用户很多,做数据分析,想看在线用户有多少,怎么算?
每一个用户只要一登录,就把计数器加一。
当前用户在线怎么看?
一张mysql表,select当前在线状态
用数据库存几亿个数据,就太大、太慢了(mysql超过500万就慢了)
最高效的方式:用Redis里的setbit方法,直接通过二进制位,比特位统计,比如第555位登录了,就吧第555比特位置为1,第10000号用户登录,就把第10000比特位置1(setbit n 10000 1),退出登录的话就置0(setbit n 10000 0),通过bitcount n可以得到有多少个1,就是当前用户数量。判断是否在线if getbit n 555 == 1: 就是在线。通过这个方式,10mb的内存可以存放1一个亿的用户情况。
Redis API使用