卡飞资源网

专业编程技术资源共享平台

内存节省到极致!Redis中的压缩表,值得了解..

前言

前面几周我们一起看了Redis底层数据结构,如动态字符串SDS,双向链表Adlist,字典Dict,跳跃表,整数集合intset,如果有对Redis常见的类型或底层数据结构不明白的请看上面传送门。

今天来说下zset的底层实现压缩表(在数据库量小的时候用),如果有对zset不明白的,看上面的传送门哈。

压缩列表的概念提出

传统的数组

RMQ——支持合并和优先级的消息队列

业务背景

在一个项目中需要实现一个功能,商品价格发生变化时将商品价格打印在商品主图上面,那么需要在价格发生变动的时候触发合成一张带价格的图片,每一次触发合图时计算价格都是获取当前最新的价格。上游价格变化的因素很多,变化很频繁,下游合图消耗GPU资源较大,处理容量较低。

用了redis一定可以保证原子性吗

概念

什么原子性?程序在执行过程中,要么全部都执行,要么全部都不执行,不可能执行了一半,滞留了一半。我们知道redis是IO多路复用模型,即一个线程来处理多个TCP连接,这样的好处就是,即使客户端并发请求,也得排队处理,一定程度上解决了多线程模型带的并发问题,所以redis是并发安全的?从redis本身的架构模式来说,并发是安全的,不存在同时执行两个客户端的命令。但是如果因为某些业务场景用的有问题,那么即使是单线程的redis也无能为力。

<< < 1 2 >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言