赞
踩
Redis是一个伟大的工具,用来在内存中存储列表是很合适的。
不过,如果你想要快速搜索列表,同时需要让列表中每项都在一定时间后过期,应该怎么做呢?
首先,当然不能使用不同的类似的key存储数据,然后使用keys命令来获取所有类似key的数据。这样的开销是不可接受的。
Redis并没有直接提供方法做这件事,但是这是可以做到的!虽然最后用的未必是Redis的List数据结构。
我接下来会展示给你看。
问题
最近,我遇到一个问题,我有一个数据列表,需要用它来制作折线图,我准备使用API返回这个数据列表,然后在前端绘图。
这个数据列表本身是挺大的,然后它还会一直更新,所以放在数据库是不合适的,我计算过从数据库取回需要10s。所以我决定使用redis。
碰到一个问题,就是数据列表中的数据,如果超过一定时间的话我是不需要了,否则这个列表会变得无比巨大。所以我需要redis对列表中的每个项都设置过期时间。
然后我在网上找到这篇文章,它描述了两种办法。
在讲解这两种办法之前,你需要明白redis的两个数据结构:
Redis的集合:“无序的字符串集合”,它的项有下面的特点
唯一的(如果加入重复的数据,redis会默默的拒绝)
无序,并且不可以用任何方法(在redis中)排序
Redis有序集合:“有序的字符串集合“,它的项有下面的特点:
和集合一样,每个项都是唯一的
拥有积分(项的积分并不必须是唯一的)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。