Redis底层结构
redis 存储结构
redis的存储结构从外层往内层依次是redisDb、dict、dictht、dictEntry。
redis的Db默认情况下有16个,每个redisDb内部包含一个dict的数据结构。
redis的dict内部包含dictht的数组,数组个数为2,主要用于hash扩容使用。
dictht内部包含dictEntry的数组,可以理解就是hash的桶,然后如果通过挂链法解决
一般不会,如果做消息队列,一般使用list,消息被消费方消费后,即lpop掉后,该消息就在内存中删除了。如果是缓存的话,一般不主动删除或过期,数据会一直存在。
Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。Redis 优势性能极高 C Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型 C Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。原子 C Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。丰富的特性 C Redis还支持 publish/subscribe, 通知, key 过期等等特性。
普通分页
一般分页做缓存都是直接查找出来,按页放到缓存里,但是这种缓存有很多缺点。
如缓存不能及时更新,一旦数据有变化,所有的之前的分页缓存都失效了。
比如像微博这样的场景,微博下面现在有一个顶次数的排序。这个用传统的分页很难应对。
一种思路
最近想到了另一种思路。
数据以ID为key缓存到Redis里;
把数据ID和排序打分存到Redis的skip list,即zset里;
当查找数据时,先从Redis里的skip list取出对应的分页数据,得到ID列表。
用multi get从redis上一次性把ID列表里的所有数据都取出来。如果有缺少某些ID的数据,再从数据库里查找,再一块返回给用户,并把查出来的数据按ID缓存到Redis里。
在最后一步,可以有一些小技巧:
比如在缺少一些ID数据的情况下,先直接返回给用户,然后前端再用ajax请求缺少的ID的数据,再动态刷新。
还有一些可能用Lua脚本合并操作的优化,不过考虑到Lua脚本比较慢,可能要仔细测试。
如果是利用Lua脚本的话,可以在一个请求里完成下面的操作:
查找某页的所有文章,返回已缓存的文章的ID及内容,还有不在缓存里的文章的ID列表。
其它的一些东东:
Lua是支持LRU模式的,即像Memcached一样工作。但是貌似没有见到有人这样用,很是奇怪。
可能是用redis早就准备好把redis做存储了,也不担心内存的容量问题。
喜马拉雅是一款非常受欢迎的音频应用程序,提供了丰富多样的音频内容。如果您想在喜马拉雅上查看少儿艺术内容,可以按照以下步骤进行操作:步骤一:打开喜马拉雅应用首先,在您的手机或电脑上打开喜马拉雅应用程序。步骤二:进入排行榜界面在喜马拉雅应用程序
在实况8中,运用高频盘带技巧能够有效提升球员的带球能力。高频盘带技巧指的是在己方带球时,通过频繁变换方向和速度来干扰对手,增加带球的难度。这种带球方式不仅能帮助球员摆脱对手的干扰,提高传球质量,还能更好地组织反击。高频盘带的具体步骤1. 按
一、了解AI调色原理首先,我们需要了解AI调色的原理。AI调色利用人工智能算法和大数据分析,识别字体的轮廓和结构,并根据预设的调色规则对其进行着色。二、选择适合的AI调色工具接下来,我们需要选择适合的AI调色工具。目前市场上有很多优秀的AI
ps怎么剪裁成圆角圆角矩形?ps布料裁剪成圆角圆角矩形步骤∶1、可以打开ps,先打开你要裁剪制作的图片;2、在损毁的图层上,画一个圆角矩形,选择类型工具栏里的“圆角矩形工具”;3、画好圆角矩形,圆角矩形大小明确的你必须的设置表就行;4、按住
什么是三恒系统?做三恒系统的公司有哪些?三恒系统是近些年科技住宅推广的一个概念,来源于欧洲,目前国内有几家开发商,如智悦、当代、朗诗、金茂等,猛的在住房中做研究和普遍推行这个系统。通俗的讲,“三恒”,指的是恒定的温度、恒定的湿度和恒定的空气
抖音作为一款热门的短视频社交应用,不仅让用户可以欣赏到各种有趣的短视频,还给予了用户参与抽奖和领取红包的机会。本文将为大家详细介绍如何在抖音中领取红包,以及相关的操作步骤。第一步是下载并安装抖音应用,如果你已经拥有了抖音,可以直接跳过这一步
word上的扇形图可以打印出来吗?word中做扇形统计图的方法:1、可以打开word---工具栏上“插入到”--图表--饼图--自动弹出EXCEL文档---把你的数据输进来,判断即可成功扇形统计图的插入。2、word中在工具栏里就有。鼠标排
了解Photoshop的直排文字功能在Photoshop软件中,我们经常需要添加文字到设计中以传达信息或增强视觉效果。有时候,为了更好地适应设计布局,我们需要使用直排文字功能。直排文字是文字沿垂直方向排列而不是水平方向,使得设计更加多样化和
在Word文档中插入特殊符号是我们常见的需求之一。其中,打异或号即⊕也是一个常见的需求。下面将详细介绍在Word中如何进行操作。步骤一:切换输入法为搜狗输入法首先,在需要插入异或号的地方,确保你的输入法已经切换为搜狗输入法。这是因为搜狗输入
使用WPS表格制作简单实用的表格是一项非常重要的技能,无论是在工作中还是日常生活中,我们都可能需要运用到这项技能。下面将详细介绍如何通过WPS表格来制作一个美观实用的表格。 打开WPS表格,新建空白表格首先,打开WPS表格软件,并新建一个空