Redis数据类型中的list类型
Redis的List数据类型:
架构设计:
代码级设计:
代码级设计
架构设计
redis的list类型2
redis的list类型
Redis数据类型 中的list类型
1、lpush/lpushx:将值插入到(是否存在)列表头部
2、rpush/rpushx:从尾部插入
3、lpop:移除第一个元素并获取值
4、rpop:移除最后一个元素并获取值
5、ltrim:保留指定区间内元素
6、llen:获取元素长度
7、lset:通过索引设置元素的值
Redis秒杀代码级设计
Redis秒杀架构
Redis 常用命令
LTRIM:保留置顶区间内的元素
LLEN:获取列表长度
LSET:通过索引设置列表元素值
LINDEX:通过索引获取列表中的元素
LRANGE:获取列表置顶范围内的元素
LPUSH/LPUSHX:将值插入到(/存在的)列表头部->带X为存在的
RPUSH/RPUSHX:将值插入到(/存在的)列表尾部->带X为存在的
LPOP:移出并获取列表的第一个元素
RPOP:移出并获取列表的最后一个元素
Redis List类型
消息队列的应用场景
冗余:记录订单处理程序
解耦:分离两套系统,入队出队系统各不影响
流量削峰:抢购秒杀
异步通信:入队
扩展性:订单队列可扩展,新接口处理。
排序保证:顺序排位
队列介质:Mysql,Redis(单个包太大,效率低),消息系统
左侧插入 lpush
redis消息队列代码设计
redis消息队列架构
redis的list操作
redis的list操作
list类型2
Redis数据类型中的list类型
memcache断电不会保存数据
Redis类中list类型
# 流量削峰案例:Redis的list类型实现秒杀
秒杀:在同一时间会有巨大的访问量。
Redis基于内存,速度较快,Mysql数据库则需要在硬盘中写入数据,速度慢。
另外,数据库如果阻塞其他的业务也将受到影响。
Redis是数据可持久化的,会周期性的将数据写入硬盘。不用担心断电。
Redis提供五种数据类型:字符串、双向链表、哈希表、集合、有序集合。
list类型是一个双向链表,支持头部和尾部插入元素。最多可支持40亿个元素。
处理简单轻量的消息队列时非常有优势。
代码级设计
秒杀程序把请求写入Redis.(Uid, time_stamp)
检查Redis已存放数据的长度,超出上限直接丢弃
死循环处理存入Redis的数据并入库
Redis list
LPUSH/LPUSHX
RPUSH/RPUSHX
LPOP
RPOP
LTRIM
LLEN
LSET
LINDEX
LRANGE