uniapp开发app框架在提升开发效率中的独特优势与应用探索
596
2022-11-28
认识NoSQL和Redis
文章目录
一、NoSQL二、Redis
1. Redis简介2. Redis的应用3. Redis基本命令
一、NoSQL
NoSQL:Not-Only SQL,泛指非关系型数据库,作为关系型数据库的补充,真正的数据还得是存在硬盘上的关系型数据库,非关系型数据库一般不会用,一般会用在海量用户和高并发的场景下
NoSQL特征:可扩容、可伸缩、大数据量下高性能、灵活的数据类型、高可用
常见的NoSQL数据库
Memcache
很早出现的 NoSql 数据库数据都存储在内存中,一般不持久化 (不能存储在硬盘或者文件,只能存储在内存,关机了内存的数据就不存在了)支持简单的 key-value 模式,支持类型单一一般是作为缓存数据库辅助持久化的数据库(一般和MySQL等关系型数据库一起使用)
Redis
几乎覆盖了 Memcached 的绝大部分功能数据都在内存中,支持持久化(数据可以存储到硬盘),主要用作备份恢复除了支持简单的 key-value 模式,还支持多种数据结构 的存储,比如 list、set、hash、zset 等。一般是作为缓存数据库辅助持久化的数据库(一般和MySQL等关系型数据库一起使用)
MongoDB
高性能、开源、模式自由(schema free)的文档型数据库 (存储结构和json类似,里面存储的数据形式多样,结构更加复杂)数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘虽然是 key-value 模 式 , 但 是 对 value ( 尤 其 是 json)提供了丰富的查询功能支持二进制数据及大型对象可以根据数据的特点替代 RDBMS ,成为独立的数据库。或者配合 RDBMS,存储特定的数据。
集群数据库服务器通常以如下形式对外提供数据服务
基本信息存放在MySQL数据库,文本类信息存放在MongoDB,图片信息存放在FastDFS,搜索关键字存放在Slor,热点信息存放在Redis,这些数据库服务器一起对外提供服务
二、Redis
1. Redis简介
Redis(REmote DIctinary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库
特征:
数据间没有必然的关联关系:由于MySQL数据间的关联性太强,导致数据读取缓慢,NoSQL数据库要做的就是断开数据的关联关系内部采用单线程机制进行工作:单线程模型,原子性比较强,可以保证数据安全,采用IO多路复用的方式也能保证高性能高性能:官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。多数据类型支持:string(字符串类型)、list(列表类型)、hash(散列类型)、set(集合类型)、sorted_set(有序集合类型)持久化支持(非Redis主要功能):可以进行数据灾难恢复,避免突发情况导致数据丢失
2. Redis的应用
为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等任务队列,如秒杀、抢购、购票排队等即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等时效性信息控制,如验证码控制、QQ群投票控制等分布式数据共享,如分布式集群架构中的 session 分离消息队列分布式锁
redis为什么是单线程及为什么快的总结
Redis是纯内存数据库,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在IO上,所以读取速度快。Redis使用的是非阻塞IO、IO多路复用,使用了单线程来轮询描述符,将数据库的开、关、读、写都转换成了事件,减少了线程切换时上下文的切换和竞争。Redis采用了单线程的模型,保证了每个操作的原子性,也减少了线程的上下文切换和竞争。Redis避免了多线程的锁的消耗。Redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。
windows版Redis程序说明
3. Redis基本命令
命令行模式工具使用:功能性命令、清除屏幕信息、帮助信息查阅、退出指令
信息添加
set
信息查询:根据key查询对应的value,如果不存在,返回空(null)
get key
删除数据
del key
清除屏幕信息
clear
帮助命令:获取命令帮助文档,获取组中所有命令信息名称
help
退出客户端
quitexit
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~