尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

数据库与中间件

数据库与中间件 1、Redis常见数据类型五种常见数据类型String字符串单个对象或JSON、计数器、分布式锁Hash哈希表键值对缓存对象List列表消息队列可以头插和尾插Set集合去重且无序名单、集合运算场景ZSet有序集合去重排行榜等有序信息四种新增数据类型Bitmap二值状态标记用户签到或者登录HyperLogLog海量UV去重GEO地理信息相关Stream消息队列唯一ID2、Redis线程模型Redis 6.0之前使用单线程但是不是说整个Redis都是单线程而是说Redis接收请求、解析请求、读写数据、响应请求的过程是单线程采用的是IO多路复用的方式进行监听如果涉及耗时的后台操作比如释放文件、释放内存、刷盘操作还是有后台线程进行处理。Redis 6.0之后引入多线程用来处理网络I/O但是执行命令仍然是单线程。3、Redis缓存穿透、缓存击穿、缓存雪崩的区别及解决方法缓存穿透用户访问的数据缓存不存在数据库也不存在当大量类似的请求访问时会把流量全打到数据库上导致数据库压力骤增。比如用户构造大量类似id -1(不存在的id)访问数据库导致数据库压力倍增。可以用布隆过滤器解决。缓存击穿某个时间某个热点的key在缓存失效了或者Redis宕机导致大量流量打到数据库上面。可以用分布式锁/互斥锁、缓存预热。缓存雪崩同一时间大量key失效导致大量请求打到数据库。缓存击穿可以看成是缓存雪崩的子集可以使用随机TTL、多级缓存等方式。
返回列表