? 内存KV缓存/数据库,可以选择它? | 1分钟系列_CQITer_重庆IT人之家 yabo10.com亚博体育,亚博娱乐在线网站,亚博国际娱乐7171 ?

内存KV缓存/数据库,可以选择它? | 1分钟系列

亚博娱乐在线网站业务,绝大部分场景,会使用缓存服务。

《选redis还是memcache,源码怎么说?》

《memcache内核的知识点,值得收藏》

但有时候,确实会使用到进程内存缓存/数据库,这个时候,LevelDB就能派上用场了。

内存KV缓存/数据库,可以选择它? | 1分钟系列

啥是LevelDB?

LevelDB是Google开发的,一个速度非常块的KV存储库(storage library),它支持字符串的key与字符串的value,并且这种映射关系按key排序(ordered mapping)。

LevelDB有什么特点?

(1)key和value可以是字符串或者字节流;

(2)数据默认按key排列,有序存储;

画外音:调用方可以重载排序方法,以实现自定义排序。

(3)简单易用,基本操作只有3种:

Put(key, value)

Get(key)

Delete(key)

(4)提供原子批量修改接口;

(5)支持数据快照;

(6)支持数据自动压缩;画外音:使用的是snappy压缩算法。

(7)开源,文档很详尽,Google出品很可靠;

LevelDB有什么局限?

LevelDB不是一个SQL数据库,没有关系型的存储模型,不支持SQL语句,不支持索引;

同时只能有一个进程(当然,这个进程可以是多线程的)访问一个特定的数据库;

LevelDB只是一个lib库,没有实现什么client-server网络通讯什么的,当然用户可以自己将lib包装一层,实现自己的server;

LevelDB的性能如何?

内存缓存的特点就是快。

Google也进行了一系列测试:测试库共100w行记录,每条记录16字节的key,100字节的value,压缩后的value大概50字节。

写性能

顺序写:平均每次操作耗时1.765微秒,即支持每秒大概55w次顺序写操作;

顺序写+每次都刷盘:平均每次操作耗时268.409微妙,即支持每秒大概3700次的刷盘写操作;

随机写:平均每次操作耗时2.460微秒,即支持每秒大概40w次随机写操作;

更新写:平均每次操作耗时2.380微秒,性能和随机写差不多;

读性能

随机读:平均每次操作耗时16.677微秒,即支持每秒大概6w次随机读操作;

顺序读:平均每次操作耗时0.476微秒,即支持每秒大概210w次顺序读操作;

逆序读:平均每次操作耗时0.724微秒,即支持每秒大概130w次逆序读操作;

上述性能都是在没有打开“压缩”功能下的结果,如果打开“压缩”选项,性能会有所提升。

画外音:Google非常诚实的提到,由于100w行的数据量很小,这些数据是能够完全放入内存。

【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】

内存KV缓存/数据库,可以选择它? | 1分钟系列

相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 微软AI面试题有多难?这里有一份样卷

      究竟什么样的AI人才能被微软这样的巨头聘用呢?今天,文摘君就淘来了几道微软AI 面试题,同时给出了最基本的解答......

    06-25????来源:澎湃新闻网

    分享
  • 全球最聪明的大脑怎么看AI?他们预测了

      2017年AI领域取得了诸多成果。2018年AI又将何去何从?以下是来自世界顶级研究人员和行业领军人物对2018年AI领域发展作......

    02-20????来源:虎嗅网

    分享
  • 2017JavaScript框架战报 - React分战场

      我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完......

    02-27????来源:湖北新闻网

    分享
  • 小白学数据:教你用Python实现简单监督学

      监督学习作为运用最广泛的机器学习方法,一直以来都是从数据挖掘信息的重要手段。即便是在无监督学习兴起的近......

    03-05????来源:今日头条

    分享
  • 现代编程语言Swift、Kotlin等十大有趣功能

      最近学习了一些现代编程语言,比如Reason,Swift,Kotlin和Dart。这些编程语言提供了许多新功能,本文主要分享了我认......

    04-29????来源:祁东新闻网

    分享
  • 领域场景分析的6W模型

      组成场景的要素常常被称之为6W模型,即描写场景的过程必须包含Who,What,Why,Where,When与hoW这六个要素。......

    04-30????来源:砍柴网

    分享
  • 开源应用服务器WildFly 12发新季度交付模式

      WildFly 12 Final版本现在已经可以下载了,WildFly是一款灵活的开源应用服务器,支持开发人员构建轻量级应用程序。支持......

    05-10????来源:青岛新闻网

    分享
  • 基于Spring Cloud的微服务落地

      微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,......

    06-04????来源:广西新闻网

    分享
  • 为什么阿里工程师纷纷在内网晒代码?

      前阵子,在阿里一个小黑屋里,5名对代码有着极致追求的工程师参与阿里代码领域最高荣誉“多隆奖”的最终角逐。......

    06-08????来源:四川新闻网

    分享
  • 超级大汇总!200多个最好的机器学习、

      我把这篇文章分为了四个部分:机器学习,自然语言处理,python和数学。在每个部分中我都列举了一些主题,但是因......

    09-25????来源:洛阳新闻网

    分享
返回列表
Ctrl+D?将本页面保存为书签,全面了解最新资讯,方便快捷。