Redis学习笔记( 入门篇)

Redis学习笔记( 入门篇)基于内存的K/V存储中间件NoSQL键值对数据库Redis不仅仅是数据库,它还能作为消息队列等等。关系型SQL和NoSQL的对⽐。

💕前言:学长最近复习了Redis,顺便把知识点整理出来,希望能够帮助准备学习Redis的小伙伴💕

目录

Redis 介绍

是什么?

Redis 特征

Redis 安装

Redis 基本数据结构

String 类型

Hash 类型

 List 类型

Set 类型

SortedSet 类型

Redis 客户端

Spring Data Redis

RedisTemplate 序列化

Redis学习笔记( 入门篇)


Redis 介绍

是什么?

基于内存的 K / V 存储中间件

NoSQL 键值对数据库

Redis 不仅仅是数据库,它还能作为消息队列等等。

Redis学习笔记( 入门篇)

关系型 SQL 和 NoSQL 的对⽐

其中应⽤场景是关键:

Redis学习笔记( 入门篇)


Redis 特征

1. ⽀持多种数据结构

2. 单线程,每个命令的执⾏具备原⼦性,中途不会执⾏其他命令(指命令处理始终是单线程的,⾃ 6.x 起改为多

线程接受⽹络请求)

3. ⾼性能、低延时(基于内存、IO 多路复⽤、良好编码)

4. ⽀持数据持久化

5. ⽀持主从、分⽚集群

6. ⽀持多语⾔客户端


Redis 安装

建议 Linux 下安装,直接到官⽹安装即可,注意安装后更改 redis.conf ⽂件,设置 bind ip、requirepass 密码等参数。

Redis 连接⽅式

redis-cliGUI

多语⾔ SDK

Redis 常⽤命令

Redis 的命令根据数据结构分为多个组。

不⽤背!忘了就查:

1)redis 官⽹命令集:https://redis.io/commands/,中⽂版:http://www.redis.cn/commands.html

2)redis-cli help 命令查看,help [command] 可以查看某个具体命令、help @xxx 可以查看某个分组下的命令

Redis学习笔记( 入门篇)

通⽤命令

set key valueget key

keys pattern 模糊搜索多个 key。性能较差,⽣产环境(尤其是主节点)不建议使⽤

del key…

exists key 判断 key 是否存在

expire key 设置过期时间

ttl key 查询剩余存活时间,未设置过期时间则为 -1

Redis 基本数据结构

String 类型

⽀持存储字符串、数字、浮点数(实际存储都是字节数组):

Redis学习笔记( 入门篇)

单 key 的 value 最⼤不能超过 512 M!

实际使⽤时,通常⽤冒号连接多个词来拼接 key,⽐如 [项⽬名]:[业务名]:[类名]:[id]。在某些 GUI ⼯具中,会⾃动根据冒号来划分层级,浏览更⽅便。

Hash 类型

值是⼀个 Hash 结构(类似 Java 的 HashMap):

Redis学习笔记( 入门篇)

常⽤命令:

其实就是在 String 命令名的基础上增加了 ‘H’ ⾸字⺟

Redis学习笔记( 入门篇)

 List 类型

理解为 Java 的 LinkedList 双向链表,特点是有序、插⼊删除快、但查找性能⼀般:常⻅命令如下:

有点像操作⼀个双端队列

Redis学习笔记( 入门篇)

Set 类型

集合,类似于 Java 中的 HashSet,特点是单 set 内元素不能重复、查找性能⾼。常⻅命令如下:

分为单集合命令和多集合命令(交并差集)

Redis学习笔记( 入门篇)

SortedSet 类型

有序集合,在 set 的基础上给每个元素多存了⼀个分数,类似于 value 类型为整型的 HashMap。特点是有序、查找性能⾼,适合⽤于排⾏榜、统计 TopN。

常⻅命令:

和 set 结构的命令很像

Redis学习笔记( 入门篇)

Redis 客户端

可以在 Redis 官⽹查看所有客户端以及推荐的客户端:https://redis.io/docs/clients

对于 Java,主要推荐以下 3 种:

Redis学习笔记( 入门篇)

其中,Jedis 的命令和原⽣ redis 命令⾏的命令⼀致,学习成本最低(注意它是线程不安全的,通常配合连接池使⽤);Lettuce 和 Spring 兼容最好(Spring Data Redis 默认集成)、基于 Netty 性能最⾼;Redisson 提供了和 Java 集合⽤法⼀致的分布式集合,适⽤于更复杂的业务场景。

Spring Data Redis

Spring Data 整合封装了⼀系列数据访问的操作,Spring Data Redis 则是封装了对 Jedis、Lettuce 这两个 Redis

客户端的操作,提供了统⼀的 RedisTemplate 来操作 Redis。

RedisTemplate 针对不同的 Redis 数据结构提供了不同的 API,划分更明确:

Redis学习笔记( 入门篇)

注意,要在 Spring Data Redis 中使⽤ Lettuce 线程池的话,要额外引⼊ apache commons-pool2 依赖。

RedisTemplate 序列化

RedisTemplate 默认使⽤ JDK 原⽣序列化器,可读性差、内存占⽤⼤,因此可以⽤以下两种⽅式来改变序列化机制:

1. ⾃定义 RedisTemplate,指定 key 和 value 的序列化器

2. 使⽤⾃带的 StringRedisTemplate,key 和 value 都默认使⽤ String 序列化器,仅⽀持写⼊ String 类型的

key 和 value。因此需要⾃⼰将对象序列化成 String 来写⼊ Redis,从 Redis 读出数据时也要⼿动反序列化。

 本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38869.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注