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模式

 

posted @ 2021-03-26 16:25  ProZkb  阅读(139)  评论(0编辑  收藏  举报