首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REDIS:具有随机访问权限的列表

REDIS:具有随机访问权限的列表
EN

Stack Overflow用户
提问于 2013-10-18 16:56:17
回答 1查看 1.2K关注 0票数 0

在Redis中保存一个大列表(例如10K项)的最佳方法是什么,我也想通过键有效地检索条目。

看起来Redis没有与Java的OrderedHashMap类似的数据结构,因此也许有必要维护一个集合和一个列表,并确保它们保持同步。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-19 18:25:19

使用排序集;

添加一些书签;使用当前时间对score按时间顺序进行排序:

代码语言:javascript
复制
> zadd bookmarks 123 "bk1"
> zadd bookmarks 456 "bk2"
> zadd bookmarks 789 "bk3"
> zadd bookmarks 999 "bk4"

要获得书签,首先需要索引:

代码语言:javascript
复制
> zrank bookmarks "bk3"
> "3"

...then按索引提取书签:

代码语言:javascript
复制
> zrevrange bookmarks 3 3
> "bk3"

如果不想使用时间戳,可以使用"1“对书签进行排序,以表示分数:

代码语言:javascript
复制
> zadd bookmarks 1 "link_xyz"
> zadd bookmarks 1 "link_abc"
> zadd bookmarks 1 "link_foo"

> zrange bookmarks 0 -1

1) "link_abc"
2) "link_foo"
3) "link_xyz"

索引查找是O(log(n)),添加到该O(log(n)+1)中可以按索引提取单个成员;对于列表而言,比O(n)更好。

另外,如果您两次添加相同的书签,redis将自动替换前一个成员,因此避免重复。

希望能帮上忙

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19455079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档