key-value如何实现list功能
这篇文章给大家分享的是有关key-value如何实现list功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
key-value怎样实现list功能
如果用key-value中的value存储list,只能实现最简单的列表功能(按照id或时间先后排序,例如使用memcache的append或prepend协议).其他list操作只能靠客户端操作,性能很差,如果数据量较大,操作时间是无法接受的,并发也会遇到巨大挑战).
我们目前在使用的mighty(内部研发)持久层框架对list的操作就是基于memcache的appendprepend协议实现对id列表的简单操作,满足了大多简单列表的场景.缺点是当影响排序的更新操作较多时cache的命中率会下降的很厉害.
什么是key-list
key-list系统key对应的”value”是一个list(eg.setlist),可以对list中的单个item进行操作,理想的key-list需要如下特点:
1.list可以是海量的、且操作性能高效
2.list是可以是有序的、且可动态调整顺序
key-list使用场景有哪些
论坛中的主题列表、回复列表
微博中的用户关注列表、用户feed列表、用户关注feed列表
最近访问列表
集合操作:求交集并集差集(sdiffsintersunion)
好友推荐
排行榜
开源的key-list系统
redis
Redisisanopensource,advancedkey-valuestore.Itisoftenreferredtoasadatastructureserversincekeyscancontainstrings,hashes,lists,setsandsortedsets.
redis也被我列入到key-list系统中,是因为redis是支持list操作的,正如timyang在博客中说的:对Redis的作用的不同解读决定了你对Redis的使用方式.
目前sinaalibabadigg等网站已经在使用redis.
memlink
Memlink是天涯社区开发的一个高性能、持久化、分布式的Key-list/queue数据引擎。
感谢各位的阅读!关于“key-value如何实现list功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341