Redis关于高并发 秒杀芝士
在进行一些高并发秒杀的活动中,会用到Redis,
因为Redis有一个方法是自减Decr()
在进行抢购的时候,是要进行两个操作
1:获取库存
2:库存减少
在代码中也是可以用锁的方式保障不会进行超买
但是,相对于Redis而言,Redis更加的简便,只需要一个自减Decr()方法
其实Redis5也是一个单线程,即使是发送到Redis服务器
会把指令存放到Redis服务器的队列中去,再执行队列。
Redis是单线程版本,不是说redis本身只有一个线程,
而是告诉我们执行指令的时候,只有一个线程
还是有其他的线程(例如,持续化的线程..)
Redis里面的五大数据结构,如果能使用hash,就尽量的使用hash
底层数据结构比较节省资源,而且他的性能非常高
redis的5种数据类型: string 字符串(可以为整形、浮点型和字符串,统称为元素) list 列表(实现队列,元素不唯一,先入先出原则) set 集合(各不相同的元素) hash hash散列值(hash的key必须是唯一的) sort set 有序集合
最新N个数据====》通过List实现按自然时间排序的数据
排行榜/Top N===》利用Zset(有序集合)
时效性的数据(手机验证码)===》Expire 过期
计数器/秒杀=====》原子性,自增方法Incr,Decr
去除数据中大量的重复数据===》利用SET集合
构建队列====》利用list集合
发布订阅消息系统===》Pub/Sub模式
人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。