【Redis 学习笔记】1、Redis 简介,面试复盘

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

  • ……

  • NoSQL

  • 不仅仅是数据

  • 无固定查询语言

  • 键值对存储,列存储、文档存储、图形数据库

  • 最终一直性

  • CAP 定理和 BASE

  • 高性能,高可用,高可拓

  • ……

NoSQL 的四大分类

NoSQL 主要可以分为如下四大类,然后关于各类的实例、应用场景、数据模型以及各个类型的一些优缺点,可以参见下面的表。

  1. KV 键值对

  2. 文档型数据库(bson & json)

  3. 列存储数据库

  4. 图关系数据库

| 分类 | 实例 | 应用场景 | 数据模型 | 优点 | 缺点 |

| — | — | — | — | — | — |

| 键值对(key-value) | Redis、Voldemort | 内存缓存,用于处理大量数据的高访问负载,也可用于日志系统等 | key 指向 value 的键值对,通常是用 HashTable 来实现 | 查找速度快 | 数据无结构化,通常只被当做字符串或二进制数据 |

| 列存储数据库 | HBase | 分布式文件系统 | 以列簇式存储,讲同一列数据存储在一起 | 1. 查找速度快

2. 扩展性强

3. 更容易进行分布式扩展 | 功能相对局限 |

| 文档型数据库 | MongoDb | Web 应用,类似于 Key-Value | key-value 对应的键值对,value 为结构化的数据 | 1. 数据结构要求宽松

2. 表结构可变,无需像关系型数据库一样预先定义表结构 | 查询性能低,且查询语法不统一 |

| 图形数据库(Graph) | Neo4j、InfoGrid | 社交网络、推荐系统等 | 图结构 | 可以利用图结构相关算法,如最短路径寻址、N度关系查找等 | 许多时候需要对整个图进行计算才能得到最终结果,效率不高;而且做分布式集群较困难 |

什么是 Redis


以上对 NoSQL 做了一个简介之后,接下来就轮到我们今天的主角 - Redis 了。接下来,我将从相关简介,如何安装以及常用基本操作几个方面来对 Redis 进行介绍。

Redis 特点

Redis 是一个高性能的开源的 key-value 数据库,底层由 C 语言实现,相比于其他同类型产品,有如下特点。

  • 支持数据持久化,可以将内存中的数据保存在磁盘中,重启时再次加载使用即可;

  • 不仅支持 key-value 类型的数据,同时还支持 list、set、hash、zset 等数据结构的存储;

  • 支持 master-slave 模式的数据备份;

Redis 优势

  • 高性能;

  • 支持的数据类型丰富;

  • 原子性,要么成功执行,要么失败完全不执行。单个操作时原子性的,多个操作也支持事务,通过 MULTIEXEC 指令封装;

  • 支持其他丰富的特性,如 publish/subscribe,通知,key 过期等;

Redis 的应用场景

  1. 内存存储、持久化

  2. 高效率,可以用于高速缓存

  3. 发布订阅系统

  4. 地图信息分析

  5. 计时器、计数器

  6. 任务队列

  7. 数据过期处理

  8. 应用排行榜

  9. ……

Redis 和其他 key - value 数据库的不同

  1. Redis 的数据结构更加复杂且提供对他们的原子性操作,而且基于基本数据结构的同时也对程序员透明,无需进行额外抽象;

  2. Redis 运行在内存中但是可以持久化到硬盘,所以在对不同数据集进行高速读写是需要权衡内存大小,数据量不能大于硬件内存;

Redis 安装


Windows 下安装

  1. 去下载安装包,https://github.com/tporadowski/redis/releases,支持 32 和 64 位,按需下载即可;

  2. 解压缩下载后的压缩包,并存在你自己指定的目录;

  1. 打开终端,然后切换到 Redis 目录,运行如下命令即可:

./redis-server.exe

  1. 打开另一个窗口,在 Redis 目录下运行另一个 Redis,然后进行设置和取出键值对测试;

./redis-cli.exe

设置键值对

set key “cunyu”

取出键值对

get

Linux 下安装

  1. 下载最新版本安装包,http://redis.cn/download

  2. 使用如下命令解压安装包到你需要存储的位置,然后进行编译

# 解压

tar -zxvf redis-6.0.6.tar.gz

# 进入文件夹

cd redis-6.0.6

# 编译

make

  1. 在一个终端中启动服务端

  1. 在另一个终端中启动客户端进行测试

注意

当在控制台中获取中文键值时,可能会出现乱码的情况,此时,可以通过在启动客户端时加入 --raw 参数即可解决;

可能乱码的启动方式

./redis-cli

解决乱码的启动方式

./redis-cli --raw

基本操作及常识


  1. 选择对应数据库

我的面试宝典:一线互联网大厂Java核心面试题库

以下是我个人的一些做法,希望可以给各位提供一些帮助:

整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!

image

283页的Java进阶核心pdf文档

Java部分:Java基础,集合,并发,多线程,JVM,设计模式

数据结构算法:Java算法,数据结构

开源框架部分:Spring,MyBatis,MVC,netty,tomcat

分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等

微服务部分:SpringBoot,SpringCloud,Dubbo,Docker

image

还有源码相关的阅读学习

image

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
3437937566)]

还有源码相关的阅读学习

[外链图片转存中…(img-qozwQlpG-1713437937567)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-gAs5N4oE-1713437937568)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值