Redis学习(一)
1、NoSQL
在过去很长一段时间里,如MySQL、Oracle等结构化查询语言(Structured Query Language,SQL)数据库一直是数据存储的方式,它们的结构类似一张Excel表,建表就明确规定了每一列的属性。这种“严格”的数据库表形式在互联网发展的初期适用,但随着近些年用户数据爆炸式的增长,传统的SQL型数据库已经很难完全满足我们的需求,在这种情况下,NoSQL就展现出了它的优点。
NoSQL,全称是Not Only SQL,也常被称作非关系型的数据库。NoSQL放弃了传统关系型数据库中数据之间的关联性,便于扩展,同时拥有非常高的读写性能。例如,传统的关系型数据库中,往数据量较大的数据库中增加一列的代价是十分巨大的,而NoSQL就能很好的解决这一问题。总的来说,NoSQL可以分为以下几类:
(1)键值(key-Value)存储数据库:以键值对形式存储的非关系型数据库,读写效率高,查询快,常被用于缓存。
(2)列存储数据库:通常是用来应对分布式存储的海量数据。
(3)文档型数据库:与键值存储相类似,但其允许嵌套键值,在处理网页等复杂数据时,文档型数据库比传统键值数据库的查询效率更高。
(4)图形数据库:专注于构建关系图谱,社交网络,推荐系统等。
2、Redis简介
Redis是应用最为广泛的K-V存储数据库,最常用的用途就是作为缓存,除此之外还可以作为数据库和消息中间件。Redis基于内存进行操作,且基于单线程实现。
但从效率上来讲CPU>内存>磁盘,因此Redis性能的瓶颈不是CPU,而是内存和网络带宽。虽然我们常说“多线程的速度比较快”,但事实上单线程并不一定会比多线程慢,这取决于具体的业务场景。对于Redis而言,单线程完全可以满足其需求;由于线程间切换也会消耗一部分的时间,使用多线程实现的话,如果线程间的切换比较频繁,反而会在不必要的地方消耗大量的时间,降低Redis的性能。
安装完Redis之后会有一个默认的redis.conf配置文件,通过配置文件可以对Redis进行一些设置,主要包括:
(1)网络:绑定的ip、是否开启保护模式、端口设置等
(2)通用:是否以守护进程的方式、日志目录、数据库数量等
(3)持久化:RDB、AOF
(4)主从复制
(5)安全
(6)客户端:客户端最大可连接数、redis最大内存容量、达到最大内存容量后的处理策略等。
Redis的基本特征
(1)键值(k-v)型,value支持多种不同的数据库、功能丰富
(2)单线程,每个命令具备原子性
(3)低延迟、速度快(基于内存、IO多路复用、良好的编码)。
(4)支持数据持久化
(5)支持主从集群、分片集群
(6)支持多语言客户端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)