redis是一种非关系型数据库,它在 NoSQL数据库里的。 它本身是一个map, 存储数据的格式也是 key value 由 C 语言开发 开源的高性能键值对(key-value)数据库。
非关系型数据库
特点:
(1)数据间没有必然的关联关系;
(2)内部采用单线程机制进行工作;
(3)高性能。官方提供测试数据,50个并发执行10万 个请求,读的速度是110000 次/s,写的速度是81000次/s。
(4)多数据类型支持
字符串类型,string list
列表类型,hash set
散列类型,zset/sorted_set
集合类型
有序集合类型
(5)支持持久化,可以进行数据灾难恢复
redis的应用场景
(1)为热点数据加速查询(主要场景)。如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。
(2)即时信息查询。如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等。
(3)时效性信息控制。如验证码控制、投票控制等。
(4)分布式数据共享。如分布式集群架构中的 session 分离
消息队列.
用来解决的问题
大量户用、高并发
解决办法:
1.减少IO次数,能提高性能,在程序上 IO用的越少程序性能越强
2 不建立起数据之间的联系,越简单越好
这就是非关系型数据库。NoSQL数据库
NoSQL数据库
特征:
可扩容,可伸缩。SQL数据关系过于复杂,扩容难度很高,Nosql 这种的,不存关系,扩容简单。
大数据量下高性能。包数据非常多的时候,它的性能高,因为NoSQL数据库不走磁盘IO,走的是内存,性能肯定要比磁盘IO的性能快一些。
灵活的数据模型、高可用。他设计了自己的一些数据存储格式,这样能保证效率上来说是比较高的,最后一个高可用,我们等到集群内部分再去它!