redis实际使用场景举例

1.string

存session,session存用户基本信息,登录时间、用户名、vtypes、utypes;反正和需要独立过期时间关联的key都可以用string,比如mongo的“函数锁”,比如通用弹窗需要确定之前是否弹过,mongo本身缺乏事务类似select for update的支持,所以会用到一个redis锁来判断当前是否已经有弹窗需求在执行;

2.hash表

有公共前缀,又没有独立的过期需求的key,可以用hash代替string,能节省内存和减少string的key便于redis回收;比如治理员每天每人能申请三次,每个治理员每天的误审个数不能超过5等,都是一个大hash,表明为比如police_daily_order_20180930,之后以uid和申请次数k v;每晚触发脚本保存后删除即可;

3.list

基本没有使用场景,像新鲜流和消息队列组内也有人想过,新鲜流不用说了删除起来太麻烦,消息队列主要是redis内存昂贵以及害怕没有及时消费的消息撑爆;还有想用来控制秒杀不爆仓的,如果没有每个商品的个性化需求直接用decrby就可以了;

4.set

没用过

5.zset

pvt排行榜用;

6.hyperloglog

听萄哥说过之前用这个统计过uv,机器数,ip数等,后来就用神策了;

你可能感兴趣的:(工作心得)