Redis基础知识
redis是一个高性能的key-value数据库,也是NoSql数据库,是为了解决高并发高扩展,大数据存储等问题而产生的数据库解决方案,是一个非关系型数据库,并且Redis是基于内存的单线程数据库(6.0之后支持多线程)
NoSql优点
1.满足对数据库高并发读写需求
2.满足对海量数据的高效率存储和访问
3.对数据库的高扩展性和高可用性的需求
主要的NoSql数据库
分类 | 数据库 | 应用场景 | 数据类型 | 优点 | 缺点 |
键值对 (key-value) |
Redis, Tokyo, Oracle BDB |
内容缓存主要用于处理大量数据的高访问负载,也用于一些日志系统 | key指向value的键值对,通常用HashTable来实现 | 查询速度快 | 数据无结构化,通常只被当作字符串或二进制数据 |
列表存储 |
Cassandra, HBase, Rlak |
分布式文件系统 | 以列族式存储,将同一列数据存储在一起 | 查询速度快,可扩展性强,更容易进行分布式扩展 | 功能相对局限 |
文档型数据库 |
CouchDB, MongoDB |
web应用(与key-value类似,value是结构化的,不同的是数据库可以了解value的内容) | key-value对应的键值对,value为结构化数据 | 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 | 查询性能不高而且缺乏统一性的查询语法 |
图形数据库 |
Neo4J, InfoGrid, Infinter Graph |
社交网络,推荐系统等,专注于构建关系图谱 | 图结构 | 利用图结构相关算法,比如最短路径寻址,N度关系查找等 | 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案 |
redis功能
1.缓存
2.计数
3.共享session
4.限流
redis为什么快
1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
2.数据结构简单,对数据库操作也简单,数据类型:String,Hashes,Lists,Sets,Zset,Geospatial(地理位置),Hyperloglog,Bitmaps;
3.采用单线程,避免了不必要的上下文切换,也不存在多进程或多线程切换而消耗cpu,不用去考虑各种锁的问题
4.使用多路I/O复用模型。非阻塞IO
5.使用底层模型不同,Redis自己构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律