各种数据库的安装使用与比较

Homebrew安装Cassandra

$ brew install Cassandra

安装cqlsh

$ pip install cql

alias为连接Cassandra服务设立别名

$ vim ~/.bashrc

文件中填入以下命令:

alias conn_cassandra='cqlsh -u <use_rname> -p <password> -k <keyspace> 10.125.111.111'

保存并退出文件后,运行:

$ source ~/.bashrc

有可能出现在开启新终端后别名失效的情况
此时可以打开.bash_profile文件

$ vim ~/.bash_profile

在最后行填入以下命令

source ~/.bashrc

注:利用homebrew安装以上服务不需要设置环境变量,因其已自动设置了环境变量。

Cassandra常用操作

启动和关闭本地Cassandra服务

$ brew services start Cassandra
$ brew services stop Cassandra

连接Cassandra服务器

$ conn_cassandra

退出Cassandra服务器(mongodb、redis相同)

exit

Cassandra基本操作

select JSON <key1>,<key2>,<key3> from <table> where <key1>='value of key1' and <key2>='value of key2' and <key3>='value of key3' allow filtering;

Homebrew安装MongoDB

与上述安装Cassandra步骤类似

$ brew install mongodb

alias为连接mongodb设立别名

alias conn_mongodb='mongo --host mongodb://<user_name>:<password>@10.125.111.111:27017/<your_mongodb_name>'

启动和关闭本地mongodb服务与Cassandra相同,将Cassandra换成mongodb即可。

mongodb常用操作

mongodb中可以有多个databases,每个database可以创建多个collections,collection是底层数据分区(partition)的单位,每个collection都有多个底层的数据文件组成。
首先可以查看help。

查看DB、表状态信息:db.stats()db.<your_table>.stats()
查看全部collections:show collections
列出collection的所有项目:db. collection.find()
查询:db.<your_table>.find({"_id": "84d3457edb0a4bad8f76607f880cb2be"})

Homebrew安装Redis

$ brew install redis

alias为连接Redis设立别名

alias conn_redis='redis-cli -h <host_domain_name>'

启动和关闭本地Redis服务与mongodb、Cassandra相同,将mongodb、Cassandra换成Redis即可。

Redis常用操作

Redis是Key-Value型NoSQL,基于键值对中的值,提供了5中数据结构:string、list、zset、hash、set。
在这里插入图片描述
执行help @generic可以查看所有操作符:
以下以string型data_statistics:test_interval_time键举例:
查看所有键:KEYS *

⚠️ 线上Redis禁止使用KEYS *pattern* ! 命令会引起阻塞,导致雪崩(相当于关系性数据的库的 select *)

查看名称中包含last_time的key:KEYS *last_time*
键总数:dbsize
获取键值:GET data_statistics:test_journey_interval_last_time
检查键是否存在:exists data_statistics:test_journey_interval_last_time
删除键:DEL
查询键类型:TYPE
查询内部编码:OBJECT encoding
Hash类型以collection_data:did:84d3457edb0a4bad8f76607f880cb2be键进行举例:
取回单个域HGET key field:
HGET collection_data:did:84d3457edb0a4bad8f76607f880cb2be F110

取回所有域:
HGETALL collection_data:did:84d3457edb0a4bad8f76607f880cb2be

数据库对比

数据库类型存储对象存储格式存储方式速度事务操作
MySQLSQLStringK-V持久化存储较慢支持
MongDB介于SQL与NoSQL之间fileBSON虚拟内存+持久化高速读写不支持
RedisNoSQL(K-V型)String、hash、set、list等K-V内存+持久化低于MongoDB支持,但不支持回滚
CassandraNoSQL列存储MemTable数据格式CommitLog持久化极高写入支持,但不支持回滚

MySQL、MongoDB与Redis的比较推荐这篇博客
Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。

应用场景

Redis适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
例如:股票价格、数据分析、实时数据搜集、实时通讯。
MongoDB适用于需要动态查询支持;需要使用索引而不是 map/reduce功能;需要对大数据库有性能要求;需要使用 CouchDB但因为数据改变太频繁而占满内存的应用程序。
例如:你本打算采用 MySQL或 PostgreSQL,但因为它们本身自带的预定义栏让你望而却步。
Cassandra适用于当使用写操作多过读操作(记录日志)如果每个系统组建都必须用 Java编写。
例如:银行业,金融业(虽然对于金融交易不是必须的,但这些产业对数据库的要求会比它们更大)写比读更快,所以一个自然的特性就是实时数据分析
MySQL插入和查询性能都非常的高效,适用于数据量不是非常大,需要大量的插入和查询的场景。
例如:web网站系统、用户的登录日志,操作日志、数据仓库系统、嵌入式系统(嵌入式环境对软件系统最大的限制是硬件资源非常有限,而mysql在硬件资源的使用方面可伸缩性非常强,而且mysql有专门针对嵌入式环境的版本)等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值