- ……
NoSQL 的四大分类
NoSQL 主要可以分为如下四大类,然后关于各类的实例、应用场景、数据模型以及各个类型的一些优缺点,可以参见下面的表。
-
KV 键值对
-
文档型数据库(bson & json)
-
列存储数据库
-
图关系数据库
| 分类 | 实例 | 应用场景 | 数据模型 | 优点 | 缺点 |
| — | — | — | — | — | — |
| 键值对(key-value) | Redis、Voldemort | 内存缓存,用于处理大量数据的高访问负载,也可用于日志系统等 | key 指向 value 的键值对,通常是用 HashTable 来实现 | 查找速度快 | 数据无结构化,通常只被当做字符串或二进制数据 |
| 列存储数据库 | HBase | 分布式文件系统 | 以列簇式存储,讲同一列数据存储在一起 | 1. 查找速度快
2. 扩展性强
3. 更容易进行分布式扩展 | 功能相对局限 |
| 文档型数据库 | MongoDb | Web 应用,类似于 Key-Value | key-value 对应的键值对,value 为结构化的数据 | 1. 数据结构要求宽松
2. 表结构可变,无需像关系型数据库一样预先定义表结构 | 查询性能低,且查询语法不统一 |
| 图形数据库(Graph) | Neo4j、InfoGrid | 社交网络、推荐系统等 | 图结构 | 可以利用图结构相关算法,如最短路径寻址、N度关系查找等 | 许多时候需要对整个图进行计算才能得到最终结果,效率不高;而且做分布式集群较困难 |
以上对 NoSQL 做了一个简介之后,接下来就轮到我们今天的主角 - Redis 了。接下来,我将从相关简介,如何安装以及常用基本操作几个方面来对 Redis 进行介绍。
Redis 特点
Redis 是一个高性能的开源的 key-value
数据库,底层由 C 语言实现,相比于其他同类型产品,有如下特点。
-
支持数据持久化,可以将内存中的数据保存在磁盘中,重启时再次加载使用即可;
-
不仅支持
key-value
类型的数据,同时还支持list、set、hash、zset
等数据结构的存储; -
支持
master-slave
模式的数据备份;
Redis 优势
-
高性能;
-
支持的数据类型丰富;
-
原子性,要么成功执行,要么失败完全不执行。单个操作时原子性的,多个操作也支持事务,通过
MULTI
和EXEC
指令封装; -
支持其他丰富的特性,如
publish/subscribe
,通知,key
过期等;
Redis 的应用场景
-
内存存储、持久化
-
高效率,可以用于高速缓存
-
发布订阅系统
-
地图信息分析
-
计时器、计数器
-
任务队列
-
数据过期处理
-
应用排行榜
-
……
Redis 和其他 key - value 数据库的不同
-
Redis 的数据结构更加复杂且提供对他们的原子性操作,而且基于基本数据结构的同时也对程序员透明,无需进行额外抽象;
-
Redis 运行在内存中但是可以持久化到硬盘,所以在对不同数据集进行高速读写是需要权衡内存大小,数据量不能大于硬件内存;
Windows 下安装
-
去下载安装包,https://github.com/tporadowski/redis/releases,支持 32 和 64 位,按需下载即可;
-
解压缩下载后的压缩包,并存在你自己指定的目录;
- 打开终端,然后切换到 Redis 目录,运行如下命令即可:
./redis-server.exe
- 打开另一个窗口,在 Redis 目录下运行另一个 Redis,然后进行设置和取出键值对测试;
./redis-cli.exe
设置键值对
set key “cunyu”
取出键值对
get
Linux 下安装
-
下载最新版本安装包,http://redis.cn/download
-
使用如下命令解压安装包到你需要存储的位置,然后进行编译
# 解压
tar -zxvf redis-6.0.6.tar.gz
# 进入文件夹
cd redis-6.0.6
# 编译
make
- 在一个终端中启动服务端
- 在另一个终端中启动客户端进行测试
注意
当在控制台中获取中文键值时,可能会出现乱码的情况,此时,可以通过在启动客户端时加入 --raw
参数即可解决;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
总结
面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。
以上就是蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考
[外链图片转存中…(img-qjgG8nI2-1712791571731)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-7IfXsPtN-1712791571731)]