文章目录
redis常支持的数据结构
string,hash,list,set,sort set
使用于只需要改部分字段的场景
setnx 1001 true 【如果redis中已有1001,则不执行本次操作,没有则执行set操作】
只有一条线程能执行成功,执行不成功的线程就返回
8080执行set 1001 true,8090也执行,都存入数据库
后端服务繁忙,请稍后再试
多个请求过来,redis由于是单线程,所以会根据请求的先后顺序放入到队列中。一次只执行一条命令。单线程:天生就可以防并发。
这一条命令就可以解决并发问题。【redis单台是几万并发】
批量生产:便宜且快
map(key:user) value< map >(key:1:name,1:balance)
redis轻松实现高可用(并且它本身就有数据持久化:下次加载数据就读出来了)
redis集群也不会存在并发问题。
8001分配的槽位是0–1,8002分配的是1000–1001
购物车几千上万商品都可能存储在一个key上
数据分片是针对key去分片的
hash数据结构+redis集群【它没法帮你做数据分片存储,会导致数据过于集中】
生产者:不但send消息到队列中
消费者:不断监听是否有消息进来,没有就监听者,有就取消息。(如果没有消息,消费者就会阻塞在阻塞队列这里—阻塞队列即消息队列)通过brpop命令实现阻塞
关注了1000个大V,每个大v每天发两条消息【消息列表一天有2000消息】。现在有1亿用户。
现在设计数据库完成微博,微信号的消息流(还有保证性能)----redis做好了,可以直接不用数据库,()1T=1000G,几千redis服务器。千万级并发架构用redis
内存几十G放热数据,全量数据放在磁盘中的【几百上千T】,
reids来实现不用考虑性能,因为redis性能很高,而且单个redis不够,可以搭建redis集群。