数据库

MySQL

关系型

语法

db、表、行列

Redis

非关系型/键值型/内存型

持久化方法:RDB定时快照、AOF增量记录操作以还原

语法

连接db,直接对键值操作。值的数据类型分为string、hash、list、set、sorted set五种数据,对应不同的操作方式

// string

SET key val // 写

GET key // 读

DEL key // 删

EXISTS key // 查找是否存在

EXPIRE key seconds // 给该键设置有效期,过期自动清除

TTL key // 查询该键的剩余有效期

// hash

HSET key field1 val1 field2 val2 // 批量设置哈希表

HGET key field1 // 从哈希表获取某个键的值

HGETALL key // 获取该哈希表的全部键和值

// list

LPUSH key val1 val2 // 向列表头部添加多个成员(RPUSH为尾部)

LPOP key // 移出并返回列表头部元素(RPOP为尾部)

LRANGE key start stop // 获取列表下标从start至stop的一段列表

// set

SADD key val1 val2 // 向集合添加多个成员,自动去重

SPOP key // 移除并返回集合中的一个随机成员

SMEMBERS key // 返回集合中的所有成员

// sorted set

ZADD key score1 member1 score2 member2 // 向有序集合添加多个成员,若成员已存在,则更新分值

ZRANK key member1 // 返回有序集合中指定成员的索引

ZSCORE key member1 // 返回有序集合中指定成员的分值

ZCOUNT key min max // 返回在有序集合中指定分值区间的成员数

ZRANGEBYSCORE key min max  // 返回在有序集合中指定分值区间的成员

ZRANGE key start stop // 返回在有序集合中指定索引区间的成员

发布/订阅

MongoDB

非关系型/文档型/内存型

持久化方法:数据库操作按一定频率批量从内存同步到硬盘

语法

选取db -> 选取集合 -> 对集合增删改查

show dbs // 显示所有db

use db1 // 使用名为db1的数据库(db)

db.createCollection(name, options) // 在db里创建一个集合(col)

show collections // 显示所有col

db.col1.insert(data) // 在名为col1的集合中插入一条json格式的data数据(db.col1表示在col1中进行)

db.col1.update(query, update, options) // 将满足query条件的data以update规则更新

db.col1.remove(query, options) // 删除满足query条件的data

db.col1.find(query, projection) // 查找满足query条件的data

db.col1.find().sort(rule).skip(skipNum).limit(limitNum) // 带排序、跳过、数量的查找

db.col1.aggregate(options) // 聚合查找,类似MySQL的GROUP BY

db.col1.createIndex(keys, options) // 以keys创建索引,提高后续查找效率