问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

redis pop 元素还在不在

发布网友 发布时间:2022-04-29 14:46

我来回答

1个回答

热心网友 时间:2023-10-12 13:20

Redis在很多方面与其他数据库解决方案不同:它使用内存提供主存储支持,而仅使用硬盘做持久性的存储;它的数据模型非常独特,用的是单线程。另一个大区别在于,你可以在开发环境中使用Redis的功能,但却不需要转到Redis。

转向Redis当然也是可取的,许多开发者从一开始就把Redis作为首选数据库;但设想如果你的开发环境已经搭建好,应用已经在上面运行了,那么更换数据库框架显然不那么容易。另外在一些需要大容量数据集的应用,Redis也并不适合,因为它的数据集不会超过系统可用的内存。所以如果你有大数据应用,而且主要是读取访问模式,那么Redis并不是正确的选择。

然而我喜欢Redis的一点就是你可以把它融入到你的系统中来,这就能够解决很多问题,比如那些你现有的数据库处理起来感到缓慢的任务。这些你就可以通过Redis来进行优化,或者为应用创建些新的功能。在本文中,我就想探讨一些怎样将Redis加入到现有的环境中,并利用它的原语命令等功能来解决传统环境中碰到的一些常见问题。在这些例子中,Redis都不是作为首选数据库。

显示最新的项目列表

下面这个语句常用来显示最新项目,随着数据多了,查询毫无疑问会越来越慢。

复制代码
代码如下:

SELECT * FROM foo WHERE ... ORDER BY time
DESC LIMIT 10

在Web应用中,“列出最新的回复”之类的查询非常普遍,这通常会带来可扩展性问题。这令人沮丧,因为项目本来就是按这个顺序被创建的,但要输出这个顺序却不得不进行排序操作。

类似的问题就可以用Redis来解决。比如说,我们的一个Web应用想要列出用户贴出的最新20条评论。在最新的评论边上我们有一个“显示全部”的链接,点击后就可以获得更多的评论。

我们假设数据库中的每条评论都有一个唯一的递增的ID字段。

我们可以使用分页来制作主页和评论页,使用Redis的模板:

-每次新评论发表时,我们会将它的ID添加到一个Redis列表:

LPUSH latest.comments <ID>

-我们将列表裁剪为指定长度,因此Redis只需要保存最新的5000条评论:

LTRIM latest.comments 0 5000

-每次我们需要获取最新评论的项目范围时,我们调用一个函数来完成(使用伪代码):

复制代码
代码如下:

FUNCTION
get_latest_comments(start,num_items):
id_list =
redis.lrange("latest.comments",start,start+num_items-1)
IF
id_list.length < num_items
id_list = SQL_DB("SELECT ... ORDER
BY time LIMIT ...")
END
RETURN id_list
END

这里我们做的很简单。在Redis中我们的最新ID使用了常驻缓存,这是一直更新的。但是我们做了*不能超过5000个ID,因此我们的获取ID函数会一直询问Redis。只有在start/count参数超出了这个范围的时候,才需要去访问数据库。

我们的系统不会像传统方式那样“刷新”缓存,Redis实例中的信息永远是一致的。SQL数据库(或是硬盘上的其他类型数据库)只是在用户需要获取“很远”的数据时才会被触发,而主页或第一个评论页是不会麻烦到硬盘上的数据库了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
写论文值得推荐的app 写论文app大全汇总 有啥好用又免费的文献查阅网站吗? 高仿苹果手机关机关不了机?是怎么回事?有那个朋友请告知! 高仿苹果6开机就是白屏黑苹果,关机关不了 怎么把电子相册保存到QQ空间相册 整个乡村音乐史上,最动人的25首歌 写给狗的歌 右侧肢体肌力4级是什么意思 肌力分级的评定标准 肌力4级是什么意思 redis内存数据库实现类似sql的功能 redis set集合可以分页吗 请使用Redis 做数据库 (Redis做为Driver) 平配合Servlet /JSP/JSTL... redis怎么做分页 spring redis cacheable 怎么做分页 英雄故事 急!急!急! 找英雄故事 急需英雄故事~~ 7.21北京特大暴雨中有什么感人的英雄事迹,体现出了什么北京精神?(具体点) 英雄故事!!! 北京闹市葬着一位18岁少年,高铁经过也要绕道而行,他有何特别? 口罩项目立项申请书(立项备案) u盘装win10系统时候无法格式化c盘怎么办? 如何格式化系统盘安装win10 安装win10系统时C盘不能格式化怎么解决? 消毒粉项目立项申请书 重装win10系统需不需要格式化c盘 如何只格式化c盘安装win10 &lt;&lt;城南旧事&gt;&gt;读后感 城南旧事里虎桥坊的阅读感想 电磁炉电源芯片接反会烧坏吗? redis存放SESSION后,有时redis自己会死掉,怎么回事 7805换成DC转换器后无法烧程序 24v转12v的电源芯片烧掉是什么原因导致 如果手机电源芯片烧坏了,手机还能用吗 电源供电不足会烧坏主板的电源芯片吗? 空调正常工作的环境温度是多少? 请教DC-DC BUCK电路中MOSFET及负载被烧原因 摩尔庄园礼仪课 电源芯片炸坏是什么原因 水浒q传小红帽怎么获得 开关电源芯片烧坏是什么原因 剑网三明教破军小红帽怎么获得 dc-dc稳压芯片问题,直流电路直流电源问题 电信升了500兆,实际测速100M? dcdc降压模块反接电源会导致mcu被烧坏吗 小红帽获得过国家专利技术吗? 电信500m的宽带测速50~100m宽带正常吗? dcdc输出回路的困惑??? 12v开关电源维修中电源管理芯片损坏的几率大吗