现在的位置: 首页 > 数据库 > 正文

key-value怎样实现list功能?key-list使用场景有哪些

2020年07月01日 数据库 ⁄ 共 1156字 ⁄ 字号 评论关闭

  互联网数据目前基本使用两种方式来存储,关系数据库或者keyvalue。但是这些互联网业务本身并不属于这两种数据类型,比如用户在社会化平台中的关系,它是一个list,如果要用关系数据库存储就需要转换成一种多行记录的形式,这种形式存在很多冗余数据,每一行需要存储一些重复信息。下面学步园小编来讲解下key-value怎样实现list功能?key-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功能?key-list使用场景有哪些”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.