Aerospike (下一代NoSQL数据库)-从需求到安装

一、需求与场景

  业务需要从数据库中获取产品的相关信息,搜索池为三张表总共670万行记录,所占空间为1.5g,键值集容量从200到2500之间分布,命中率为25%到80%,由于业务原因无法减少键值集,而公司内部规划没有采用分布式数据库架构。为减少搜索相关信息阶段的时间,需要将从MySQL等关系型数据库中的搜索压力转换到内存数据库。

    我们的业务场景需要NoSQL数据库在每个业务步骤进行上下文相关内容存取,数据量较大,不强调一致性,可以容忍数据丢失或出现脏数据,每次搜索键值集较大,需要有批量读的功能,以及稳定的搜索时间范围(除网络延迟之外),同时,需要控制成本。

二、Aerospike的特性

Aerospike的官方定义:Next Generation, NoSQL Data Platform。(下一代NoSQL数据平台)

Aerospike的官方描述:Powering real-time, extreme scale data solutions that require five-9’s+ uptime, predictable performance and operational simplicity。(某些数据解决方案需要5个9的正常运行时间、可预测的性能以及操作的简单性,而Aerospike恰恰支持这样实时的、极端规模的数据解决方案。)

Aerospike官方文档

    因为当前有很多性能不错的NoSQL数据库可供选择,那么我为什么要选择Aerospike呢?在看到官方简介之前,我是无从下手的。不过,有了这么高大上的定义,我瞬间有了方向。既然Aerospike 说自己是下一代NoSQL数据平台,那么我有个疑问,那下一代数据库的定义是什么样的呢 ?有什么特点吗?从它对自己性能的自信,我很好奇它采用了什么样的架构什么样的机制做到这样的性能呢?会不会存在打脸的情况呢?

    为了防止自己对Aerospike发表先入为主的意见,那么我就先从它的官方文档开始,看看它自己是怎么解释自己的特点以及它对自己定义的由来。同时为了自己的书写体验(避免它有王婆卖瓜的倾向可能会误导我的情况),我就将它描述中所有的形容词去掉,只看事实。

    1.稳定性及可靠性。通过三个方面来达到这个目的,第一,5个九的运行时间;第二,动态的集群管理机制;第三,强一致性。

    2.可预测性能。通过三个方面来达到这个目的,第一,获得专利的闪存优化存储层;第二,通过基于ML的实时决策支持高数据摄取率;第三,拓展到十亿兆字节规模。

    3.减少复杂性及总拥有成本。通过三个方面来达到这个目的,第一,解决服务器拓展问题;第二,使用低成本的Flash和PMEM来取代DRAM;第三,能在任何复杂的生产环境部署。

    假设,Aerospike官方的声明具有比较高的可信度,那么,在看到使用Aerospike可以减少复杂性以及总拥有成本的特点时,我们便有了决定(因为穷,只能节衣缩食),毕竟使用SSD+Memmory的方式比单纯使用Memmory要划算得多。同时,官方也提供了Aerosipke的监控工具,便于我们运维。剩余的信息官方说明已经很详细了,要用中文再写一遍的话,就有点反复造轮子的意思。上面三点已经绑定链接,可以直接跳转到相关的官方页面。

    补充一下,在官方对可预测性能的说明中,有与Cassandra、Redis、DynamoDB、Couchbase的基准测试,以及提供了一些选择的建议。如果你有在Aerospike与Redis中有做考虑的话,可以看看Aerospike官方给的参考项。强调一点,很多功能只有企业版才能使用,当然是需要商业许可的。

    那么,按照我的需求,到现在就已经可以安装使用Aerospike了。Aerospike数据库的限制列表

三、安装

      官方下载

企业版与社区版的对比


        由于企业版本需要与销售顾问联系之后,才能拿到feturekeys.conf。就不做企业版的演示了。下面选择社区版的压缩包以及Docker安装方式进行简单说明。

1.社区版压缩包安装

    1.1 环境

            Centos7 虚拟机, Xshell远程连接工具。

    1.2 下载:

            方式一:在浏览器下载,再通过Xshell将压缩包上传到虚拟机中。

                    社区版本下载地址:aerospike-community-edition。(随便填写一些信息后,即可下载)

                    使用Xshell连接虚拟机,切换到你决定放压缩包的位置,执行rz命令,在弹出框中选择压缩包后点击ok即可(若有打开screen模式,在下载过程中会有问题,可以先退出screen模式,若并未在screen模式中,可忽略该提示)。若无rz命令,可通过下面命令进行安装

                  yum install lrzsz

            方式二:通过在虚拟机中使用wget下载压缩包。

                        使用Xshell连接虚拟机,切换到你决定放压缩包的位置,执行下面命令

                    wget -O aerospike.tgz 'https://www.aerospike.com/download/server/latest/artifact/el7'

                        若是没有wget方法,可以通过下面命令安装

                        yum install wget

        1.3 解压安装

                        解压

                    tar -xvf aerospike.tgz

                        安装(在Centos6和8中,需要安装一些额外依赖

                    cd aerospike-server-community-{latest-version}-el7/

                    sudo ./asinstall


            1.4 启动、测试

                启动

            systemctl start aerospike

                测试

[root@192 ~]# aql

Seed:        127.0.0.1User:        NoneConfig File:  /etc/aerospike/astools.conf /root/.aerospike/astools.conf

Aerospike Query Client

Version 3.23.0C Client Version 4.6.9Copyright 2012-2019 Aerospike. All rights reserved.

aql> show sets

[127.0.0.1:3000] 0 rows in set (0.001 secs)

OK

aql>                   

到此,最基本的压缩包安装已经完成。

    2. Docker安装

          执行下面命令

docker run -tid  \

-v /opt/aerospike/data:/opt/aerospike/data \

-v /opt/aerospike/usr/lua:/opt/aerospike/usr/udf/lua \

-v /opt/aerospike/config:/opt/aerospike/etc \

--name aerospike1  \

-p 3000:3000 \

-p 3001:3001 \

-p 3002:3002 \

aerospike/aerospike-server /usr/bin/asd --foreground \

--config-file /opt/aerospike/etc/aerospike.conf

        -v {local-path}:{container-path} : 将本地文件挂载到容器中,是容器内文件于本地可见且可修改,这里挂载的目的主要为了,第一,定制化配置;第二,将容器内数据备份到本地;第三,为了持久化 lua cache;

        -p {local-port}:{container-port}:  绑定本地端口与容器端口看;

        --config-file {container-file}:使容器内的指定文件作为容器的配置文件,即使我们挂载的配置文件生效的方式之一

Aerospike的命令使用文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容