Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2301_76266857
unidocs-zh
提交
96543338
U
unidocs-zh
项目概览
2301_76266857
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
96543338
编写于
6月 29, 2022
作者:
DCloud_Heavensoft
提交者:
Gitee
6月 29, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update docs/uniCloud/redis-introduction.md.
上级
ee3a3b36
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
13 deletion
+15
-13
docs/uniCloud/redis-introduction.md
docs/uniCloud/redis-introduction.md
+15
-13
未找到文件。
docs/uniCloud/redis-introduction.md
浏览文件 @
96543338
Redis(Remote Dictionary Server),是一种充分利用内存的数据库。
相比传统硬盘数据库,redis的性能要高出更多。
在传统服务器开发中很常见。
相比传统硬盘数据库,redis的性能要高出更多。
现在,uniCloud终于原生支持Redis了!
为了保证效率,数据都是缓存在内存中,同时redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,即使宕机,也可以恢复数据。所以redis即做到了高性能又实现了安全持久化存储。
为了保证效率,数据都是缓存在内存中,同时redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,即使宕机,也可以把 数据恢复过来。所以redis即做到了高性能又实现了持久化存储。
它是key-value存储系统,支持存储的value类型较多,包括:string(字符串)、list(链表)、set(集合)、sorted set 和hash(哈希类型)
[
详情
](
uniCloud/redis?id=data-type
)
redis是key-value存储系统,支持存储的value类型较多,包括:string(字符串)、list(链表)、set(集合)、sorted set 和hash(哈希类型)
[
详情
](
uniCloud/redis?id=data-type
)
### 为什么要使用Redis
mongoDB数据存储在磁盘里,对数据有强一致需求、持久存储需求的项目需要选择mongoDB。但是mongoDB支持并发访问的能力有限,当有大量并发请求的时候,mongoDB会挂掉。另外,有时候,我们需要更快的响应速度,而mongoDB速度有限,不能满足需求。所以我们需要内存型数据库Redis。
### Redis和MongoDB的比较
-
读写速度:MongoDB数据存储在磁盘里,读写语法复杂,速度较慢。redis在内存中读写,只根据key访问数据,速度快很多。
-
并发能力:uniCloud的mongoDB并发能力有限。redis几乎没有限制,更多取决于云函数的并发限制。
-
查询能力:MongoDB支持所有查询语法,各种where、联表。redis只能根据key和有限语法操作数据。
-
计费:MongoDB按读写速度收费(目前阿里云免费)。redis不免费,但根据存储容量收费。一般需要存在redis的数据是常用数据,不会太多,性价比非常高。
### 常用应用场景
-
频繁
无意义
的查库
假如你的应用有5千万条新闻数据,这类数据不经常变化。页面用固定的查询条件获取并显示这些数据;每个用户每次打开页面的时候,都是通过数据库执行查询语句获取数据。显然这样的效率非常低且浪费资源,更高效的做法是把它
加入缓存
,每次取数前先从缓存取值,如果取不到数据,再去请求数据库。并将数据加入缓存,下一个用户就能直接从缓存中读取,使得请求能够迅速响应。
###
redis
常用应用场景
-
频繁
读且变化不频繁
的查库
假如你的应用有5千万条新闻数据,这类数据不经常变化。页面用固定的查询条件获取并显示这些数据;每个用户每次打开页面的时候,都是通过数据库执行查询语句获取数据。显然这样的效率非常低且浪费资源,更高效的做法是把它
缓存到redis
,每次取数前先从缓存取值,如果取不到数据,再去请求数据库。并将数据加入缓存,下一个用户就能直接从缓存中读取,使得请求能够迅速响应。
-
高并发,短期高频访问的数据
比如热点数据,秒杀等高并发场景。直接使用mongoDB会遇到性能的瓶颈,所有的请求直接访问数据库,数据库会出现连接异常。此时我们也应当使用缓存作为中间件,redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库。
-
排行问题
...
...
@@ -23,8 +25,8 @@ Redis不是真正意义上的可持久化数据库,可以给数据加上一个
其他还有:计数器、消息队列推送、好友关注、粉丝数等这里就不一一列举
### 注意
虽然Redis的优势明显,但是我们仍然不可用Redis完全替代mongoDB;推荐:mongoDB+redis组合使用。
-
redis存储在内存中,mongoDB存储在硬盘。内存比硬盘贵,要存储大量数据,只能花更多的钱去购买内存,造成在一些不需要高性能的地方是相对比较浪费的,所以应当在需要高性能的地方使用redis,在不需要高性能的地方使用mongoDB,好钢用在刀刃上。
-
无法存储复杂的数据结构,redis的主要数据结构有string, hash ,set ,list和 sorted set,,底层还是key-value结构,无法存储表之间有强关联的数据。没有mongoDB那样支持丰富的查询语法。
-
redis虽说支持持久化存储,但它是异步持久化,极端情况下(如:断电)存在丢数据的可能性;改同步的话性能就没有了。所以对数据有强一致需求仍然需要使用mongoDB
-
redis虽支持持久化存储,但它是异步持久化,极端情况下(如:断电)存在丢数据的可能性;改同步的话性能就没有了。所以对数据有强一致需求仍然需要使用mongoDB
虽然Redis的优势明显,但是我们仍然不可用Redis完全替代mongoDB;推荐:mongoDB+redis组合使用。所有数据都在MongoDB里有一份,适合缓存入redis里的则使用redis。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录