赞
踩
–为了在Mac OS上安装Cassandra, 需要更新自制软件的存储库索引。
brew update
–在MacOS上安装Cassandra,会将Cassandra安装在/usr/local/cellar/cassandra位置
brew install cassandra
以下命令用于启动Cassandra(本地)。
brew services start cassandra
以下命令用于停止Cassandra (本地)。
brew services stop cassandra
命令格式:
cqlsh -u username -p password -k keyspaces ip地址
说明:
username:用户名
password:密码
keyspaces:表空间
control+z 关闭连接快捷键
describe clusters ;
—此命令提供有关集群的信息
此命令列出集群中的所有键空间
describe keyspaces;
切换键空间
use keyspace;
此命令列出了键空间中的所有表
describe tables;
此命令提供表的描述
describe table 表名称;
---------CURD操作---------
CQL ( Cloud Query Language)是 LeanCloud 为查询 API 定制的一套类似 SQL 查询语法的子集和变种,其目的是让开发者可以使用传统的 SQL 语法来查询。
----查询限制-----
Cassandra对查询的支持很弱,只支持主键列及索引列的查询,而且主键列还有各种限制,不过查询弱归弱,但它还是支持索引和排序的。
索引列支持 like
只有主键支持 group by
cassandra主键是一个partition key主键和多个clustering key复合主键,而主键的查询顺序必须与定义表结构时一致
分区主键查询限制
cassandra中分区主键只能以 等号或in查询,不能使用范围查询
也就是不能以日期进行范围查询
cassandra中范围查询只能放在条件查询的最后一个位置,例如,如果范围查询age,则就不能添加phone查询条件。加上ALLOW FILTERING(允许过滤) 可以支持
cassandra在创建表时设置一个排序规则,默认以此进行规则排序,如当前表,默认以正序age,正序bornDate和倒序createDate, 手动设置倒序只有一种方式,即将所有排序字段全部颠倒,也就是必须像这样order by age desc, bornDate desc, createDate asc
cassandra中只要使用排序,无论是使用默认排序规则还是相反排序规则,分区主键只能使用等于查询,(可以使用in,但是只能IN一个数据)
6.使用In和Order by 时需要全局关闭分页
Cluster.Builder()
.AddContactPoints(cassandraUrls)
// 设置pageSize为最大值,这样代表为关闭分页,可以使用in 和order by
.WithQueryOptions(new QueryOptions().SetPageSize(int.MaxValue))
.Build();
命令格式:
INSERT INTO <tablename> (<column1 name>, <column2 name>....) VALUES (<value1>, <value2>....) USING <option>
UPDATE <tablename> SET <column name> = <new value> <column name> = <value>.... WHERE <condition>
SELECT FROM <table name> WHERE <condition>;
示例: select * from employee; —读取所有字断
–错误示范(违反主键顺序查询限制)
select * from employee where age = 1 and name = '张三' and bornDate='1999-01-01';
–正确写法
select * from employee where bornDate = '1999-01-01' and name ='张三' and age=1;
–错误示范(违反分区主键查询限制)
select * from employee where bornDate >='1999-01-01' and name='张三';
–正确写法
select * from employee where bornDate = '1999-01-01' and name ='张三' and age=1;
–错误示范(违反范围主键查询限制)
select * from employee where bornDate = '2019-01-01' and name ='张三' and age >18 and phone = '123456';
–正确写法
select * from employee where bornDate = '2019-01-01' and name ='张三' and age >18 and phone = '123456' allow filtering;
–错误示范
select * from employee where bornDate in ('1999-01-01','1999-01-02') and name = '张三' order by age desc, bornDate desc, createDate asc;
–正确写法
select * from employee where bornDate = '1999-01-01' and name = '张三' order by age desc, bornDate desc, createDate asc;
EXPAND ON;—扩展命令,使用命令后select输出的结果展示形式不一样,当列较多时可以使用优化数据展现形式
copy users(id, username, age) to ‘D:\myfile’; —复制命令copy to, 将表中的数据写入到文件中
DELETE FROM WHERE ;
brew tap mongodb
brew install mongodb-community@4.4
@ 符号后面的 4.4 是版本号。
安装信息:
配置文件:/usr/local/etc/mongod.conf
日志文件路径:/usr/local/var/log/mongodb
数据存放路径:/usr/local/var/mongodb
使用 brew 命令或 mongod 命令来启动服务。
brew 启动:
brew services start mongodb-community@4.4
brew 停止:
brew services stop mongodb-community@4.4
mongod --config /usr/local/etc/mongod.conf --fork
mongo --host mongodb://username:password@ip:port/database (control+z 关闭连接(mac))
说明:
mongo:指令关键字
–host mongodb://:连接数据库关键字
username:用户名
password:密码
@ip:IP地址
port:端口号
database:数据库名称
show dbs;
use yourDB;当创建一个集合(table)的时候会自动创建当前数据库
show collections;
显示当前数据库中的集合(类似关系数据库中的表)
db.user.insert({"userId" : "014","uclass" : "B","name" : "Back","age" : 11,"email" : "b14@sina.com","birthday" : ISODate("2018-07-31T03:46:13.885Z"),"dataStatus" : 1});
db.user.remove({"userId":"014"});
db.user.update({"userId":"013"}, {$set:{"email":"b13@sina.com", "age":20}});
查询所有:db.user.find({}); 查询条件=:db.user.find({"uclass":"A"}); 查询条件like:db.user.find({"name":/Ba/}); 查询条件distinct:db.user.distinct("name"); 查询条件>:db.user.find({"age":{$gt:16}}); 查询条件>=:db.user.find({"age":{$gte:16}}); 查询条件<:db.user.find({"age":{$lt:16}}); 查询条件<=:db.user.find({"age":{$lte:16}}); 查询条件!=:db.user.find({"age":{$ne:16}}); 查询条件=:db.user.find({"age":{$eq:16}});等效于 db.user.find({"age":16}); 查询条件in:db.user.find({"uclass":{$in:['A', 'B']}}); 查询条件and:db.user.find({"uclass":"B", "age":{$gt:16}}); 查询条件or:db.user.find({$or:[{"uclass":"A"},{"class":"B"}]}); 查询条件:时间 db.user.find({"birthday":{$gt: new Date("2008-08-14T06:24:40.110Z"), $lt: new Date("2015-08-14T06:14:40.089Z")}}); 查询条数count: db.user.find({"uclass":"A"}).count(); 类似mysql select count(1) from user where uclass = 'A'; 查询条件sort升序: db.user.find({}).sort({"age":1}); 查询条件sort降序: db.user.find({}).sort({"age":-1}); 聚合查询count单列:db.user.aggregate([{$group:{_id:"$uclass",num:{$sum:1}}}]);类似MySQL select uclass, count(1) as num from user group by uclass; 聚合查询count多列 :db.user.aggregate([{$group:{_id:{uclass:"$uclass", age:"$age"},num:{$sum:1}}}]);类似MySQL select uclass, age, count(1) as num from user group by uclass, age; 分页查询limit n: db.user.find({}).limit(5); 查询前n条 分页查询limit m,n: db.user.find({}).limit(5).skip(5); 查询n条,从第m条开始 查询指定字段 db.user.find({}, {userId:1, name:1}); 第一个{}为查询条件 查询嵌套数据的指定字段 db.user.find({}, {userId:1, name:1, 'ecus.name':1, 'ecus.serial':1}); ---其中ecus为嵌套列表,name和serial为嵌套字段 排查指定字段 db.user.find({}, {dataStatus:0, _id:0});
—简易模式
db.tablenName.find().pretty();
从指定主机上克隆数据库
db.cloneDatabase(“127.0.0.1”);
brew install redis 安装
命令格式:命令+空格+key+空格+参数1+空格+参数2
注意事项:
1.key以及参数需要加""
2.参数间以空格做分割
示例:
hmget “keyname” “value1” “value2”
quit:关闭连接(connection)
auth:简单密码认证
help cmd: 查看cmd帮助
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
info:提供服务器的信息和统计
monitor:实时转储收到的请求
slaveof:改变复制策略设置
config:在运行时配置Redis服务器
exists(key):确认一个key是否存在 del(key):删除一个key type(key):返回值的类型 keys(pattern):返回满足给定pattern的所有key randomkey:随机返回key空间的一个key rename(oldname, newname):重命名key dbsize:返回当前数据库中key的数目 expire:设定一个key的活动时间(s) ttl:获得一个key的活动时间 (当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。) select(index):按索引查询 move(key, dbindex):移动当前数据库中的key到dbindex数据库 flushdb:删除当前选择数据库中的所有key flushall:删除所有数据库中的所有key
set(key, value):给数据库中名称为key的string赋予值value get(key):返回数据库中名称为key的string的value getset(key, value):给名称为key的string赋予上一次的value mget(key1, key2,…, key N):返回库中多个string的value setnx(key, value):添加string,名称为key,值为value setex(key, time, value):向库中添加string,设定过期时间time mset(key N, value N):批量设置多个string的值 msetnx(key N, value N):如果所有名称为key i的string都不存在 incr(key):名称为key的string增1操作 incrby(key, integer):名称为key的string增加integer decr(key):名称为key的string减1操作 decrby(key, integer):名称为key的string减少integer append(key, value):名称为key的string的值附加value substr(key, start, end):返回名称为key的string的value的子串 ### 3.2.6. List rpush(key, value):在名称为key的list尾添加一个值为value的元素 lpush(key, value):在名称为key的list头添加一个值为value的 元素 llen(key):返回名称为key的list的长度 lrange(key, start, end):返回名称为key的list中start至end之间的元素 ltrim(key, start, end):截取名称为key的list lindex(key, index):返回名称为key的list中index位置的元素 lset(key, index, value):给名称为key的list中index位置的元素赋值 lrem(key, count, value):删除count个key的list中值为value的元素 lpop(key):返回并删除名称为key的list中的首元素 rpop(key):返回并删除名称为key的list中的尾元素 blpop(key1, key2,… key N, timeout):lpop命令的block版本。 brpop(key1, key2,… key N, timeout):rpop的block版本。 rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
sadd(key, member):向名称为key的set中添加元素 membersrem(key, member) :删除名称为key的set中的元素 memberspop(key) :随机返回并删除名称为key的set中一个元素 smove(srckey, dstkey, member) :移到集合元素 scard(key) :返回名称为key的set的基数 sismember(key, member) :member是否是名称为key的set的元素 sinter(key1, key2,…key N) :求交集 sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合 sunion(key1, (keys)) :求并集 sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合 sdiff(key1, (keys)) :求差集 sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合 smembers(key) :返回名称为key的set的所有元素 srandmember(key) :随机返回名称为key的set的一个元素
hset(key, field, value):向名称为key的hash中添加元素 fieldhget(key, field):返回名称为key的hash中field对应的value hmget(key, (fields)):返回名称为key的hash中field i对应的value hmset(key, (fields)):向名称为key的hash中添加元素field hincrby(key, field, integer):将名称为key的hash中field的value增加integer hexists(key, field):名称为key的hash中是否存在键为field的域 hdel(key, field):删除名称为key的hash中键为field的域 hlen(key):返回名称为key的hash中元素个数 hkeys(key):返回名称为key的hash中所有键 hvals(key):返回名称为key的hash中所有键对应的value hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。